xref: /aosp_15_r20/external/cldr/docs/rfc/rfc2629.xslt (revision 912701f9769bb47905792267661f0baf2b85bed5)
1*912701f9SAndroid Build Coastguard Worker<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
2*912701f9SAndroid Build Coastguard Worker                version="1.0"
3*912701f9SAndroid Build Coastguard Worker
4*912701f9SAndroid Build Coastguard Worker                xmlns:msxsl="urn:schemas-microsoft-com:xslt"
5*912701f9SAndroid Build Coastguard Worker                xmlns:exslt="http://exslt.org/common"
6*912701f9SAndroid Build Coastguard Worker                xmlns:myns="mailto:[email protected]?subject=rcf2629.xslt"
7*912701f9SAndroid Build Coastguard Worker                xmlns:ed="http://greenbytes.de/2002/rfcedit"
8*912701f9SAndroid Build Coastguard Worker
9*912701f9SAndroid Build Coastguard Worker                exclude-result-prefixes="msxsl exslt myns ed"
10*912701f9SAndroid Build Coastguard Worker                >
11*912701f9SAndroid Build Coastguard Worker<!--
12*912701f9SAndroid Build Coastguard Worker    XSLT transformation from RFC2629 XML format to HTML
13*912701f9SAndroid Build Coastguard Worker
14*912701f9SAndroid Build Coastguard Worker    Copyright (c) 2001-2004 Julian F. Reschke ([email protected])
15*912701f9SAndroid Build Coastguard Worker
16*912701f9SAndroid Build Coastguard Worker    placed into the public domain
17*912701f9SAndroid Build Coastguard Worker
18*912701f9SAndroid Build Coastguard Worker    change history:
19*912701f9SAndroid Build Coastguard Worker
20*912701f9SAndroid Build Coastguard Worker    2001-03-28  [email protected]
21*912701f9SAndroid Build Coastguard Worker
22*912701f9SAndroid Build Coastguard Worker    Code rearranged, generate numbered section anchors for paragraphs (t)
23*912701f9SAndroid Build Coastguard Worker    as well. Fixes in index handling.
24*912701f9SAndroid Build Coastguard Worker
25*912701f9SAndroid Build Coastguard Worker    2001-04-12  [email protected]
26*912701f9SAndroid Build Coastguard Worker
27*912701f9SAndroid Build Coastguard Worker    Moved HTML output into XHTML namespace.
28*912701f9SAndroid Build Coastguard Worker
29*912701f9SAndroid Build Coastguard Worker    2001-10-02  [email protected]
30*912701f9SAndroid Build Coastguard Worker
31*912701f9SAndroid Build Coastguard Worker    Fixed default location for RFCs and numbering of section references.
32*912701f9SAndroid Build Coastguard Worker    Support ?rfc editing processing instruction.
33*912701f9SAndroid Build Coastguard Worker
34*912701f9SAndroid Build Coastguard Worker    2001-10-07  [email protected]
35*912701f9SAndroid Build Coastguard Worker
36*912701f9SAndroid Build Coastguard Worker    Made telephone number links active.
37*912701f9SAndroid Build Coastguard Worker
38*912701f9SAndroid Build Coastguard Worker    2001-10-08  [email protected]
39*912701f9SAndroid Build Coastguard Worker
40*912701f9SAndroid Build Coastguard Worker    Support for vspace element.
41*912701f9SAndroid Build Coastguard Worker
42*912701f9SAndroid Build Coastguard Worker    2001-10-09  [email protected]
43*912701f9SAndroid Build Coastguard Worker
44*912701f9SAndroid Build Coastguard Worker    Experimental support for rfc-issue PI.
45*912701f9SAndroid Build Coastguard Worker
46*912701f9SAndroid Build Coastguard Worker    2001-11-11  [email protected]
47*912701f9SAndroid Build Coastguard Worker
48*912701f9SAndroid Build Coastguard Worker    Support rfc private PI. Removed bogus code reporting the WG in the header.
49*912701f9SAndroid Build Coastguard Worker
50*912701f9SAndroid Build Coastguard Worker    2001-12-17  [email protected]
51*912701f9SAndroid Build Coastguard Worker
52*912701f9SAndroid Build Coastguard Worker    Support title attribute on references element
53*912701f9SAndroid Build Coastguard Worker
54*912701f9SAndroid Build Coastguard Worker    2002-01-05  [email protected]
55*912701f9SAndroid Build Coastguard Worker
56*912701f9SAndroid Build Coastguard Worker    Support for list/@style="@format"
57*912701f9SAndroid Build Coastguard Worker
58*912701f9SAndroid Build Coastguard Worker    2002-01-09  [email protected]
59*912701f9SAndroid Build Coastguard Worker
60*912701f9SAndroid Build Coastguard Worker    Display "closed" RFC issues as deleted
61*912701f9SAndroid Build Coastguard Worker
62*912701f9SAndroid Build Coastguard Worker    2002-01-14  [email protected]
63*912701f9SAndroid Build Coastguard Worker
64*912701f9SAndroid Build Coastguard Worker    Experimentally and optionally parse XML encountered in artwork elements
65*912701f9SAndroid Build Coastguard Worker    (requires MSXSL).
66*912701f9SAndroid Build Coastguard Worker
67*912701f9SAndroid Build Coastguard Worker    2002-01-27  [email protected]
68*912701f9SAndroid Build Coastguard Worker
69*912701f9SAndroid Build Coastguard Worker    Some cleanup. Moved RFC issues from PIs into namespaced elements.
70*912701f9SAndroid Build Coastguard Worker
71*912701f9SAndroid Build Coastguard Worker    2002-01-29  [email protected]
72*912701f9SAndroid Build Coastguard Worker
73*912701f9SAndroid Build Coastguard Worker    Added support for sortrefs PI. Added support for figure names.
74*912701f9SAndroid Build Coastguard Worker
75*912701f9SAndroid Build Coastguard Worker    2002-02-07  [email protected]
76*912701f9SAndroid Build Coastguard Worker
77*912701f9SAndroid Build Coastguard Worker    Highlight parts of artwork which are too wide (72 characters).
78*912701f9SAndroid Build Coastguard Worker
79*912701f9SAndroid Build Coastguard Worker    2002-02-12  [email protected]
80*912701f9SAndroid Build Coastguard Worker
81*912701f9SAndroid Build Coastguard Worker    Code rearrangement for static texts. Fixes for section numbering.
82*912701f9SAndroid Build Coastguard Worker    TOC generation rewritten.
83*912701f9SAndroid Build Coastguard Worker
84*912701f9SAndroid Build Coastguard Worker    2002-02-15  [email protected]
85*912701f9SAndroid Build Coastguard Worker
86*912701f9SAndroid Build Coastguard Worker    Support for irefs in sections; support iref @primary=true
87*912701f9SAndroid Build Coastguard Worker
88*912701f9SAndroid Build Coastguard Worker    2002-03-03  [email protected]
89*912701f9SAndroid Build Coastguard Worker
90*912701f9SAndroid Build Coastguard Worker    Moved anchor prefix into a constant. Added sanity checks on user anchor
91*912701f9SAndroid Build Coastguard Worker    names.
92*912701f9SAndroid Build Coastguard Worker
93*912701f9SAndroid Build Coastguard Worker    2002-03-23  [email protected]
94*912701f9SAndroid Build Coastguard Worker
95*912701f9SAndroid Build Coastguard Worker    Bugfix in detection of matching org names when creating the header. Fixed
96*912701f9SAndroid Build Coastguard Worker    sorting in subitems.
97*912701f9SAndroid Build Coastguard Worker
98*912701f9SAndroid Build Coastguard Worker    2002-04-02  [email protected]
99*912701f9SAndroid Build Coastguard Worker
100*912701f9SAndroid Build Coastguard Worker    Fix TOC link HTML generation when no TOC is generated (created broken
101*912701f9SAndroid Build Coastguard Worker    HTML table code).
102*912701f9SAndroid Build Coastguard Worker
103*912701f9SAndroid Build Coastguard Worker    2002-04-03  [email protected]
104*912701f9SAndroid Build Coastguard Worker
105*912701f9SAndroid Build Coastguard Worker    Made rendering of references more tolerant re: missing parts.
106*912701f9SAndroid Build Coastguard Worker
107*912701f9SAndroid Build Coastguard Worker    2002-04-08  [email protected]
108*912701f9SAndroid Build Coastguard Worker
109*912701f9SAndroid Build Coastguard Worker    Fixed reference numbering when references are split into separate sections.
110*912701f9SAndroid Build Coastguard Worker
111*912701f9SAndroid Build Coastguard Worker    2002-04-16  [email protected]
112*912701f9SAndroid Build Coastguard Worker
113*912701f9SAndroid Build Coastguard Worker    Fix default namespace (shouldn't be set for HTML output method).
114*912701f9SAndroid Build Coastguard Worker
115*912701f9SAndroid Build Coastguard Worker    2002-04-19  [email protected]
116*912701f9SAndroid Build Coastguard Worker
117*912701f9SAndroid Build Coastguard Worker    Lowercase internal CSS selectors for Mozilla compliance. Do not put TOC
118*912701f9SAndroid Build Coastguard Worker    into ul element.
119*912701f9SAndroid Build Coastguard Worker
120*912701f9SAndroid Build Coastguard Worker    2002-04-21  [email protected]
121*912701f9SAndroid Build Coastguard Worker
122*912701f9SAndroid Build Coastguard Worker    Make numbered list inside numbered lists use alphanumeric numbering.
123*912701f9SAndroid Build Coastguard Worker
124*912701f9SAndroid Build Coastguard Worker    2002-05-05  [email protected]
125*912701f9SAndroid Build Coastguard Worker
126*912701f9SAndroid Build Coastguard Worker    Updated issue/editing support.
127*912701f9SAndroid Build Coastguard Worker
128*912701f9SAndroid Build Coastguard Worker    2002-05-15  [email protected]
129*912701f9SAndroid Build Coastguard Worker
130*912701f9SAndroid Build Coastguard Worker    Bugfix for section numbering after introduction of ed:replace
131*912701f9SAndroid Build Coastguard Worker
132*912701f9SAndroid Build Coastguard Worker    2002-06-21  [email protected]
133*912701f9SAndroid Build Coastguard Worker
134*912701f9SAndroid Build Coastguard Worker    When producing private documents, do not include document status, copyright etc.
135*912701f9SAndroid Build Coastguard Worker
136*912701f9SAndroid Build Coastguard Worker    2002-07-08  [email protected]
137*912701f9SAndroid Build Coastguard Worker
138*912701f9SAndroid Build Coastguard Worker    Fix xrefs to Appendices.
139*912701f9SAndroid Build Coastguard Worker
140*912701f9SAndroid Build Coastguard Worker    2002-07-19  fielding
141*912701f9SAndroid Build Coastguard Worker
142*912701f9SAndroid Build Coastguard Worker    Make artwork lightyellow for easier reading.
143*912701f9SAndroid Build Coastguard Worker
144*912701f9SAndroid Build Coastguard Worker    2002-10-09  fielding
145*912701f9SAndroid Build Coastguard Worker
146*912701f9SAndroid Build Coastguard Worker    Translate references title to anchor name to avoid non-uri characters.
147*912701f9SAndroid Build Coastguard Worker
148*912701f9SAndroid Build Coastguard Worker    2002-10-13  [email protected]
149*912701f9SAndroid Build Coastguard Worker
150*912701f9SAndroid Build Coastguard Worker    Support for tocdepth PI.
151*912701f9SAndroid Build Coastguard Worker
152*912701f9SAndroid Build Coastguard Worker    2002-11-03  [email protected]
153*912701f9SAndroid Build Coastguard Worker
154*912701f9SAndroid Build Coastguard Worker    Added temporariry workaround for Mozilla/Transformiix result tree fragment problem.
155*912701f9SAndroid Build Coastguard Worker    (search for 'http://bugzilla.mozilla.org/show_bug.cgi?id=143668')
156*912701f9SAndroid Build Coastguard Worker
157*912701f9SAndroid Build Coastguard Worker    2002-12-25  [email protected]
158*912701f9SAndroid Build Coastguard Worker
159*912701f9SAndroid Build Coastguard Worker    xref code: attempt to uppercase "section" and "appendix" when at the start
160*912701f9SAndroid Build Coastguard Worker    of a sentence.
161*912701f9SAndroid Build Coastguard Worker
162*912701f9SAndroid Build Coastguard Worker    2003-02-02  [email protected]
163*912701f9SAndroid Build Coastguard Worker
164*912701f9SAndroid Build Coastguard Worker    fixed code for vspace blankLines="0", enhanced display for list with "format" style,
165*912701f9SAndroid Build Coastguard Worker    got rid of HTML blockquote elements, added support for "hangIndent"
166*912701f9SAndroid Build Coastguard Worker
167*912701f9SAndroid Build Coastguard Worker    2003-04-10  [email protected]
168*912701f9SAndroid Build Coastguard Worker
169*912701f9SAndroid Build Coastguard Worker    experimental support for appendix and spanx elements
170*912701f9SAndroid Build Coastguard Worker
171*912701f9SAndroid Build Coastguard Worker    2003-04-19  [email protected]
172*912701f9SAndroid Build Coastguard Worker
173*912701f9SAndroid Build Coastguard Worker    fixed counting of list numbers in "format %" styles (one counter
174*912701f9SAndroid Build Coastguard Worker    per unique format string). Added more spanx styles.
175*912701f9SAndroid Build Coastguard Worker
176*912701f9SAndroid Build Coastguard Worker    2003-05-02  [email protected]
177*912701f9SAndroid Build Coastguard Worker
178*912701f9SAndroid Build Coastguard Worker    experimental texttable support
179*912701f9SAndroid Build Coastguard Worker
180*912701f9SAndroid Build Coastguard Worker    2003-05-02  fielding
181*912701f9SAndroid Build Coastguard Worker
182*912701f9SAndroid Build Coastguard Worker    Make mailto links optional (default = none) (jre: default and PI name changed)
183*912701f9SAndroid Build Coastguard Worker
184*912701f9SAndroid Build Coastguard Worker    2003-05-04  [email protected]
185*912701f9SAndroid Build Coastguard Worker
186*912701f9SAndroid Build Coastguard Worker    experimental support for HTML link elements; fix default for table header
187*912701f9SAndroid Build Coastguard Worker    alignment default
188*912701f9SAndroid Build Coastguard Worker
189*912701f9SAndroid Build Coastguard Worker    2003-05-06  [email protected]
190*912701f9SAndroid Build Coastguard Worker
191*912701f9SAndroid Build Coastguard Worker    support for "background" PI.
192*912701f9SAndroid Build Coastguard Worker
193*912701f9SAndroid Build Coastguard Worker    2003-05-11  [email protected]
194*912701f9SAndroid Build Coastguard Worker
195*912701f9SAndroid Build Coastguard Worker    change %c format to lowercase alphabetic. add support for keyword
196*912701f9SAndroid Build Coastguard Worker    elements (generate META tag). fix various HTML conformance problems.
197*912701f9SAndroid Build Coastguard Worker    added experimental support for role attribute. do not number paragraphs
198*912701f9SAndroid Build Coastguard Worker    in unnumbered sections. update boilerplate texts. support for
199*912701f9SAndroid Build Coastguard Worker    "iprnotified" PI. bugfix list numbering. strip whitespace when
200*912701f9SAndroid Build Coastguard Worker    building tel: URIs.
201*912701f9SAndroid Build Coastguard Worker
202*912701f9SAndroid Build Coastguard Worker    2003-05-12  [email protected]
203*912701f9SAndroid Build Coastguard Worker
204*912701f9SAndroid Build Coastguard Worker    more conformance fixes (layout moved into CSS, move lists and figures
205*912701f9SAndroid Build Coastguard Worker    out of para content, do not use tables for list formatting)
206*912701f9SAndroid Build Coastguard Worker
207*912701f9SAndroid Build Coastguard Worker    2003-05-13  [email protected]
208*912701f9SAndroid Build Coastguard Worker
209*912701f9SAndroid Build Coastguard Worker    add DC.Creator meta tag, refactoring
210*912701f9SAndroid Build Coastguard Worker
211*912701f9SAndroid Build Coastguard Worker    2003-05-16  [email protected]
212*912701f9SAndroid Build Coastguard Worker
213*912701f9SAndroid Build Coastguard Worker    put nbsps between "section" and section number (xref).
214*912701f9SAndroid Build Coastguard Worker
215*912701f9SAndroid Build Coastguard Worker    2003-05-18  [email protected]
216*912701f9SAndroid Build Coastguard Worker
217*912701f9SAndroid Build Coastguard Worker    author summary: add missing comma.
218*912701f9SAndroid Build Coastguard Worker
219*912701f9SAndroid Build Coastguard Worker    2003-06-06  [email protected]
220*912701f9SAndroid Build Coastguard Worker
221*912701f9SAndroid Build Coastguard Worker    fix index generation bug (transposed characters in key generation). Enhance
222*912701f9SAndroid Build Coastguard Worker    sentence start detection (xref starting a section was using lowercase
223*912701f9SAndroid Build Coastguard Worker    "section").
224*912701f9SAndroid Build Coastguard Worker
225*912701f9SAndroid Build Coastguard Worker    2003-06-22  [email protected]
226*912701f9SAndroid Build Coastguard Worker
227*912701f9SAndroid Build Coastguard Worker    exp. support for xref/@format. Add missing support for eref w/o content.
228*912701f9SAndroid Build Coastguard Worker    exp. support for annotations in reference elements. Code cleanup
229*912701f9SAndroid Build Coastguard Worker    reference table formatting.
230*912701f9SAndroid Build Coastguard Worker
231*912701f9SAndroid Build Coastguard Worker    2003-07-09  [email protected]
232*912701f9SAndroid Build Coastguard Worker
233*912701f9SAndroid Build Coastguard Worker    Another fix for DC.Creator meta tag creation based on RFC2731
234*912701f9SAndroid Build Coastguard Worker
235*912701f9SAndroid Build Coastguard Worker    2003-07-24  [email protected]
236*912701f9SAndroid Build Coastguard Worker
237*912701f9SAndroid Build Coastguard Worker    Fix namespace name for DC.Creator.
238*912701f9SAndroid Build Coastguard Worker
239*912701f9SAndroid Build Coastguard Worker    2003-08-06  [email protected]
240*912701f9SAndroid Build Coastguard Worker
241*912701f9SAndroid Build Coastguard Worker    Cleanup node-set support (only use exslt (saxon, xalan, libxslt) extension
242*912701f9SAndroid Build Coastguard Worker    functions; remove Transformix workarounds that stopped to work in Moz 1.4)
243*912701f9SAndroid Build Coastguard Worker
244*912701f9SAndroid Build Coastguard Worker    2003-08-09  [email protected]
245*912701f9SAndroid Build Coastguard Worker
246*912701f9SAndroid Build Coastguard Worker    Generate HTML lang tag.
247*912701f9SAndroid Build Coastguard Worker
248*912701f9SAndroid Build Coastguard Worker    2003-08-10  [email protected]
249*912701f9SAndroid Build Coastguard Worker
250*912701f9SAndroid Build Coastguard Worker    Map spanx/verb to HTML "samp" element. Fix author name display in
251*912701f9SAndroid Build Coastguard Worker    references (reverse surname/initials for last author), add "Ed.".
252*912701f9SAndroid Build Coastguard Worker    Fix internal bookmark generation.
253*912701f9SAndroid Build Coastguard Worker
254*912701f9SAndroid Build Coastguard Worker    2003-08-17  [email protected]
255*912701f9SAndroid Build Coastguard Worker
256*912701f9SAndroid Build Coastguard Worker    Add DCMI dates, identifiers and abstract. Add PI to suppress DCMI
257*912701f9SAndroid Build Coastguard Worker    generation.  Do not add TOC entry to Copyright Statement when there is
258*912701f9SAndroid Build Coastguard Worker    none. Align RFC2629 PI names and parameter names. Change style for
259*912701f9SAndroid Build Coastguard Worker    inline URIs generated by eref. Add header and footer support.
260*912701f9SAndroid Build Coastguard Worker    Enhance CSS paging properties. Support topblock PI. Added hooks for
261*912701f9SAndroid Build Coastguard Worker    proper XHTML generation through separate XSLT. Enhance warning and
262*912701f9SAndroid Build Coastguard Worker    error messages. Add support for artwork image display. Table formatting
263*912701f9SAndroid Build Coastguard Worker    fixes (borders, thead continuation).
264*912701f9SAndroid Build Coastguard Worker
265*912701f9SAndroid Build Coastguard Worker    2003-08-18  [email protected]
266*912701f9SAndroid Build Coastguard Worker
267*912701f9SAndroid Build Coastguard Worker    Add workaround for MSXML4 node-set and Mozilla node-set issues (fallback
268*912701f9SAndroid Build Coastguard Worker    just displays are warning).
269*912701f9SAndroid Build Coastguard Worker
270*912701f9SAndroid Build Coastguard Worker    2003-10-06  [email protected]
271*912701f9SAndroid Build Coastguard Worker
272*912701f9SAndroid Build Coastguard Worker    Add workaround for broken pre/ins handling in Mozilla
273*912701f9SAndroid Build Coastguard Worker    (see <http://bugzilla.mozilla.org/show_bug.cgi?id=204401>). Make use
274*912701f9SAndroid Build Coastguard Worker    of cite attribute on ed:replace. CSS cleanup.
275*912701f9SAndroid Build Coastguard Worker
276*912701f9SAndroid Build Coastguard Worker    2003-10-08  [email protected]
277*912701f9SAndroid Build Coastguard Worker
278*912701f9SAndroid Build Coastguard Worker    Fix minor issue detecting the same org for the header (caused by IE's
279*912701f9SAndroid Build Coastguard Worker    non-standard whitespace handling). Fix default handling for /rfc/@category.
280*912701f9SAndroid Build Coastguard Worker
281*912701f9SAndroid Build Coastguard Worker    2003-11-09  [email protected]
282*912701f9SAndroid Build Coastguard Worker
283*912701f9SAndroid Build Coastguard Worker    Inherit ed:entered-by from ancestor elements. Change CSS color for inserted
284*912701f9SAndroid Build Coastguard Worker    text to green. Generate issues-list anchor. Do not complain about missing
285*912701f9SAndroid Build Coastguard Worker    targets when the xref element is below ed:del. Remove code that attempted
286*912701f9SAndroid Build Coastguard Worker    to distinguish section/Section when producing links - always use
287*912701f9SAndroid Build Coastguard Worker    uppercase. Fix date rendering for issue resolutions.
288*912701f9SAndroid Build Coastguard Worker
289*912701f9SAndroid Build Coastguard Worker    2003-11-29  [email protected]
290*912701f9SAndroid Build Coastguard Worker
291*912701f9SAndroid Build Coastguard Worker    Fix color values for table backgrounds for issue rendering. Change
292*912701f9SAndroid Build Coastguard Worker    rendering of issue links to use inline-styles. Add colored issue markers to
293*912701f9SAndroid Build Coastguard Worker    issues.
294*912701f9SAndroid Build Coastguard Worker
295*912701f9SAndroid Build Coastguard Worker    2003-12-13  [email protected]
296*912701f9SAndroid Build Coastguard Worker
297*912701f9SAndroid Build Coastguard Worker    Fix inheritance of ed:entered-by attribute. Display note elements inside
298*912701f9SAndroid Build Coastguard Worker    change tracking as well.
299*912701f9SAndroid Build Coastguard Worker
300*912701f9SAndroid Build Coastguard Worker    2004-01-18  [email protected]
301*912701f9SAndroid Build Coastguard Worker
302*912701f9SAndroid Build Coastguard Worker    When PI compact = 'yes', make most CSS print page breaks conditional.
303*912701f9SAndroid Build Coastguard Worker
304*912701f9SAndroid Build Coastguard Worker    2004-02-20  [email protected]
305*912701f9SAndroid Build Coastguard Worker
306*912701f9SAndroid Build Coastguard Worker    Support for RFC3667 IPR changes (xml2rfc 1.22); see
307*912701f9SAndroid Build Coastguard Worker    <http://lists.xml.resource.org/pipermail/xml2rfc/2004-February/001088.html>.
308*912701f9SAndroid Build Coastguard Worker
309*912701f9SAndroid Build Coastguard Worker    2004-03-11  [email protected]
310*912701f9SAndroid Build Coastguard Worker
311*912701f9SAndroid Build Coastguard Worker    Add "(if approved)" to "updates" and "obsoletes" unless the document has
312*912701f9SAndroid Build Coastguard Worker    an RFC number.
313*912701f9SAndroid Build Coastguard Worker
314*912701f9SAndroid Build Coastguard Worker    2004-04-01  [email protected]
315*912701f9SAndroid Build Coastguard Worker
316*912701f9SAndroid Build Coastguard Worker    Fix RFC3667 output, see <http://lists.xml.resource.org/pipermail/xml2rfc/2004-April/001208.html>
317*912701f9SAndroid Build Coastguard Worker-->
318*912701f9SAndroid Build Coastguard Worker
319*912701f9SAndroid Build Coastguard Worker
320*912701f9SAndroid Build Coastguard Worker<xsl:output method="html" encoding="iso-8859-1" version="4.0" doctype-public="-//W3C//DTD HTML 4.01//EN" />
321*912701f9SAndroid Build Coastguard Worker
322*912701f9SAndroid Build Coastguard Worker
323*912701f9SAndroid Build Coastguard Worker<!-- process some of the processing instructions supported by Marshall T. Rose's
324*912701f9SAndroid Build Coastguard Worker     xml2rfc sofware, see <http://xml.resource.org/> -->
325*912701f9SAndroid Build Coastguard Worker
326*912701f9SAndroid Build Coastguard Worker
327*912701f9SAndroid Build Coastguard Worker<!-- rfc compact PI -->
328*912701f9SAndroid Build Coastguard Worker
329*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-compact"
330*912701f9SAndroid Build Coastguard Worker  select="substring-after(
331*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc')[contains(.,'compact=')], '&quot; ', ''),
332*912701f9SAndroid Build Coastguard Worker        'compact=')"
333*912701f9SAndroid Build Coastguard Worker/>
334*912701f9SAndroid Build Coastguard Worker
335*912701f9SAndroid Build Coastguard Worker<!-- rfc footer PI -->
336*912701f9SAndroid Build Coastguard Worker
337*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-footer"
338*912701f9SAndroid Build Coastguard Worker  select="substring-after(
339*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc')[contains(.,'footer=')], '&quot; ', ''),
340*912701f9SAndroid Build Coastguard Worker        'footer=')"
341*912701f9SAndroid Build Coastguard Worker/>
342*912701f9SAndroid Build Coastguard Worker
343*912701f9SAndroid Build Coastguard Worker<!-- rfc header PI -->
344*912701f9SAndroid Build Coastguard Worker
345*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-header"
346*912701f9SAndroid Build Coastguard Worker  select="substring-after(
347*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc')[contains(.,'header=')], '&quot; ', ''),
348*912701f9SAndroid Build Coastguard Worker        'header=')"
349*912701f9SAndroid Build Coastguard Worker/>
350*912701f9SAndroid Build Coastguard Worker
351*912701f9SAndroid Build Coastguard Worker<!-- include a table of contents if a processing instruction <?rfc?>
352*912701f9SAndroid Build Coastguard Worker     exists with contents toc="yes". Can be overriden by an XSLT parameter -->
353*912701f9SAndroid Build Coastguard Worker
354*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-toc"
355*912701f9SAndroid Build Coastguard Worker  select="substring-after(
356*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc')[contains(.,'toc=')], '&quot; ', ''),
357*912701f9SAndroid Build Coastguard Worker        'toc=')"
358*912701f9SAndroid Build Coastguard Worker/>
359*912701f9SAndroid Build Coastguard Worker
360*912701f9SAndroid Build Coastguard Worker<!-- optional tocdepth-->
361*912701f9SAndroid Build Coastguard Worker
362*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-tocdepth"
363*912701f9SAndroid Build Coastguard Worker  select="substring-after(
364*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc')[contains(.,'tocdepth=')], '&quot; ', ''),
365*912701f9SAndroid Build Coastguard Worker        'tocdepth=')"
366*912701f9SAndroid Build Coastguard Worker/>
367*912701f9SAndroid Build Coastguard Worker
368*912701f9SAndroid Build Coastguard Worker<xsl:variable name="parsedTocDepth">
369*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
370*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$xml2rfc-tocdepth='1'">1</xsl:when>
371*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$xml2rfc-tocdepth='2'">2</xsl:when>
372*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$xml2rfc-tocdepth='3'">3</xsl:when>
373*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$xml2rfc-tocdepth='4'">4</xsl:when>
374*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$xml2rfc-tocdepth='5'">5</xsl:when>
375*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>99</xsl:otherwise>
376*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
377*912701f9SAndroid Build Coastguard Worker</xsl:variable>
378*912701f9SAndroid Build Coastguard Worker
379*912701f9SAndroid Build Coastguard Worker<!-- suppress top block if a processing instruction <?rfc?>
380*912701f9SAndroid Build Coastguard Worker     exists with contents tocblock="no". Can be overriden by an XSLT parameter -->
381*912701f9SAndroid Build Coastguard Worker
382*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-topblock"
383*912701f9SAndroid Build Coastguard Worker  select="substring-after(
384*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc')[contains(.,'topblock=')], '&quot; ', ''),
385*912701f9SAndroid Build Coastguard Worker        'topblock=')"
386*912701f9SAndroid Build Coastguard Worker/>
387*912701f9SAndroid Build Coastguard Worker
388*912701f9SAndroid Build Coastguard Worker<!-- use symbolic reference names instead of numeric ones if a processing instruction <?rfc?>
389*912701f9SAndroid Build Coastguard Worker     exists with contents symrefs="yes". Can be overriden by an XSLT parameter -->
390*912701f9SAndroid Build Coastguard Worker
391*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-symrefs"
392*912701f9SAndroid Build Coastguard Worker  select="substring-after(
393*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc')[contains(.,'symrefs=')], '&quot; ', ''),
394*912701f9SAndroid Build Coastguard Worker        'symrefs=')"
395*912701f9SAndroid Build Coastguard Worker/>
396*912701f9SAndroid Build Coastguard Worker
397*912701f9SAndroid Build Coastguard Worker<!-- sort references if a processing instruction <?rfc?>
398*912701f9SAndroid Build Coastguard Worker     exists with contents sortrefs="yes". Can be overriden by an XSLT parameter -->
399*912701f9SAndroid Build Coastguard Worker
400*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-sortrefs"
401*912701f9SAndroid Build Coastguard Worker  select="substring-after(
402*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc')[contains(.,'sortrefs=')], '&quot; ', ''),
403*912701f9SAndroid Build Coastguard Worker        'sortrefs=')"
404*912701f9SAndroid Build Coastguard Worker/>
405*912701f9SAndroid Build Coastguard Worker
406*912701f9SAndroid Build Coastguard Worker<!-- insert editing marks if a processing instruction <?rfc?>
407*912701f9SAndroid Build Coastguard Worker     exists with contents editing="yes". Can be overriden by an XSLT parameter -->
408*912701f9SAndroid Build Coastguard Worker
409*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-editing"
410*912701f9SAndroid Build Coastguard Worker  select="substring-after(
411*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc')[contains(.,'editing=')], '&quot; ', ''),
412*912701f9SAndroid Build Coastguard Worker        'editing=')"
413*912701f9SAndroid Build Coastguard Worker/>
414*912701f9SAndroid Build Coastguard Worker
415*912701f9SAndroid Build Coastguard Worker<!-- make it a private paper -->
416*912701f9SAndroid Build Coastguard Worker
417*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-private"
418*912701f9SAndroid Build Coastguard Worker  select="substring-after(
419*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc')[contains(.,'private=')], '&quot;', ''),
420*912701f9SAndroid Build Coastguard Worker        'private=')"
421*912701f9SAndroid Build Coastguard Worker/>
422*912701f9SAndroid Build Coastguard Worker
423*912701f9SAndroid Build Coastguard Worker<!-- background image? -->
424*912701f9SAndroid Build Coastguard Worker
425*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-background"
426*912701f9SAndroid Build Coastguard Worker  select="substring-after(
427*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc')[contains(.,'background=')], '&quot;', ''),
428*912701f9SAndroid Build Coastguard Worker        'background=')"
429*912701f9SAndroid Build Coastguard Worker/>
430*912701f9SAndroid Build Coastguard Worker
431*912701f9SAndroid Build Coastguard Worker<!-- extension for XML parsing in artwork -->
432*912701f9SAndroid Build Coastguard Worker
433*912701f9SAndroid Build Coastguard Worker<xsl:param name="parse-xml-in-artwork"
434*912701f9SAndroid Build Coastguard Worker  select="substring-after(
435*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc-ext')[contains(.,'parse-xml-in-artwork=')], '&quot; ', ''),
436*912701f9SAndroid Build Coastguard Worker        'parse-xml-in-artwork=')"
437*912701f9SAndroid Build Coastguard Worker/>
438*912701f9SAndroid Build Coastguard Worker
439*912701f9SAndroid Build Coastguard Worker<!-- extension for exclusing DCMI properties in meta tag (RFC2731) -->
440*912701f9SAndroid Build Coastguard Worker
441*912701f9SAndroid Build Coastguard Worker<xsl:param name="xml2rfc-ext-support-rfc2731"
442*912701f9SAndroid Build Coastguard Worker  select="substring-after(
443*912701f9SAndroid Build Coastguard Worker      translate(/processing-instruction('rfc-ext')[contains(.,'support-rfc2731=')], '&quot; ', ''),
444*912701f9SAndroid Build Coastguard Worker        'support-rfc2731=')"
445*912701f9SAndroid Build Coastguard Worker/>
446*912701f9SAndroid Build Coastguard Worker
447*912701f9SAndroid Build Coastguard Worker<!-- choose whether or not to do mailto links -->
448*912701f9SAndroid Build Coastguard Worker
449*912701f9SAndroid Build Coastguard Worker <xsl:param name="xml2rfc-linkmailto"
450*912701f9SAndroid Build Coastguard Worker   select="substring-after(
451*912701f9SAndroid Build Coastguard Worker       translate(/processing-instruction('rfc')[contains(.,'linkmailto=')], '&quot;', ''),
452*912701f9SAndroid Build Coastguard Worker         'linkmailto=')"
453*912701f9SAndroid Build Coastguard Worker />
454*912701f9SAndroid Build Coastguard Worker
455*912701f9SAndroid Build Coastguard Worker
456*912701f9SAndroid Build Coastguard Worker<!-- iprnotified switch -->
457*912701f9SAndroid Build Coastguard Worker
458*912701f9SAndroid Build Coastguard Worker <xsl:param name="xml2rfc-iprnotified"
459*912701f9SAndroid Build Coastguard Worker   select="substring-after(
460*912701f9SAndroid Build Coastguard Worker       translate(/processing-instruction('rfc')[contains(.,'iprnotified=')], '&quot;', ''),
461*912701f9SAndroid Build Coastguard Worker         'iprnotified=')"
462*912701f9SAndroid Build Coastguard Worker />
463*912701f9SAndroid Build Coastguard Worker
464*912701f9SAndroid Build Coastguard Worker
465*912701f9SAndroid Build Coastguard Worker<!-- URL prefix for RFCs. -->
466*912701f9SAndroid Build Coastguard Worker
467*912701f9SAndroid Build Coastguard Worker<xsl:param name="rfcUrlPrefix" select="'http://www.ietf.org/rfc/rfc'" />
468*912701f9SAndroid Build Coastguard Worker
469*912701f9SAndroid Build Coastguard Worker<!-- warning re: absent node-set ext. function -->
470*912701f9SAndroid Build Coastguard Worker<xsl:variable name="node-set-warning">
471*912701f9SAndroid Build Coastguard Worker  This stylesheet requires either an XSLT-1.0 processor with node-set()
472*912701f9SAndroid Build Coastguard Worker  extension function, or an XSLT-2.0 processor. Therefore, parts of the
473*912701f9SAndroid Build Coastguard Worker  document couldn't be displayed.
474*912701f9SAndroid Build Coastguard Worker</xsl:variable>
475*912701f9SAndroid Build Coastguard Worker
476*912701f9SAndroid Build Coastguard Worker<!-- build help keys for indices -->
477*912701f9SAndroid Build Coastguard Worker<xsl:key name="index-first-letter"
478*912701f9SAndroid Build Coastguard Worker  match="iref"
479*912701f9SAndroid Build Coastguard Worker    use="translate(substring(@item,1,1),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />
480*912701f9SAndroid Build Coastguard Worker
481*912701f9SAndroid Build Coastguard Worker<xsl:key name="index-item"
482*912701f9SAndroid Build Coastguard Worker  match="iref"
483*912701f9SAndroid Build Coastguard Worker    use="@item" />
484*912701f9SAndroid Build Coastguard Worker
485*912701f9SAndroid Build Coastguard Worker<xsl:key name="index-item-subitem"
486*912701f9SAndroid Build Coastguard Worker  match="iref"
487*912701f9SAndroid Build Coastguard Worker    use="concat(@item,'..',@subitem)" />
488*912701f9SAndroid Build Coastguard Worker
489*912701f9SAndroid Build Coastguard Worker<!-- character translation tables -->
490*912701f9SAndroid Build Coastguard Worker<xsl:variable name="lcase" select="'abcdefghijklmnopqrstuvwxyz'" />
491*912701f9SAndroid Build Coastguard Worker<xsl:variable name="ucase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
492*912701f9SAndroid Build Coastguard Worker
493*912701f9SAndroid Build Coastguard Worker<xsl:variable name="plain" select="' #/ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
494*912701f9SAndroid Build Coastguard Worker<xsl:variable name="touri" select="'___abcdefghijklmnopqrstuvwxyz'" />
495*912701f9SAndroid Build Coastguard Worker
496*912701f9SAndroid Build Coastguard Worker<!-- prefix for automatically generated anchors -->
497*912701f9SAndroid Build Coastguard Worker<xsl:variable name="anchor-prefix" select="'rfc'" />
498*912701f9SAndroid Build Coastguard Worker
499*912701f9SAndroid Build Coastguard Worker<!-- IPR version switch -->
500*912701f9SAndroid Build Coastguard Worker<xsl:variable name="ipr-rfc3667" select="(/rfc/@number &gt; 3708) or not((/rfc/@ipr = 'full2026') or
501*912701f9SAndroid Build Coastguard Worker  (/rfc/@ipr = 'noDerivativeWorks2026') or (/rfc/@ipr = 'noDerivativeWorksNow') or (/rfc/@ipr = 'none'))" />
502*912701f9SAndroid Build Coastguard Worker
503*912701f9SAndroid Build Coastguard Worker
504*912701f9SAndroid Build Coastguard Worker<!-- Templates for the various elements of rfc2629.dtd -->
505*912701f9SAndroid Build Coastguard Worker
506*912701f9SAndroid Build Coastguard Worker<xsl:template match="abstract">
507*912701f9SAndroid Build Coastguard Worker  <h1><a name="{$anchor-prefix}.abstract"/>Abstract</h1>
508*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates />
509*912701f9SAndroid Build Coastguard Worker</xsl:template>
510*912701f9SAndroid Build Coastguard Worker
511*912701f9SAndroid Build Coastguard Worker<msxsl:script language="JScript" implements-prefix="myns">
512*912701f9SAndroid Build Coastguard Worker  function parseXml(str) {
513*912701f9SAndroid Build Coastguard Worker    var doc = new ActiveXObject ("MSXML2.DOMDocument");
514*912701f9SAndroid Build Coastguard Worker    doc.async = false;
515*912701f9SAndroid Build Coastguard Worker    if (doc.loadXML (str)) return "";
516*912701f9SAndroid Build Coastguard Worker    return doc.parseError.reason + "\n" + doc.parseError.srcText + " (" + doc.parseError.line + "/" + doc.parseError.linepos + ")";
517*912701f9SAndroid Build Coastguard Worker  }
518*912701f9SAndroid Build Coastguard Worker</msxsl:script>
519*912701f9SAndroid Build Coastguard Worker
520*912701f9SAndroid Build Coastguard Worker<xsl:template match="artwork">
521*912701f9SAndroid Build Coastguard Worker  <xsl:if test="not(ancestor::ed:del) and $parse-xml-in-artwork='yes' and function-available('myns:parseXml')">
522*912701f9SAndroid Build Coastguard Worker    <xsl:if test="contains(.,'&lt;?xml')">
523*912701f9SAndroid Build Coastguard Worker      <xsl:variable name="body" select="substring-after(substring-after(.,'&lt;?xml'),'?>')" />
524*912701f9SAndroid Build Coastguard Worker      <xsl:if test="$body!='' and myns:parseXml($body)!=''">
525*912701f9SAndroid Build Coastguard Worker        <table style="background-color: red; border-width: thin; border-style: solid; border-color: black;">
526*912701f9SAndroid Build Coastguard Worker        <tr><td>
527*912701f9SAndroid Build Coastguard Worker        XML PARSE ERROR:
528*912701f9SAndroid Build Coastguard Worker        <pre><xsl:value-of select="myns:parseXml($body)" /></pre>
529*912701f9SAndroid Build Coastguard Worker        </td></tr></table>
530*912701f9SAndroid Build Coastguard Worker      </xsl:if>
531*912701f9SAndroid Build Coastguard Worker    </xsl:if>
532*912701f9SAndroid Build Coastguard Worker    <xsl:if test="@ed:parse-xml-after">
533*912701f9SAndroid Build Coastguard Worker      <xsl:if test="myns:parseXml(string(.))!=''">
534*912701f9SAndroid Build Coastguard Worker        <table style="background-color: red; border-width: thin; border-style: solid; border-color: black;">
535*912701f9SAndroid Build Coastguard Worker        <tr><td>
536*912701f9SAndroid Build Coastguard Worker        XML PARSE ERROR:
537*912701f9SAndroid Build Coastguard Worker        <pre><xsl:value-of select="myns:parseXml(string(.))" /></pre>
538*912701f9SAndroid Build Coastguard Worker        </td></tr></table>
539*912701f9SAndroid Build Coastguard Worker      </xsl:if>
540*912701f9SAndroid Build Coastguard Worker    </xsl:if>
541*912701f9SAndroid Build Coastguard Worker  </xsl:if>
542*912701f9SAndroid Build Coastguard Worker  <pre>
543*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertInsDelClass" />
544*912701f9SAndroid Build Coastguard Worker    <!--<xsl:value-of select="." />--><xsl:call-template name="showArtwork">
545*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="mode" select="'html'" />
546*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="text" select="." />
547*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="initial" select="'yes'" />
548*912701f9SAndroid Build Coastguard Worker  </xsl:call-template></pre>
549*912701f9SAndroid Build Coastguard Worker</xsl:template>
550*912701f9SAndroid Build Coastguard Worker
551*912701f9SAndroid Build Coastguard Worker<xsl:template match="artwork[@src and starts-with(@type,'image/')]">
552*912701f9SAndroid Build Coastguard Worker  <img src="{@src}" alt="{.}">
553*912701f9SAndroid Build Coastguard Worker    <xsl:copy-of select="@width|@height"/>
554*912701f9SAndroid Build Coastguard Worker  </img>
555*912701f9SAndroid Build Coastguard Worker</xsl:template>
556*912701f9SAndroid Build Coastguard Worker
557*912701f9SAndroid Build Coastguard Worker<xsl:template match="author">
558*912701f9SAndroid Build Coastguard Worker  <tr>
559*912701f9SAndroid Build Coastguard Worker    <td>&#0160;</td>
560*912701f9SAndroid Build Coastguard Worker    <td>
561*912701f9SAndroid Build Coastguard Worker      <xsl:value-of select="@fullname" />
562*912701f9SAndroid Build Coastguard Worker      <xsl:if test="@role">
563*912701f9SAndroid Build Coastguard Worker        (<xsl:value-of select="@role" />)
564*912701f9SAndroid Build Coastguard Worker      </xsl:if>
565*912701f9SAndroid Build Coastguard Worker    </td>
566*912701f9SAndroid Build Coastguard Worker  </tr>
567*912701f9SAndroid Build Coastguard Worker  <tr>
568*912701f9SAndroid Build Coastguard Worker    <td>&#0160;</td>
569*912701f9SAndroid Build Coastguard Worker    <td><xsl:value-of select="organization" /></td>
570*912701f9SAndroid Build Coastguard Worker  </tr>
571*912701f9SAndroid Build Coastguard Worker  <xsl:if test="address/postal/street!=''">
572*912701f9SAndroid Build Coastguard Worker    <tr>
573*912701f9SAndroid Build Coastguard Worker      <td>&#0160;</td>
574*912701f9SAndroid Build Coastguard Worker      <td><xsl:for-each select="address/postal/street"><xsl:value-of select="." /><br /></xsl:for-each></td>
575*912701f9SAndroid Build Coastguard Worker    </tr>
576*912701f9SAndroid Build Coastguard Worker  </xsl:if>
577*912701f9SAndroid Build Coastguard Worker  <xsl:if test="address/postal/city|address/postal/region|address/postal/code">
578*912701f9SAndroid Build Coastguard Worker    <tr>
579*912701f9SAndroid Build Coastguard Worker      <td>&#0160;</td>
580*912701f9SAndroid Build Coastguard Worker      <td>
581*912701f9SAndroid Build Coastguard Worker        <xsl:if test="address/postal/city"><xsl:value-of select="address/postal/city" />, </xsl:if>
582*912701f9SAndroid Build Coastguard Worker        <xsl:if test="address/postal/region"><xsl:value-of select="address/postal/region" />&#160;</xsl:if>
583*912701f9SAndroid Build Coastguard Worker        <xsl:if test="address/postal/code"><xsl:value-of select="address/postal/code" /></xsl:if>
584*912701f9SAndroid Build Coastguard Worker      </td>
585*912701f9SAndroid Build Coastguard Worker    </tr>
586*912701f9SAndroid Build Coastguard Worker  </xsl:if>
587*912701f9SAndroid Build Coastguard Worker  <xsl:if test="address/postal/country">
588*912701f9SAndroid Build Coastguard Worker    <tr>
589*912701f9SAndroid Build Coastguard Worker      <td>&#0160;</td>
590*912701f9SAndroid Build Coastguard Worker      <td><xsl:value-of select="address/postal/country" /></td>
591*912701f9SAndroid Build Coastguard Worker    </tr>
592*912701f9SAndroid Build Coastguard Worker  </xsl:if>
593*912701f9SAndroid Build Coastguard Worker  <xsl:if test="address/phone">
594*912701f9SAndroid Build Coastguard Worker    <tr>
595*912701f9SAndroid Build Coastguard Worker      <td class="right"><b>Phone:&#0160;</b></td>
596*912701f9SAndroid Build Coastguard Worker      <td><a href="tel:{translate(address/phone,' ','')}"><xsl:value-of select="address/phone" /></a></td>
597*912701f9SAndroid Build Coastguard Worker    </tr>
598*912701f9SAndroid Build Coastguard Worker  </xsl:if>
599*912701f9SAndroid Build Coastguard Worker  <xsl:if test="address/facsimile">
600*912701f9SAndroid Build Coastguard Worker    <tr>
601*912701f9SAndroid Build Coastguard Worker      <td class="right"><b>Fax:&#0160;</b></td>
602*912701f9SAndroid Build Coastguard Worker      <td><a href="fax:{translate(address/facsimile,' ','')}"><xsl:value-of select="address/facsimile" /></a></td>
603*912701f9SAndroid Build Coastguard Worker    </tr>
604*912701f9SAndroid Build Coastguard Worker  </xsl:if>
605*912701f9SAndroid Build Coastguard Worker  <xsl:if test="address/email">
606*912701f9SAndroid Build Coastguard Worker    <tr>
607*912701f9SAndroid Build Coastguard Worker      <td class="right"><b>EMail:&#0160;</b></td>
608*912701f9SAndroid Build Coastguard Worker      <td>
609*912701f9SAndroid Build Coastguard Worker        <a>
610*912701f9SAndroid Build Coastguard Worker          <xsl:if test="$xml2rfc-linkmailto!='no'">
611*912701f9SAndroid Build Coastguard Worker            <xsl:attribute name="href">mailto:<xsl:value-of select="address/email" /></xsl:attribute>
612*912701f9SAndroid Build Coastguard Worker          </xsl:if>
613*912701f9SAndroid Build Coastguard Worker          <xsl:value-of select="address/email" />
614*912701f9SAndroid Build Coastguard Worker        </a>
615*912701f9SAndroid Build Coastguard Worker      </td>
616*912701f9SAndroid Build Coastguard Worker    </tr>
617*912701f9SAndroid Build Coastguard Worker  </xsl:if>
618*912701f9SAndroid Build Coastguard Worker  <xsl:if test="address/uri">
619*912701f9SAndroid Build Coastguard Worker    <tr>
620*912701f9SAndroid Build Coastguard Worker      <td class="right"><b>URI:&#0160;</b></td>
621*912701f9SAndroid Build Coastguard Worker      <td><a href="{address/uri}"><xsl:value-of select="address/uri" /></a></td>
622*912701f9SAndroid Build Coastguard Worker    </tr>
623*912701f9SAndroid Build Coastguard Worker  </xsl:if>
624*912701f9SAndroid Build Coastguard Worker  <tr>
625*912701f9SAndroid Build Coastguard Worker    <td>&#0160;</td>
626*912701f9SAndroid Build Coastguard Worker    <td />
627*912701f9SAndroid Build Coastguard Worker  </tr>
628*912701f9SAndroid Build Coastguard Worker</xsl:template>
629*912701f9SAndroid Build Coastguard Worker
630*912701f9SAndroid Build Coastguard Worker<xsl:template match="back">
631*912701f9SAndroid Build Coastguard Worker
632*912701f9SAndroid Build Coastguard Worker  <!-- add references section first, no matter where it appears in the
633*912701f9SAndroid Build Coastguard Worker    source document -->
634*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="references" />
635*912701f9SAndroid Build Coastguard Worker
636*912701f9SAndroid Build Coastguard Worker  <!-- next, add information about the document's authors -->
637*912701f9SAndroid Build Coastguard Worker  <xsl:call-template name="insertAuthors" />
638*912701f9SAndroid Build Coastguard Worker
639*912701f9SAndroid Build Coastguard Worker  <!-- add all other top-level sections under <back> -->
640*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="*[not(self::references)]" />
641*912701f9SAndroid Build Coastguard Worker
642*912701f9SAndroid Build Coastguard Worker  <xsl:if test="not($xml2rfc-private)">
643*912701f9SAndroid Build Coastguard Worker    <!-- copyright statements -->
644*912701f9SAndroid Build Coastguard Worker    <xsl:variable name="copyright"><xsl:call-template name="insertCopyright" /></xsl:variable>
645*912701f9SAndroid Build Coastguard Worker
646*912701f9SAndroid Build Coastguard Worker    <!-- emit it -->
647*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
648*912701f9SAndroid Build Coastguard Worker      <xsl:when test="function-available('msxsl:node-set')">
649*912701f9SAndroid Build Coastguard Worker        <xsl:apply-templates select="msxsl:node-set($copyright)" />
650*912701f9SAndroid Build Coastguard Worker      </xsl:when>
651*912701f9SAndroid Build Coastguard Worker      <xsl:when test="function-available('exslt:node-set')">
652*912701f9SAndroid Build Coastguard Worker        <xsl:apply-templates select="exslt:node-set($copyright)" />
653*912701f9SAndroid Build Coastguard Worker      </xsl:when>
654*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>
655*912701f9SAndroid Build Coastguard Worker        <xsl:message><xsl:value-of select="$node-set-warning"/></xsl:message>
656*912701f9SAndroid Build Coastguard Worker        <p class="error"><xsl:value-of select="$node-set-warning"/></p>
657*912701f9SAndroid Build Coastguard Worker      </xsl:otherwise>
658*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
659*912701f9SAndroid Build Coastguard Worker  </xsl:if>
660*912701f9SAndroid Build Coastguard Worker
661*912701f9SAndroid Build Coastguard Worker  <!-- insert the index if index entries exist -->
662*912701f9SAndroid Build Coastguard Worker  <xsl:if test="//iref">
663*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertIndex" />
664*912701f9SAndroid Build Coastguard Worker  </xsl:if>
665*912701f9SAndroid Build Coastguard Worker
666*912701f9SAndroid Build Coastguard Worker</xsl:template>
667*912701f9SAndroid Build Coastguard Worker
668*912701f9SAndroid Build Coastguard Worker<xsl:template match="eref[node()]">
669*912701f9SAndroid Build Coastguard Worker  <a href="{@target}"><xsl:apply-templates /></a>
670*912701f9SAndroid Build Coastguard Worker</xsl:template>
671*912701f9SAndroid Build Coastguard Worker
672*912701f9SAndroid Build Coastguard Worker<xsl:template match="eref[not(node())]">
673*912701f9SAndroid Build Coastguard Worker  <xsl:text>&lt;</xsl:text>
674*912701f9SAndroid Build Coastguard Worker  <a href="{@target}"><xsl:value-of select="@target" /></a>
675*912701f9SAndroid Build Coastguard Worker  <xsl:text>&gt;</xsl:text>
676*912701f9SAndroid Build Coastguard Worker</xsl:template>
677*912701f9SAndroid Build Coastguard Worker
678*912701f9SAndroid Build Coastguard Worker<xsl:template match="figure">
679*912701f9SAndroid Build Coastguard Worker  <xsl:if test="@anchor!=''">
680*912701f9SAndroid Build Coastguard Worker    <div><a name="{@anchor}" /></div>
681*912701f9SAndroid Build Coastguard Worker  </xsl:if>
682*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
683*912701f9SAndroid Build Coastguard Worker    <xsl:when test="@title!='' or @anchor!=''">
684*912701f9SAndroid Build Coastguard Worker      <xsl:variable name="n"><xsl:number level="any" count="figure[@title!='' or @anchor!='']" /></xsl:variable>
685*912701f9SAndroid Build Coastguard Worker      <div><a name="{$anchor-prefix}.figure.{$n}" /></div>
686*912701f9SAndroid Build Coastguard Worker    </xsl:when>
687*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>
688*912701f9SAndroid Build Coastguard Worker      <xsl:variable name="n"><xsl:number level="any" count="figure[not(@title!='' or @anchor!='')]" /></xsl:variable>
689*912701f9SAndroid Build Coastguard Worker      <div><a name="{$anchor-prefix}.figure.u.{$n}" /></div>
690*912701f9SAndroid Build Coastguard Worker    </xsl:otherwise>
691*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
692*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates />
693*912701f9SAndroid Build Coastguard Worker  <xsl:if test="@title!='' or @anchor!=''">
694*912701f9SAndroid Build Coastguard Worker    <xsl:variable name="n"><xsl:number level="any" count="figure[@title!='' or @anchor!='']" /></xsl:variable>
695*912701f9SAndroid Build Coastguard Worker    <p class="figure">Figure <xsl:value-of select="$n"/><xsl:if test="@title!=''">: <xsl:value-of select="@title" /></xsl:if></p>
696*912701f9SAndroid Build Coastguard Worker  </xsl:if>
697*912701f9SAndroid Build Coastguard Worker</xsl:template>
698*912701f9SAndroid Build Coastguard Worker
699*912701f9SAndroid Build Coastguard Worker<xsl:template match="front">
700*912701f9SAndroid Build Coastguard Worker
701*912701f9SAndroid Build Coastguard Worker  <xsl:if test="$xml2rfc-topblock!='no'">
702*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertTocLink">
703*912701f9SAndroid Build Coastguard Worker      <xsl:with-param name="includeTitle" select="true()" />
704*912701f9SAndroid Build Coastguard Worker    </xsl:call-template>
705*912701f9SAndroid Build Coastguard Worker
706*912701f9SAndroid Build Coastguard Worker    <!-- collect information for left column -->
707*912701f9SAndroid Build Coastguard Worker
708*912701f9SAndroid Build Coastguard Worker    <xsl:variable name="leftColumn">
709*912701f9SAndroid Build Coastguard Worker      <xsl:call-template name="collectLeftHeaderColumn" />
710*912701f9SAndroid Build Coastguard Worker    </xsl:variable>
711*912701f9SAndroid Build Coastguard Worker
712*912701f9SAndroid Build Coastguard Worker    <!-- collect information for right column -->
713*912701f9SAndroid Build Coastguard Worker
714*912701f9SAndroid Build Coastguard Worker    <xsl:variable name="rightColumn">
715*912701f9SAndroid Build Coastguard Worker      <xsl:call-template name="collectRightHeaderColumn" />
716*912701f9SAndroid Build Coastguard Worker    </xsl:variable>
717*912701f9SAndroid Build Coastguard Worker
718*912701f9SAndroid Build Coastguard Worker    <!-- insert the collected information -->
719*912701f9SAndroid Build Coastguard Worker    <table summary="header information" class="header" border="0" cellpadding="1" cellspacing="1">
720*912701f9SAndroid Build Coastguard Worker      <xsl:choose>
721*912701f9SAndroid Build Coastguard Worker        <xsl:when test="function-available('msxsl:node-set')">
722*912701f9SAndroid Build Coastguard Worker          <xsl:call-template name="emitheader">
723*912701f9SAndroid Build Coastguard Worker            <xsl:with-param name="lc" select="msxsl:node-set($leftColumn)" />
724*912701f9SAndroid Build Coastguard Worker            <xsl:with-param name="rc" select="msxsl:node-set($rightColumn)" />
725*912701f9SAndroid Build Coastguard Worker          </xsl:call-template>
726*912701f9SAndroid Build Coastguard Worker        </xsl:when>
727*912701f9SAndroid Build Coastguard Worker        <xsl:when test="function-available('exslt:node-set')">
728*912701f9SAndroid Build Coastguard Worker          <xsl:call-template name="emitheader">
729*912701f9SAndroid Build Coastguard Worker            <xsl:with-param name="lc" select="exslt:node-set($leftColumn)" />
730*912701f9SAndroid Build Coastguard Worker            <xsl:with-param name="rc" select="exslt:node-set($rightColumn)" />
731*912701f9SAndroid Build Coastguard Worker          </xsl:call-template>
732*912701f9SAndroid Build Coastguard Worker        </xsl:when>
733*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise>
734*912701f9SAndroid Build Coastguard Worker          <xsl:message><xsl:value-of select="$node-set-warning"/></xsl:message>
735*912701f9SAndroid Build Coastguard Worker          <p class="error"><xsl:value-of select="$node-set-warning"/></p>
736*912701f9SAndroid Build Coastguard Worker        </xsl:otherwise>
737*912701f9SAndroid Build Coastguard Worker      </xsl:choose>
738*912701f9SAndroid Build Coastguard Worker    </table>
739*912701f9SAndroid Build Coastguard Worker  </xsl:if>
740*912701f9SAndroid Build Coastguard Worker
741*912701f9SAndroid Build Coastguard Worker  <p class="title">
742*912701f9SAndroid Build Coastguard Worker    <!-- main title -->
743*912701f9SAndroid Build Coastguard Worker    <xsl:value-of select="title"/>
744*912701f9SAndroid Build Coastguard Worker    <xsl:if test="/rfc/@docName">
745*912701f9SAndroid Build Coastguard Worker      <br/>
746*912701f9SAndroid Build Coastguard Worker      <span class="filename"><xsl:value-of select="/rfc/@docName"/></span>
747*912701f9SAndroid Build Coastguard Worker    </xsl:if>
748*912701f9SAndroid Build Coastguard Worker  </p>
749*912701f9SAndroid Build Coastguard Worker
750*912701f9SAndroid Build Coastguard Worker  <xsl:if test="not($xml2rfc-private)">
751*912701f9SAndroid Build Coastguard Worker    <!-- Get status info formatted as per RFC2629-->
752*912701f9SAndroid Build Coastguard Worker    <xsl:variable name="preamble"><xsl:call-template name="insertPreamble" /></xsl:variable>
753*912701f9SAndroid Build Coastguard Worker
754*912701f9SAndroid Build Coastguard Worker    <!-- emit it -->
755*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
756*912701f9SAndroid Build Coastguard Worker      <xsl:when test="function-available('msxsl:node-set')">
757*912701f9SAndroid Build Coastguard Worker        <xsl:apply-templates select="msxsl:node-set($preamble)" />
758*912701f9SAndroid Build Coastguard Worker      </xsl:when>
759*912701f9SAndroid Build Coastguard Worker      <xsl:when test="function-available('exslt:node-set')">
760*912701f9SAndroid Build Coastguard Worker        <xsl:apply-templates select="exslt:node-set($preamble)" />
761*912701f9SAndroid Build Coastguard Worker      </xsl:when>
762*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>
763*912701f9SAndroid Build Coastguard Worker        <xsl:message><xsl:value-of select="$node-set-warning"/></xsl:message>
764*912701f9SAndroid Build Coastguard Worker        <p class="error"><xsl:value-of select="$node-set-warning"/></p>
765*912701f9SAndroid Build Coastguard Worker      </xsl:otherwise>
766*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
767*912701f9SAndroid Build Coastguard Worker  </xsl:if>
768*912701f9SAndroid Build Coastguard Worker
769*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="abstract" />
770*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="note" />
771*912701f9SAndroid Build Coastguard Worker  <!-- show notes inside change tracking as well -->
772*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="ed:replace[.//note]" />
773*912701f9SAndroid Build Coastguard Worker
774*912701f9SAndroid Build Coastguard Worker  <xsl:if test="$xml2rfc-toc='yes'">
775*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates select="/" mode="toc" />
776*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertTocAppendix" />
777*912701f9SAndroid Build Coastguard Worker  </xsl:if>
778*912701f9SAndroid Build Coastguard Worker
779*912701f9SAndroid Build Coastguard Worker</xsl:template>
780*912701f9SAndroid Build Coastguard Worker
781*912701f9SAndroid Build Coastguard Worker
782*912701f9SAndroid Build Coastguard Worker<xsl:template match="iref">
783*912701f9SAndroid Build Coastguard Worker  <a><xsl:attribute name="name"><xsl:value-of select="$anchor-prefix"/>.iref.<xsl:number level="any"/></xsl:attribute></a>
784*912701f9SAndroid Build Coastguard Worker</xsl:template>
785*912701f9SAndroid Build Coastguard Worker
786*912701f9SAndroid Build Coastguard Worker<!-- list templates depend on the list style -->
787*912701f9SAndroid Build Coastguard Worker
788*912701f9SAndroid Build Coastguard Worker<xsl:template match="list[@style='empty' or not(@style)]">
789*912701f9SAndroid Build Coastguard Worker  <dl>
790*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertInsDelClass"/>
791*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
792*912701f9SAndroid Build Coastguard Worker  </dl>
793*912701f9SAndroid Build Coastguard Worker</xsl:template>
794*912701f9SAndroid Build Coastguard Worker
795*912701f9SAndroid Build Coastguard Worker<xsl:template match="list[starts-with(@style,'format ')]">
796*912701f9SAndroid Build Coastguard Worker  <dl>
797*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertInsDelClass"/>
798*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
799*912701f9SAndroid Build Coastguard Worker  </dl>
800*912701f9SAndroid Build Coastguard Worker</xsl:template>
801*912701f9SAndroid Build Coastguard Worker
802*912701f9SAndroid Build Coastguard Worker<xsl:template match="list[@style='hanging']">
803*912701f9SAndroid Build Coastguard Worker  <dl>
804*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertInsDelClass"/>
805*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
806*912701f9SAndroid Build Coastguard Worker  </dl>
807*912701f9SAndroid Build Coastguard Worker</xsl:template>
808*912701f9SAndroid Build Coastguard Worker
809*912701f9SAndroid Build Coastguard Worker<xsl:template match="list[@style='numbers']">
810*912701f9SAndroid Build Coastguard Worker  <ol>
811*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertInsDelClass"/>
812*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
813*912701f9SAndroid Build Coastguard Worker  </ol>
814*912701f9SAndroid Build Coastguard Worker</xsl:template>
815*912701f9SAndroid Build Coastguard Worker
816*912701f9SAndroid Build Coastguard Worker<!-- numbered list inside numbered list -->
817*912701f9SAndroid Build Coastguard Worker<xsl:template match="list[@style='numbers']/t/list[@style='numbers']" priority="9">
818*912701f9SAndroid Build Coastguard Worker  <ol style="list-style-type: lower-alpha">
819*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertInsDelClass"/>
820*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
821*912701f9SAndroid Build Coastguard Worker  </ol>
822*912701f9SAndroid Build Coastguard Worker</xsl:template>
823*912701f9SAndroid Build Coastguard Worker
824*912701f9SAndroid Build Coastguard Worker<xsl:template match="list[@style='symbols']">
825*912701f9SAndroid Build Coastguard Worker  <ul>
826*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertInsDelClass"/>
827*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
828*912701f9SAndroid Build Coastguard Worker  </ul>
829*912701f9SAndroid Build Coastguard Worker</xsl:template>
830*912701f9SAndroid Build Coastguard Worker
831*912701f9SAndroid Build Coastguard Worker<!-- same for t(ext) elements -->
832*912701f9SAndroid Build Coastguard Worker
833*912701f9SAndroid Build Coastguard Worker<xsl:template match="list[@style='empty' or not(@style)]/t">
834*912701f9SAndroid Build Coastguard Worker  <dd style="margin-top: .5em">
835*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
836*912701f9SAndroid Build Coastguard Worker  </dd>
837*912701f9SAndroid Build Coastguard Worker</xsl:template>
838*912701f9SAndroid Build Coastguard Worker
839*912701f9SAndroid Build Coastguard Worker<xsl:template match="list[@style='numbers' or @style='symbols']/t">
840*912701f9SAndroid Build Coastguard Worker  <li>
841*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
842*912701f9SAndroid Build Coastguard Worker  </li>
843*912701f9SAndroid Build Coastguard Worker</xsl:template>
844*912701f9SAndroid Build Coastguard Worker
845*912701f9SAndroid Build Coastguard Worker<xsl:template match="list[@style='hanging']/t">
846*912701f9SAndroid Build Coastguard Worker  <dt style="margin-top: .5em">
847*912701f9SAndroid Build Coastguard Worker    <xsl:value-of select="@hangText" />
848*912701f9SAndroid Build Coastguard Worker  </dt>
849*912701f9SAndroid Build Coastguard Worker  <dd>
850*912701f9SAndroid Build Coastguard Worker    <!-- if hangIndent present, use 0.7 of the specified value (1em is the width of the "m" character -->
851*912701f9SAndroid Build Coastguard Worker    <xsl:if test="../@hangIndent and ../@hangIndent!='0'">
852*912701f9SAndroid Build Coastguard Worker      <xsl:attribute name="style">margin-left: <xsl:value-of select="../@hangIndent * 0.7"/>em</xsl:attribute>
853*912701f9SAndroid Build Coastguard Worker    </xsl:if>
854*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
855*912701f9SAndroid Build Coastguard Worker  </dd>
856*912701f9SAndroid Build Coastguard Worker</xsl:template>
857*912701f9SAndroid Build Coastguard Worker
858*912701f9SAndroid Build Coastguard Worker<xsl:template match="list[starts-with(@style,'format ') and (contains(@style,'%c') or contains(@style,'%d'))]/t">
859*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="list" select=".." />
860*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="format" select="substring-after(../@style,'format ')" />
861*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="pos">
862*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
863*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$list/@counter">
864*912701f9SAndroid Build Coastguard Worker        <xsl:number level="any" count="list[@counter=$list/@counter or (not(@counter) and @style=concat('format ',$list/@counter))]/t" />
865*912701f9SAndroid Build Coastguard Worker      </xsl:when>
866*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>
867*912701f9SAndroid Build Coastguard Worker        <xsl:number level="any" count="list[concat('format ',@counter)=$list/@style or (not(@counter) and @style=$list/@style)]/t" />
868*912701f9SAndroid Build Coastguard Worker      </xsl:otherwise>
869*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
870*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
871*912701f9SAndroid Build Coastguard Worker  <dt>
872*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
873*912701f9SAndroid Build Coastguard Worker      <xsl:when test="contains($format,'%c')">
874*912701f9SAndroid Build Coastguard Worker        <xsl:value-of select="substring-before($format,'%c')"/><xsl:number value="$pos" format="a" /><xsl:value-of select="substring-after($format,'%c')"/>
875*912701f9SAndroid Build Coastguard Worker      </xsl:when>
876*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>
877*912701f9SAndroid Build Coastguard Worker        <xsl:value-of select="substring-before($format,'%d')"/><xsl:number value="$pos" format="1" /><xsl:value-of select="substring-after($format,'%d')"/>
878*912701f9SAndroid Build Coastguard Worker      </xsl:otherwise>
879*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
880*912701f9SAndroid Build Coastguard Worker  </dt>
881*912701f9SAndroid Build Coastguard Worker  <dd>
882*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
883*912701f9SAndroid Build Coastguard Worker  </dd>
884*912701f9SAndroid Build Coastguard Worker</xsl:template>
885*912701f9SAndroid Build Coastguard Worker
886*912701f9SAndroid Build Coastguard Worker<xsl:template match="middle">
887*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates />
888*912701f9SAndroid Build Coastguard Worker</xsl:template>
889*912701f9SAndroid Build Coastguard Worker
890*912701f9SAndroid Build Coastguard Worker<xsl:template match="note">
891*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="num"><xsl:number/></xsl:variable>
892*912701f9SAndroid Build Coastguard Worker  <h1><a name="{$anchor-prefix}.note.{$num}"/><xsl:value-of select="@title" /></h1>
893*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
894*912701f9SAndroid Build Coastguard Worker</xsl:template>
895*912701f9SAndroid Build Coastguard Worker
896*912701f9SAndroid Build Coastguard Worker<xsl:template match="postamble">
897*912701f9SAndroid Build Coastguard Worker  <p>
898*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="editingMark" />
899*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
900*912701f9SAndroid Build Coastguard Worker  </p>
901*912701f9SAndroid Build Coastguard Worker</xsl:template>
902*912701f9SAndroid Build Coastguard Worker
903*912701f9SAndroid Build Coastguard Worker<xsl:template match="preamble">
904*912701f9SAndroid Build Coastguard Worker  <p>
905*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="editingMark" />
906*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
907*912701f9SAndroid Build Coastguard Worker  </p>
908*912701f9SAndroid Build Coastguard Worker</xsl:template>
909*912701f9SAndroid Build Coastguard Worker
910*912701f9SAndroid Build Coastguard Worker
911*912701f9SAndroid Build Coastguard Worker<xsl:template match="reference">
912*912701f9SAndroid Build Coastguard Worker
913*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="target">
914*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
915*912701f9SAndroid Build Coastguard Worker      <xsl:when test="@target"><xsl:value-of select="@target" /></xsl:when>
916*912701f9SAndroid Build Coastguard Worker      <xsl:when test="seriesInfo/@name='RFC'"><xsl:value-of select="concat($rfcUrlPrefix,seriesInfo[@name='RFC']/@value,'.txt')" /></xsl:when>
917*912701f9SAndroid Build Coastguard Worker      <xsl:when test="seriesInfo[starts-with(.,'RFC')]">
918*912701f9SAndroid Build Coastguard Worker        <xsl:variable name="rfcRef" select="seriesInfo[starts-with(.,'RFC')]" />
919*912701f9SAndroid Build Coastguard Worker        <xsl:value-of select="concat($rfcUrlPrefix,substring-after (normalize-space($rfcRef), ' '),'.txt')" />
920*912701f9SAndroid Build Coastguard Worker      </xsl:when>
921*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise />
922*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
923*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
924*912701f9SAndroid Build Coastguard Worker
925*912701f9SAndroid Build Coastguard Worker  <tr>
926*912701f9SAndroid Build Coastguard Worker    <td class="topnowrap">
927*912701f9SAndroid Build Coastguard Worker      <b>
928*912701f9SAndroid Build Coastguard Worker        <a name="{@anchor}">
929*912701f9SAndroid Build Coastguard Worker          <xsl:call-template name="referencename">
930*912701f9SAndroid Build Coastguard Worker            <xsl:with-param name="node" select="." />
931*912701f9SAndroid Build Coastguard Worker          </xsl:call-template>
932*912701f9SAndroid Build Coastguard Worker        </a>
933*912701f9SAndroid Build Coastguard Worker      </b>
934*912701f9SAndroid Build Coastguard Worker    </td>
935*912701f9SAndroid Build Coastguard Worker
936*912701f9SAndroid Build Coastguard Worker    <td class="top">
937*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="front/author">
938*912701f9SAndroid Build Coastguard Worker        <xsl:choose>
939*912701f9SAndroid Build Coastguard Worker          <xsl:when test="@surname and @surname!=''">
940*912701f9SAndroid Build Coastguard Worker            <xsl:variable name="displayname">
941*912701f9SAndroid Build Coastguard Worker              <!-- surname/initials is reversed for last author except when it's the only one -->
942*912701f9SAndroid Build Coastguard Worker              <xsl:choose>
943*912701f9SAndroid Build Coastguard Worker                <xsl:when test="position()=last() and position()!=1">
944*912701f9SAndroid Build Coastguard Worker                  <xsl:value-of select="concat(@initials,' ',@surname)" />
945*912701f9SAndroid Build Coastguard Worker                </xsl:when>
946*912701f9SAndroid Build Coastguard Worker                <xsl:otherwise>
947*912701f9SAndroid Build Coastguard Worker                  <xsl:value-of select="concat(@surname,', ',@initials)" />
948*912701f9SAndroid Build Coastguard Worker                </xsl:otherwise>
949*912701f9SAndroid Build Coastguard Worker              </xsl:choose>
950*912701f9SAndroid Build Coastguard Worker              <xsl:if test="@role='editor'">
951*912701f9SAndroid Build Coastguard Worker                <xsl:text>, Ed.</xsl:text>
952*912701f9SAndroid Build Coastguard Worker              </xsl:if>
953*912701f9SAndroid Build Coastguard Worker            </xsl:variable>
954*912701f9SAndroid Build Coastguard Worker            <xsl:choose>
955*912701f9SAndroid Build Coastguard Worker               <xsl:when test="address/email">
956*912701f9SAndroid Build Coastguard Worker                <a>
957*912701f9SAndroid Build Coastguard Worker                  <xsl:if test="$xml2rfc-linkmailto!='no'">
958*912701f9SAndroid Build Coastguard Worker                    <xsl:attribute name="href">mailto:<xsl:value-of select="address/email" /></xsl:attribute>
959*912701f9SAndroid Build Coastguard Worker                  </xsl:if>
960*912701f9SAndroid Build Coastguard Worker                  <xsl:if test="organization/text()">
961*912701f9SAndroid Build Coastguard Worker                    <xsl:attribute name="title"><xsl:value-of select="organization/text()"/></xsl:attribute>
962*912701f9SAndroid Build Coastguard Worker                  </xsl:if>
963*912701f9SAndroid Build Coastguard Worker                  <xsl:value-of select="$displayname" />
964*912701f9SAndroid Build Coastguard Worker                </a>
965*912701f9SAndroid Build Coastguard Worker              </xsl:when>
966*912701f9SAndroid Build Coastguard Worker              <xsl:otherwise>
967*912701f9SAndroid Build Coastguard Worker                <xsl:value-of select="$displayname" />
968*912701f9SAndroid Build Coastguard Worker              </xsl:otherwise>
969*912701f9SAndroid Build Coastguard Worker            </xsl:choose>
970*912701f9SAndroid Build Coastguard Worker
971*912701f9SAndroid Build Coastguard Worker            <xsl:if test="position()!=last() - 1">,&#0160;</xsl:if>
972*912701f9SAndroid Build Coastguard Worker            <xsl:if test="position()=last() - 1"> and </xsl:if>
973*912701f9SAndroid Build Coastguard Worker          </xsl:when>
974*912701f9SAndroid Build Coastguard Worker          <xsl:when test="organization/text()">
975*912701f9SAndroid Build Coastguard Worker            <xsl:choose>
976*912701f9SAndroid Build Coastguard Worker              <xsl:when test="address/uri">
977*912701f9SAndroid Build Coastguard Worker                <a href="{address/uri}"><xsl:value-of select="organization" /></a>
978*912701f9SAndroid Build Coastguard Worker              </xsl:when>
979*912701f9SAndroid Build Coastguard Worker              <xsl:otherwise>
980*912701f9SAndroid Build Coastguard Worker                <xsl:value-of select="organization" />
981*912701f9SAndroid Build Coastguard Worker              </xsl:otherwise>
982*912701f9SAndroid Build Coastguard Worker            </xsl:choose>
983*912701f9SAndroid Build Coastguard Worker            <xsl:if test="position()!=last() - 1">,&#0160;</xsl:if>
984*912701f9SAndroid Build Coastguard Worker            <xsl:if test="position()=last() - 1"> and </xsl:if>
985*912701f9SAndroid Build Coastguard Worker          </xsl:when>
986*912701f9SAndroid Build Coastguard Worker          <xsl:otherwise />
987*912701f9SAndroid Build Coastguard Worker        </xsl:choose>
988*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
989*912701f9SAndroid Build Coastguard Worker
990*912701f9SAndroid Build Coastguard Worker      <xsl:choose>
991*912701f9SAndroid Build Coastguard Worker        <xsl:when test="string-length($target) &gt; 0">
992*912701f9SAndroid Build Coastguard Worker          <xsl:text>"</xsl:text><a href="{$target}"><xsl:value-of select="front/title" /></a><xsl:text>"</xsl:text>
993*912701f9SAndroid Build Coastguard Worker        </xsl:when>
994*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise>
995*912701f9SAndroid Build Coastguard Worker          <xsl:text>"</xsl:text><xsl:value-of select="front/title" /><xsl:text>"</xsl:text>
996*912701f9SAndroid Build Coastguard Worker        </xsl:otherwise>
997*912701f9SAndroid Build Coastguard Worker      </xsl:choose>
998*912701f9SAndroid Build Coastguard Worker
999*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="seriesInfo">
1000*912701f9SAndroid Build Coastguard Worker        <xsl:text>, </xsl:text>
1001*912701f9SAndroid Build Coastguard Worker        <xsl:choose>
1002*912701f9SAndroid Build Coastguard Worker          <xsl:when test="not(@name) and not(@value) and ./text()"><xsl:value-of select="." /></xsl:when>
1003*912701f9SAndroid Build Coastguard Worker          <xsl:otherwise><xsl:value-of select="@name" /><xsl:if test="@value!=''">&#0160;<xsl:value-of select="@value" /></xsl:if></xsl:otherwise>
1004*912701f9SAndroid Build Coastguard Worker        </xsl:choose>
1005*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
1006*912701f9SAndroid Build Coastguard Worker
1007*912701f9SAndroid Build Coastguard Worker      <xsl:if test="front/date/@year != '' and front/date/@year != '???'">
1008*912701f9SAndroid Build Coastguard Worker        <xsl:text>, </xsl:text>
1009*912701f9SAndroid Build Coastguard Worker        <xsl:if test="front/date/@month and front/date/@month!='???'"><xsl:value-of select="front/date/@month" />&#0160;</xsl:if>
1010*912701f9SAndroid Build Coastguard Worker        <xsl:value-of select="front/date/@year" />
1011*912701f9SAndroid Build Coastguard Worker      </xsl:if>
1012*912701f9SAndroid Build Coastguard Worker
1013*912701f9SAndroid Build Coastguard Worker      <xsl:text>.</xsl:text>
1014*912701f9SAndroid Build Coastguard Worker
1015*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="annotation">
1016*912701f9SAndroid Build Coastguard Worker        <br />
1017*912701f9SAndroid Build Coastguard Worker        <xsl:apply-templates />
1018*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
1019*912701f9SAndroid Build Coastguard Worker
1020*912701f9SAndroid Build Coastguard Worker    </td>
1021*912701f9SAndroid Build Coastguard Worker  </tr>
1022*912701f9SAndroid Build Coastguard Worker
1023*912701f9SAndroid Build Coastguard Worker
1024*912701f9SAndroid Build Coastguard Worker</xsl:template>
1025*912701f9SAndroid Build Coastguard Worker
1026*912701f9SAndroid Build Coastguard Worker
1027*912701f9SAndroid Build Coastguard Worker<xsl:template match="references">
1028*912701f9SAndroid Build Coastguard Worker
1029*912701f9SAndroid Build Coastguard Worker  <xsl:call-template name="insertTocLink">
1030*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="rule" select="true()" />
1031*912701f9SAndroid Build Coastguard Worker  </xsl:call-template>
1032*912701f9SAndroid Build Coastguard Worker
1033*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="name">
1034*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
1035*912701f9SAndroid Build Coastguard Worker      <xsl:when test="not(preceding::references)" />
1036*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>
1037*912701f9SAndroid Build Coastguard Worker        <xsl:text>.</xsl:text><xsl:number/>
1038*912701f9SAndroid Build Coastguard Worker      </xsl:otherwise>
1039*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
1040*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
1041*912701f9SAndroid Build Coastguard Worker
1042*912701f9SAndroid Build Coastguard Worker  <h1>
1043*912701f9SAndroid Build Coastguard Worker    <!-- force page break before first reference section -->
1044*912701f9SAndroid Build Coastguard Worker    <xsl:if test="$name=''">
1045*912701f9SAndroid Build Coastguard Worker      <xsl:call-template name="insert-conditional-pagebreak"/>
1046*912701f9SAndroid Build Coastguard Worker    </xsl:if>
1047*912701f9SAndroid Build Coastguard Worker
1048*912701f9SAndroid Build Coastguard Worker    <a name="{$anchor-prefix}.references{$name}">
1049*912701f9SAndroid Build Coastguard Worker      <xsl:choose>
1050*912701f9SAndroid Build Coastguard Worker        <xsl:when test="not(@title) or @title=''">References</xsl:when>
1051*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise><xsl:value-of select="@title"/></xsl:otherwise>
1052*912701f9SAndroid Build Coastguard Worker      </xsl:choose>
1053*912701f9SAndroid Build Coastguard Worker    </a>
1054*912701f9SAndroid Build Coastguard Worker  </h1>
1055*912701f9SAndroid Build Coastguard Worker
1056*912701f9SAndroid Build Coastguard Worker  <table summary="{@title}" border="0" cellpadding="2">
1057*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
1058*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$xml2rfc-sortrefs='yes'">
1059*912701f9SAndroid Build Coastguard Worker        <xsl:apply-templates>
1060*912701f9SAndroid Build Coastguard Worker          <xsl:sort select="@anchor" />
1061*912701f9SAndroid Build Coastguard Worker        </xsl:apply-templates>
1062*912701f9SAndroid Build Coastguard Worker      </xsl:when>
1063*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>
1064*912701f9SAndroid Build Coastguard Worker        <xsl:apply-templates />
1065*912701f9SAndroid Build Coastguard Worker      </xsl:otherwise>
1066*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
1067*912701f9SAndroid Build Coastguard Worker  </table>
1068*912701f9SAndroid Build Coastguard Worker
1069*912701f9SAndroid Build Coastguard Worker</xsl:template>
1070*912701f9SAndroid Build Coastguard Worker
1071*912701f9SAndroid Build Coastguard Worker<xsl:template match="rfc">
1072*912701f9SAndroid Build Coastguard Worker
1073*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="lang">
1074*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="get-lang" />
1075*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
1076*912701f9SAndroid Build Coastguard Worker
1077*912701f9SAndroid Build Coastguard Worker  <html lang="{$lang}">
1078*912701f9SAndroid Build Coastguard Worker    <head>
1079*912701f9SAndroid Build Coastguard Worker      <title><xsl:value-of select="front/title" /></title>
1080*912701f9SAndroid Build Coastguard Worker      <style type="text/css" title="Xml2Rfc (sans serif)">
1081*912701f9SAndroid Build Coastguard Worker        <xsl:call-template name="insertCss" />
1082*912701f9SAndroid Build Coastguard Worker      </style>
1083*912701f9SAndroid Build Coastguard Worker      <!-- <link rel="alternate stylesheet" type="text/css" media="screen" title="Plain (typewriter)" href="rfc2629tty.css" /> -->
1084*912701f9SAndroid Build Coastguard Worker
1085*912701f9SAndroid Build Coastguard Worker      <!-- link elements -->
1086*912701f9SAndroid Build Coastguard Worker      <xsl:if test="$xml2rfc-toc='yes'">
1087*912701f9SAndroid Build Coastguard Worker        <link rel="Contents" href="#{$anchor-prefix}.toc" />
1088*912701f9SAndroid Build Coastguard Worker      </xsl:if>
1089*912701f9SAndroid Build Coastguard Worker      <link rel="Author" href="#{$anchor-prefix}.authors" />
1090*912701f9SAndroid Build Coastguard Worker      <xsl:if test="not($xml2rfc-private)">
1091*912701f9SAndroid Build Coastguard Worker        <link rel="Copyright" href="#{$anchor-prefix}.copyright" />
1092*912701f9SAndroid Build Coastguard Worker      </xsl:if>
1093*912701f9SAndroid Build Coastguard Worker      <xsl:if test="//iref">
1094*912701f9SAndroid Build Coastguard Worker        <link rel="Index" href="#{$anchor-prefix}.index" />
1095*912701f9SAndroid Build Coastguard Worker      </xsl:if>
1096*912701f9SAndroid Build Coastguard Worker      <xsl:apply-templates select="/" mode="links" />
1097*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="/rfc/ed:link">
1098*912701f9SAndroid Build Coastguard Worker        <link><xsl:copy-of select="@*" /></link>
1099*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
1100*912701f9SAndroid Build Coastguard Worker      <xsl:if test="/rfc/@number">
1101*912701f9SAndroid Build Coastguard Worker        <link rel="Alternate" title="Authorative ASCII version" href="http://www.ietf.org/rfc/rfc{/rfc/@number}" />
1102*912701f9SAndroid Build Coastguard Worker      </xsl:if>
1103*912701f9SAndroid Build Coastguard Worker
1104*912701f9SAndroid Build Coastguard Worker      <!-- generator -->
1105*912701f9SAndroid Build Coastguard Worker      <xsl:variable name="gen">
1106*912701f9SAndroid Build Coastguard Worker        <xsl:call-template name="get-generator" />
1107*912701f9SAndroid Build Coastguard Worker      </xsl:variable>
1108*912701f9SAndroid Build Coastguard Worker      <meta name="generator" content="{$gen}" />
1109*912701f9SAndroid Build Coastguard Worker
1110*912701f9SAndroid Build Coastguard Worker      <!-- keywords -->
1111*912701f9SAndroid Build Coastguard Worker      <xsl:if test="front/keyword">
1112*912701f9SAndroid Build Coastguard Worker        <xsl:variable name="keyw">
1113*912701f9SAndroid Build Coastguard Worker          <xsl:call-template name="get-keywords" />
1114*912701f9SAndroid Build Coastguard Worker        </xsl:variable>
1115*912701f9SAndroid Build Coastguard Worker        <meta name="keywords" content="{$keyw}" />
1116*912701f9SAndroid Build Coastguard Worker      </xsl:if>
1117*912701f9SAndroid Build Coastguard Worker
1118*912701f9SAndroid Build Coastguard Worker      <xsl:if test="$xml2rfc-ext-support-rfc2731!='no'">
1119*912701f9SAndroid Build Coastguard Worker        <!-- Dublin Core Metadata -->
1120*912701f9SAndroid Build Coastguard Worker        <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
1121*912701f9SAndroid Build Coastguard Worker
1122*912701f9SAndroid Build Coastguard Worker        <!-- DC creator, see RFC2731 -->
1123*912701f9SAndroid Build Coastguard Worker        <xsl:for-each select="/rfc/front/author">
1124*912701f9SAndroid Build Coastguard Worker          <meta name="DC.Creator" content="{concat(@surname,', ',@initials)}" />
1125*912701f9SAndroid Build Coastguard Worker        </xsl:for-each>
1126*912701f9SAndroid Build Coastguard Worker
1127*912701f9SAndroid Build Coastguard Worker        <xsl:if test="not($xml2rfc-private)">
1128*912701f9SAndroid Build Coastguard Worker          <xsl:choose>
1129*912701f9SAndroid Build Coastguard Worker            <xsl:when test="/rfc/@number">
1130*912701f9SAndroid Build Coastguard Worker              <meta name="DC.Identifier" content="urn:ietf:rfc:{/rfc/@number}" />
1131*912701f9SAndroid Build Coastguard Worker            </xsl:when>
1132*912701f9SAndroid Build Coastguard Worker            <xsl:when test="/rfc/@docName">
1133*912701f9SAndroid Build Coastguard Worker              <meta name="DC.Identifier" content="urn:ietf:id:{/rfc/@docName}" />
1134*912701f9SAndroid Build Coastguard Worker            </xsl:when>
1135*912701f9SAndroid Build Coastguard Worker            <xsl:otherwise/>
1136*912701f9SAndroid Build Coastguard Worker          </xsl:choose>
1137*912701f9SAndroid Build Coastguard Worker          <xsl:variable name="month"><xsl:call-template name="get-month-as-num"/></xsl:variable>
1138*912701f9SAndroid Build Coastguard Worker          <meta name="DC.Date.Issued" scheme="ISO8601" content="{/rfc/front/date/@year}-{$month}" />
1139*912701f9SAndroid Build Coastguard Worker
1140*912701f9SAndroid Build Coastguard Worker          <xsl:if test="/rfc/@obsoletes!=''">
1141*912701f9SAndroid Build Coastguard Worker            <xsl:call-template name="rfclist-for-dcmeta">
1142*912701f9SAndroid Build Coastguard Worker              <xsl:with-param name="list" select="/rfc/@obsoletes"/>
1143*912701f9SAndroid Build Coastguard Worker            </xsl:call-template>
1144*912701f9SAndroid Build Coastguard Worker          </xsl:if>
1145*912701f9SAndroid Build Coastguard Worker        </xsl:if>
1146*912701f9SAndroid Build Coastguard Worker
1147*912701f9SAndroid Build Coastguard Worker        <xsl:if test="/rfc/front/abstract">
1148*912701f9SAndroid Build Coastguard Worker          <meta name="DC.Description.Abstract" content="{normalize-space(/rfc/front/abstract)}" />
1149*912701f9SAndroid Build Coastguard Worker        </xsl:if>
1150*912701f9SAndroid Build Coastguard Worker      </xsl:if>
1151*912701f9SAndroid Build Coastguard Worker    </head>
1152*912701f9SAndroid Build Coastguard Worker    <body>
1153*912701f9SAndroid Build Coastguard Worker      <!-- insert diagnostics -->
1154*912701f9SAndroid Build Coastguard Worker      <xsl:call-template name="insert-diagnostics"/>
1155*912701f9SAndroid Build Coastguard Worker
1156*912701f9SAndroid Build Coastguard Worker      <xsl:apply-templates select="front" />
1157*912701f9SAndroid Build Coastguard Worker      <xsl:apply-templates select="middle" />
1158*912701f9SAndroid Build Coastguard Worker      <xsl:apply-templates select="back" />
1159*912701f9SAndroid Build Coastguard Worker    </body>
1160*912701f9SAndroid Build Coastguard Worker  </html>
1161*912701f9SAndroid Build Coastguard Worker</xsl:template>
1162*912701f9SAndroid Build Coastguard Worker
1163*912701f9SAndroid Build Coastguard Worker
1164*912701f9SAndroid Build Coastguard Worker<xsl:template match="t">
1165*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="paraNumber">
1166*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="sectionnumberPara" />
1167*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
1168*912701f9SAndroid Build Coastguard Worker
1169*912701f9SAndroid Build Coastguard Worker  <xsl:if test="string-length($paraNumber) &gt; 0">
1170*912701f9SAndroid Build Coastguard Worker    <div><a name="{$anchor-prefix}.section.{$paraNumber}" /></div>
1171*912701f9SAndroid Build Coastguard Worker  </xsl:if>
1172*912701f9SAndroid Build Coastguard Worker
1173*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates mode="t-content" select="node()[1]" />
1174*912701f9SAndroid Build Coastguard Worker</xsl:template>
1175*912701f9SAndroid Build Coastguard Worker
1176*912701f9SAndroid Build Coastguard Worker
1177*912701f9SAndroid Build Coastguard Worker
1178*912701f9SAndroid Build Coastguard Worker<!-- for t-content, dispatch to default templates if it's block-level content -->
1179*912701f9SAndroid Build Coastguard Worker<xsl:template mode="t-content" match="list|figure|texttable">
1180*912701f9SAndroid Build Coastguard Worker  <!-- <xsl:comment>t-content block-level</xsl:comment>  -->
1181*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="." />
1182*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="following-sibling::node()[1]" mode="t-content" />
1183*912701f9SAndroid Build Coastguard Worker</xsl:template>
1184*912701f9SAndroid Build Coastguard Worker
1185*912701f9SAndroid Build Coastguard Worker<!-- ... otherwise group into p elements -->
1186*912701f9SAndroid Build Coastguard Worker<xsl:template mode="t-content" match="*|node()">
1187*912701f9SAndroid Build Coastguard Worker  <p>
1188*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertInsDelClass"/>
1189*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="editingMark" />
1190*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates mode="t-content2" select="." />
1191*912701f9SAndroid Build Coastguard Worker  </p>
1192*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates mode="t-content" select="following-sibling::*[self::list or self::figure or self::texttable][1]" />
1193*912701f9SAndroid Build Coastguard Worker</xsl:template>
1194*912701f9SAndroid Build Coastguard Worker
1195*912701f9SAndroid Build Coastguard Worker<xsl:template mode="t-content2" match="*|node()">
1196*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="." />
1197*912701f9SAndroid Build Coastguard Worker  <xsl:if test="not(following-sibling::node()[1] [self::list or self::figure or self::texttable])">
1198*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates select="following-sibling::node()[1]" mode="t-content2" />
1199*912701f9SAndroid Build Coastguard Worker  </xsl:if>
1200*912701f9SAndroid Build Coastguard Worker</xsl:template>
1201*912701f9SAndroid Build Coastguard Worker
1202*912701f9SAndroid Build Coastguard Worker<xsl:template match="section|appendix">
1203*912701f9SAndroid Build Coastguard Worker
1204*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="sectionNumber">
1205*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
1206*912701f9SAndroid Build Coastguard Worker      <xsl:when test="@myns:unnumbered"></xsl:when>
1207*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise><xsl:call-template name="get-section-number" /></xsl:otherwise>
1208*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
1209*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
1210*912701f9SAndroid Build Coastguard Worker
1211*912701f9SAndroid Build Coastguard Worker  <xsl:if test="not(ancestor::section) and not(@myns:notoclink)">
1212*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertTocLink">
1213*912701f9SAndroid Build Coastguard Worker      <xsl:with-param name="rule" select="true()" />
1214*912701f9SAndroid Build Coastguard Worker    </xsl:call-template>
1215*912701f9SAndroid Build Coastguard Worker  </xsl:if>
1216*912701f9SAndroid Build Coastguard Worker
1217*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="elemtype">
1218*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
1219*912701f9SAndroid Build Coastguard Worker      <xsl:when test="count(ancestor::section) = 0">h1</xsl:when>
1220*912701f9SAndroid Build Coastguard Worker      <xsl:when test="count(ancestor::section) = 1">h2</xsl:when>
1221*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>h3</xsl:otherwise>
1222*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
1223*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
1224*912701f9SAndroid Build Coastguard Worker
1225*912701f9SAndroid Build Coastguard Worker  <xsl:element name="{$elemtype}">
1226*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
1227*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$sectionNumber='1'">
1228*912701f9SAndroid Build Coastguard Worker        <!-- pagebreak, this the first section -->
1229*912701f9SAndroid Build Coastguard Worker        <xsl:attribute name="class">np</xsl:attribute>
1230*912701f9SAndroid Build Coastguard Worker      </xsl:when>
1231*912701f9SAndroid Build Coastguard Worker      <xsl:when test="not(ancestor::section) and not(@myns:notoclink)">
1232*912701f9SAndroid Build Coastguard Worker        <xsl:call-template name="insert-conditional-pagebreak"/>
1233*912701f9SAndroid Build Coastguard Worker      </xsl:when>
1234*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise/>
1235*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
1236*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertInsDelClass" />
1237*912701f9SAndroid Build Coastguard Worker
1238*912701f9SAndroid Build Coastguard Worker    <!-- generate anchors for irefs that are immediate childs of this section -->
1239*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates select="iref"/>
1240*912701f9SAndroid Build Coastguard Worker    <xsl:if test="$sectionNumber!=''">
1241*912701f9SAndroid Build Coastguard Worker      <a name="{$anchor-prefix}.section.{$sectionNumber}"><xsl:value-of select="$sectionNumber" /></a>&#0160;
1242*912701f9SAndroid Build Coastguard Worker    </xsl:if>
1243*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
1244*912701f9SAndroid Build Coastguard Worker      <xsl:when test="@anchor">
1245*912701f9SAndroid Build Coastguard Worker        <a name="{@anchor}"><xsl:value-of select="@title" /></a>
1246*912701f9SAndroid Build Coastguard Worker      </xsl:when>
1247*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>
1248*912701f9SAndroid Build Coastguard Worker        <xsl:value-of select="@title" />
1249*912701f9SAndroid Build Coastguard Worker      </xsl:otherwise>
1250*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
1251*912701f9SAndroid Build Coastguard Worker  </xsl:element>
1252*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="*[not(self::iref)]" />
1253*912701f9SAndroid Build Coastguard Worker</xsl:template>
1254*912701f9SAndroid Build Coastguard Worker
1255*912701f9SAndroid Build Coastguard Worker<xsl:template match="spanx[@style='emph' or not(@style)]">
1256*912701f9SAndroid Build Coastguard Worker  <em><xsl:apply-templates /></em>
1257*912701f9SAndroid Build Coastguard Worker</xsl:template>
1258*912701f9SAndroid Build Coastguard Worker
1259*912701f9SAndroid Build Coastguard Worker<xsl:template match="spanx[@style='verb']">
1260*912701f9SAndroid Build Coastguard Worker  <samp><xsl:apply-templates /></samp>
1261*912701f9SAndroid Build Coastguard Worker</xsl:template>
1262*912701f9SAndroid Build Coastguard Worker
1263*912701f9SAndroid Build Coastguard Worker<xsl:template match="spanx[@style='strong']">
1264*912701f9SAndroid Build Coastguard Worker  <strong><xsl:apply-templates /></strong>
1265*912701f9SAndroid Build Coastguard Worker</xsl:template>
1266*912701f9SAndroid Build Coastguard Worker
1267*912701f9SAndroid Build Coastguard Worker
1268*912701f9SAndroid Build Coastguard Worker<xsl:template match="vspace[not(@blankLines) or @blankLines=0]">
1269*912701f9SAndroid Build Coastguard Worker  <br />
1270*912701f9SAndroid Build Coastguard Worker</xsl:template>
1271*912701f9SAndroid Build Coastguard Worker
1272*912701f9SAndroid Build Coastguard Worker<xsl:template match="vspace[@blankLines &gt; 0]">
1273*912701f9SAndroid Build Coastguard Worker  <br/><xsl:for-each select="//*[position() &lt;= @blankLines]"> <br /></xsl:for-each>
1274*912701f9SAndroid Build Coastguard Worker</xsl:template>
1275*912701f9SAndroid Build Coastguard Worker
1276*912701f9SAndroid Build Coastguard Worker<!-- keep the root for the case when we process XSLT-inline markup -->
1277*912701f9SAndroid Build Coastguard Worker<xsl:variable name="src" select="/" />
1278*912701f9SAndroid Build Coastguard Worker
1279*912701f9SAndroid Build Coastguard Worker<xsl:template match="xref[node()]">
1280*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="target" select="@target" />
1281*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="node" select="$src//*[@anchor=$target]" />
1282*912701f9SAndroid Build Coastguard Worker  <a href="#{$target}"><xsl:apply-templates /></a>
1283*912701f9SAndroid Build Coastguard Worker  <xsl:for-each select="$src/rfc/back/references/reference[@anchor=$target]">
1284*912701f9SAndroid Build Coastguard Worker    <xsl:text> </xsl:text><xsl:call-template name="referencename">
1285*912701f9SAndroid Build Coastguard Worker       <xsl:with-param name="node" select="." />
1286*912701f9SAndroid Build Coastguard Worker    </xsl:call-template>
1287*912701f9SAndroid Build Coastguard Worker  </xsl:for-each>
1288*912701f9SAndroid Build Coastguard Worker</xsl:template>
1289*912701f9SAndroid Build Coastguard Worker
1290*912701f9SAndroid Build Coastguard Worker<xsl:template match="xref[not(node())]">
1291*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="context" select="." />
1292*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="target" select="@target" />
1293*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="node" select="$src//*[@anchor=$target]" />
1294*912701f9SAndroid Build Coastguard Worker  <xsl:if test="count($node)=0 and not(ancestor::ed:del)">
1295*912701f9SAndroid Build Coastguard Worker    <xsl:message>Undefined target: <xsl:value-of select="@target" /></xsl:message>
1296*912701f9SAndroid Build Coastguard Worker    <span class="error">Undefined target: <xsl:value-of select="@target" /></span>
1297*912701f9SAndroid Build Coastguard Worker  </xsl:if>
1298*912701f9SAndroid Build Coastguard Worker  <a href="#{$target}">
1299*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
1300*912701f9SAndroid Build Coastguard Worker      <xsl:when test="local-name($node)='section'">
1301*912701f9SAndroid Build Coastguard Worker        <xsl:variable name="refname">
1302*912701f9SAndroid Build Coastguard Worker          <xsl:for-each select="$node">
1303*912701f9SAndroid Build Coastguard Worker            <xsl:call-template name="get-section-type">
1304*912701f9SAndroid Build Coastguard Worker              <xsl:with-param name="prec" select="$context/preceding-sibling::node()[1]" />
1305*912701f9SAndroid Build Coastguard Worker            </xsl:call-template>
1306*912701f9SAndroid Build Coastguard Worker          </xsl:for-each>
1307*912701f9SAndroid Build Coastguard Worker        </xsl:variable>
1308*912701f9SAndroid Build Coastguard Worker        <xsl:variable name="refnum">
1309*912701f9SAndroid Build Coastguard Worker          <xsl:for-each select="$node">
1310*912701f9SAndroid Build Coastguard Worker            <xsl:call-template name="get-section-number" />
1311*912701f9SAndroid Build Coastguard Worker          </xsl:for-each>
1312*912701f9SAndroid Build Coastguard Worker        </xsl:variable>
1313*912701f9SAndroid Build Coastguard Worker        <xsl:attribute name="title">
1314*912701f9SAndroid Build Coastguard Worker          <xsl:value-of select="$node/@title" />
1315*912701f9SAndroid Build Coastguard Worker        </xsl:attribute>
1316*912701f9SAndroid Build Coastguard Worker        <xsl:choose>
1317*912701f9SAndroid Build Coastguard Worker          <xsl:when test="@format='counter'">
1318*912701f9SAndroid Build Coastguard Worker            <xsl:value-of select="$refnum"/>
1319*912701f9SAndroid Build Coastguard Worker          </xsl:when>
1320*912701f9SAndroid Build Coastguard Worker          <xsl:when test="@format='title'">
1321*912701f9SAndroid Build Coastguard Worker            <xsl:value-of select="$node/@title"/>
1322*912701f9SAndroid Build Coastguard Worker          </xsl:when>
1323*912701f9SAndroid Build Coastguard Worker          <xsl:otherwise>
1324*912701f9SAndroid Build Coastguard Worker            <xsl:value-of select="normalize-space(concat($refname,'&#160;',$refnum))"/>
1325*912701f9SAndroid Build Coastguard Worker          </xsl:otherwise>
1326*912701f9SAndroid Build Coastguard Worker        </xsl:choose>
1327*912701f9SAndroid Build Coastguard Worker      </xsl:when>
1328*912701f9SAndroid Build Coastguard Worker      <xsl:when test="local-name($node)='figure'">
1329*912701f9SAndroid Build Coastguard Worker        <xsl:variable name="figcnt">
1330*912701f9SAndroid Build Coastguard Worker          <xsl:for-each select="$node">
1331*912701f9SAndroid Build Coastguard Worker            <xsl:number level="any" count="figure[@title!='' or @anchor!='']" />
1332*912701f9SAndroid Build Coastguard Worker          </xsl:for-each>
1333*912701f9SAndroid Build Coastguard Worker        </xsl:variable>
1334*912701f9SAndroid Build Coastguard Worker        <xsl:choose>
1335*912701f9SAndroid Build Coastguard Worker          <xsl:when test="@format='counter'">
1336*912701f9SAndroid Build Coastguard Worker            <xsl:value-of select="$figcnt" />
1337*912701f9SAndroid Build Coastguard Worker          </xsl:when>
1338*912701f9SAndroid Build Coastguard Worker          <xsl:when test="@format='title'">
1339*912701f9SAndroid Build Coastguard Worker            <xsl:value-of select="$node/@title" />
1340*912701f9SAndroid Build Coastguard Worker          </xsl:when>
1341*912701f9SAndroid Build Coastguard Worker          <xsl:otherwise>
1342*912701f9SAndroid Build Coastguard Worker            <xsl:value-of select="normalize-space(concat('Figure&#160;',$figcnt))"/>
1343*912701f9SAndroid Build Coastguard Worker          </xsl:otherwise>
1344*912701f9SAndroid Build Coastguard Worker        </xsl:choose>
1345*912701f9SAndroid Build Coastguard Worker      </xsl:when>
1346*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>
1347*912701f9SAndroid Build Coastguard Worker        <xsl:attribute name="title"><xsl:value-of select="normalize-space($node/front/title)" /></xsl:attribute>
1348*912701f9SAndroid Build Coastguard Worker        <xsl:call-template name="referencename"><xsl:with-param name="node" select="$src/rfc/back/references/reference[@anchor=$target]" /></xsl:call-template></xsl:otherwise>
1349*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
1350*912701f9SAndroid Build Coastguard Worker  </a>
1351*912701f9SAndroid Build Coastguard Worker</xsl:template>
1352*912701f9SAndroid Build Coastguard Worker
1353*912701f9SAndroid Build Coastguard Worker
1354*912701f9SAndroid Build Coastguard Worker<!-- mark unmatched elements red -->
1355*912701f9SAndroid Build Coastguard Worker
1356*912701f9SAndroid Build Coastguard Worker<xsl:template match="*">
1357*912701f9SAndroid Build Coastguard Worker     <font color="red"><tt>&lt;<xsl:value-of select="name()" />&gt;</tt></font>
1358*912701f9SAndroid Build Coastguard Worker    <xsl:copy><xsl:apply-templates select="node()|@*" /></xsl:copy>
1359*912701f9SAndroid Build Coastguard Worker     <font color="red"><tt>&lt;/<xsl:value-of select="name()" />&gt;</tt></font>
1360*912701f9SAndroid Build Coastguard Worker</xsl:template>
1361*912701f9SAndroid Build Coastguard Worker
1362*912701f9SAndroid Build Coastguard Worker<xsl:template match="/">
1363*912701f9SAndroid Build Coastguard Worker  <xsl:copy><xsl:apply-templates select="node()" /></xsl:copy>
1364*912701f9SAndroid Build Coastguard Worker</xsl:template>
1365*912701f9SAndroid Build Coastguard Worker
1366*912701f9SAndroid Build Coastguard Worker
1367*912701f9SAndroid Build Coastguard Worker
1368*912701f9SAndroid Build Coastguard Worker
1369*912701f9SAndroid Build Coastguard Worker
1370*912701f9SAndroid Build Coastguard Worker
1371*912701f9SAndroid Build Coastguard Worker
1372*912701f9SAndroid Build Coastguard Worker
1373*912701f9SAndroid Build Coastguard Worker<!-- utility templates -->
1374*912701f9SAndroid Build Coastguard Worker
1375*912701f9SAndroid Build Coastguard Worker<xsl:template name="collectLeftHeaderColumn">
1376*912701f9SAndroid Build Coastguard Worker  <xsl:param name="mode" />
1377*912701f9SAndroid Build Coastguard Worker  <!-- default case -->
1378*912701f9SAndroid Build Coastguard Worker  <xsl:if test="not($xml2rfc-private)">
1379*912701f9SAndroid Build Coastguard Worker    <myns:item>Network Working Group</myns:item>
1380*912701f9SAndroid Build Coastguard Worker    <myns:item>
1381*912701f9SAndroid Build Coastguard Worker       <xsl:choose>
1382*912701f9SAndroid Build Coastguard Worker        <xsl:when test="/rfc/@ipr and $mode='nroff'">Internet Draft</xsl:when>
1383*912701f9SAndroid Build Coastguard Worker        <xsl:when test="/rfc/@ipr">INTERNET DRAFT</xsl:when>
1384*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise>Request for Comments: <xsl:value-of select="/rfc/@number"/></xsl:otherwise>
1385*912701f9SAndroid Build Coastguard Worker      </xsl:choose>
1386*912701f9SAndroid Build Coastguard Worker    </myns:item>
1387*912701f9SAndroid Build Coastguard Worker    <xsl:if test="/rfc/@docName and $mode!='nroff'">
1388*912701f9SAndroid Build Coastguard Worker      <myns:item>
1389*912701f9SAndroid Build Coastguard Worker        &lt;<xsl:value-of select="/rfc/@docName" />&gt;
1390*912701f9SAndroid Build Coastguard Worker      </myns:item>
1391*912701f9SAndroid Build Coastguard Worker    </xsl:if>
1392*912701f9SAndroid Build Coastguard Worker    <xsl:if test="/rfc/@obsoletes and /rfc/@obsoletes!=''">
1393*912701f9SAndroid Build Coastguard Worker      <myns:item>
1394*912701f9SAndroid Build Coastguard Worker        Obsoletes: <xsl:call-template name="rfclist">
1395*912701f9SAndroid Build Coastguard Worker          <xsl:with-param name="list" select="normalize-space(/rfc/@obsoletes)" />
1396*912701f9SAndroid Build Coastguard Worker        </xsl:call-template>
1397*912701f9SAndroid Build Coastguard Worker        <xsl:if test="not(/rfc/@number)"> (if approved)</xsl:if>
1398*912701f9SAndroid Build Coastguard Worker      </myns:item>
1399*912701f9SAndroid Build Coastguard Worker    </xsl:if>
1400*912701f9SAndroid Build Coastguard Worker    <xsl:if test="/rfc/@seriesNo">
1401*912701f9SAndroid Build Coastguard Worker       <myns:item>
1402*912701f9SAndroid Build Coastguard Worker        <xsl:choose>
1403*912701f9SAndroid Build Coastguard Worker          <xsl:when test="/rfc/@category='bcp'">BCP: <xsl:value-of select="/rfc/@seriesNo" /></xsl:when>
1404*912701f9SAndroid Build Coastguard Worker          <xsl:when test="/rfc/@category='info'">FYI: <xsl:value-of select="/rfc/@seriesNo" /></xsl:when>
1405*912701f9SAndroid Build Coastguard Worker          <xsl:when test="/rfc/@category='std'">STD: <xsl:value-of select="/rfc/@seriesNo" /></xsl:when>
1406*912701f9SAndroid Build Coastguard Worker          <xsl:otherwise><xsl:value-of select="concat(/rfc/@category,': ',/rfc/@seriesNo)" /></xsl:otherwise>
1407*912701f9SAndroid Build Coastguard Worker        </xsl:choose>
1408*912701f9SAndroid Build Coastguard Worker      </myns:item>
1409*912701f9SAndroid Build Coastguard Worker    </xsl:if>
1410*912701f9SAndroid Build Coastguard Worker    <xsl:if test="/rfc/@updates and /rfc/@updates!=''">
1411*912701f9SAndroid Build Coastguard Worker      <myns:item>
1412*912701f9SAndroid Build Coastguard Worker          Updates: <xsl:call-template name="rfclist">
1413*912701f9SAndroid Build Coastguard Worker             <xsl:with-param name="list" select="normalize-space(/rfc/@updates)" />
1414*912701f9SAndroid Build Coastguard Worker          </xsl:call-template>
1415*912701f9SAndroid Build Coastguard Worker          <xsl:if test="not(/rfc/@number)"> (if approved)</xsl:if>
1416*912701f9SAndroid Build Coastguard Worker      </myns:item>
1417*912701f9SAndroid Build Coastguard Worker    </xsl:if>
1418*912701f9SAndroid Build Coastguard Worker    <xsl:if test="$mode!='nroff'">
1419*912701f9SAndroid Build Coastguard Worker      <myns:item>
1420*912701f9SAndroid Build Coastguard Worker         Category:
1421*912701f9SAndroid Build Coastguard Worker        <xsl:call-template name="get-category-long" />
1422*912701f9SAndroid Build Coastguard Worker      </myns:item>
1423*912701f9SAndroid Build Coastguard Worker    </xsl:if>
1424*912701f9SAndroid Build Coastguard Worker    <xsl:if test="/rfc/@ipr">
1425*912701f9SAndroid Build Coastguard Worker       <myns:item>Expires: <xsl:call-template name="expirydate" /></myns:item>
1426*912701f9SAndroid Build Coastguard Worker    </xsl:if>
1427*912701f9SAndroid Build Coastguard Worker  </xsl:if>
1428*912701f9SAndroid Build Coastguard Worker
1429*912701f9SAndroid Build Coastguard Worker  <!-- private case -->
1430*912701f9SAndroid Build Coastguard Worker  <xsl:if test="$xml2rfc-private">
1431*912701f9SAndroid Build Coastguard Worker    <myns:item><xsl:value-of select="$xml2rfc-private" /></myns:item>
1432*912701f9SAndroid Build Coastguard Worker  </xsl:if>
1433*912701f9SAndroid Build Coastguard Worker</xsl:template>
1434*912701f9SAndroid Build Coastguard Worker
1435*912701f9SAndroid Build Coastguard Worker<xsl:template name="collectRightHeaderColumn">
1436*912701f9SAndroid Build Coastguard Worker  <xsl:for-each select="author">
1437*912701f9SAndroid Build Coastguard Worker    <xsl:if test="@surname">
1438*912701f9SAndroid Build Coastguard Worker      <myns:item>
1439*912701f9SAndroid Build Coastguard Worker        <xsl:value-of select="concat(@initials,' ',@surname)" />
1440*912701f9SAndroid Build Coastguard Worker        <xsl:if test="@role">
1441*912701f9SAndroid Build Coastguard Worker          <xsl:choose>
1442*912701f9SAndroid Build Coastguard Worker            <xsl:when test="@role='editor'">
1443*912701f9SAndroid Build Coastguard Worker              <xsl:text>, Editor</xsl:text>
1444*912701f9SAndroid Build Coastguard Worker            </xsl:when>
1445*912701f9SAndroid Build Coastguard Worker            <xsl:otherwise>
1446*912701f9SAndroid Build Coastguard Worker              <xsl:text>, </xsl:text><xsl:value-of select="@role" />
1447*912701f9SAndroid Build Coastguard Worker            </xsl:otherwise>
1448*912701f9SAndroid Build Coastguard Worker          </xsl:choose>
1449*912701f9SAndroid Build Coastguard Worker        </xsl:if>
1450*912701f9SAndroid Build Coastguard Worker      </myns:item>
1451*912701f9SAndroid Build Coastguard Worker    </xsl:if>
1452*912701f9SAndroid Build Coastguard Worker    <xsl:variable name="org">
1453*912701f9SAndroid Build Coastguard Worker      <xsl:choose>
1454*912701f9SAndroid Build Coastguard Worker        <xsl:when test="organization/@abbrev"><xsl:value-of select="organization/@abbrev" /></xsl:when>
1455*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise><xsl:value-of select="organization" /></xsl:otherwise>
1456*912701f9SAndroid Build Coastguard Worker      </xsl:choose>
1457*912701f9SAndroid Build Coastguard Worker    </xsl:variable>
1458*912701f9SAndroid Build Coastguard Worker    <xsl:variable name="orgOfFollowing">
1459*912701f9SAndroid Build Coastguard Worker      <xsl:choose>
1460*912701f9SAndroid Build Coastguard Worker        <xsl:when test="following-sibling::*[1]/organization/@abbrev"><xsl:value-of select="following-sibling::*[1]/organization/@abbrev" /></xsl:when>
1461*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise><xsl:value-of select="following-sibling::*/organization" /></xsl:otherwise>
1462*912701f9SAndroid Build Coastguard Worker      </xsl:choose>
1463*912701f9SAndroid Build Coastguard Worker    </xsl:variable>
1464*912701f9SAndroid Build Coastguard Worker    <xsl:if test="$org != $orgOfFollowing">
1465*912701f9SAndroid Build Coastguard Worker      <myns:item><xsl:value-of select="$org" /></myns:item>
1466*912701f9SAndroid Build Coastguard Worker    </xsl:if>
1467*912701f9SAndroid Build Coastguard Worker  </xsl:for-each>
1468*912701f9SAndroid Build Coastguard Worker  <myns:item>
1469*912701f9SAndroid Build Coastguard Worker    <xsl:value-of select="concat(date/@month,' ',date/@year)" />
1470*912701f9SAndroid Build Coastguard Worker  </myns:item>
1471*912701f9SAndroid Build Coastguard Worker</xsl:template>
1472*912701f9SAndroid Build Coastguard Worker
1473*912701f9SAndroid Build Coastguard Worker
1474*912701f9SAndroid Build Coastguard Worker<xsl:template name="emitheader">
1475*912701f9SAndroid Build Coastguard Worker  <xsl:param name="lc" />
1476*912701f9SAndroid Build Coastguard Worker  <xsl:param name="rc" />
1477*912701f9SAndroid Build Coastguard Worker
1478*912701f9SAndroid Build Coastguard Worker  <xsl:for-each select="$lc/myns:item | $rc/myns:item">
1479*912701f9SAndroid Build Coastguard Worker    <xsl:variable name="pos" select="position()" />
1480*912701f9SAndroid Build Coastguard Worker    <xsl:if test="$pos &lt; count($lc/myns:item) + 1 or $pos &lt; count($rc/myns:item) + 1">
1481*912701f9SAndroid Build Coastguard Worker      <tr>
1482*912701f9SAndroid Build Coastguard Worker        <td class="header-l"><xsl:call-template name="copynodes"><xsl:with-param name="nodes" select="$lc/myns:item[$pos]/node()" /></xsl:call-template>&#0160;</td>
1483*912701f9SAndroid Build Coastguard Worker        <td class="header-r"><xsl:call-template name="copynodes"><xsl:with-param name="nodes" select="$rc/myns:item[$pos]/node()" /></xsl:call-template>&#0160;</td>
1484*912701f9SAndroid Build Coastguard Worker      </tr>
1485*912701f9SAndroid Build Coastguard Worker    </xsl:if>
1486*912701f9SAndroid Build Coastguard Worker  </xsl:for-each>
1487*912701f9SAndroid Build Coastguard Worker</xsl:template>
1488*912701f9SAndroid Build Coastguard Worker
1489*912701f9SAndroid Build Coastguard Worker<!-- convenience template that avoids copying namespace nodes we don't want -->
1490*912701f9SAndroid Build Coastguard Worker<xsl:template name="copynodes">
1491*912701f9SAndroid Build Coastguard Worker  <xsl:param name="nodes" />
1492*912701f9SAndroid Build Coastguard Worker  <xsl:for-each select="$nodes">
1493*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
1494*912701f9SAndroid Build Coastguard Worker      <xsl:when test="namespace-uri()='http://www.w3.org/1999/xhtml'"><xsl:element name="{name()}" namespace="{namespace-uri()}"><xsl:copy-of select="@*|node()" /></xsl:element></xsl:when>
1495*912701f9SAndroid Build Coastguard Worker      <xsl:when test="self::*"><xsl:element name="{name()}"><xsl:copy-of select="@*|node()" /></xsl:element></xsl:when>
1496*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise><xsl:copy-of select="." /></xsl:otherwise>
1497*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
1498*912701f9SAndroid Build Coastguard Worker  </xsl:for-each>
1499*912701f9SAndroid Build Coastguard Worker</xsl:template>
1500*912701f9SAndroid Build Coastguard Worker
1501*912701f9SAndroid Build Coastguard Worker
1502*912701f9SAndroid Build Coastguard Worker<xsl:template name="expirydate">
1503*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="date" select="/rfc/front/date" />
1504*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
1505*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='January'">July <xsl:value-of select="$date/@year" /></xsl:when>
1506*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='February'">August <xsl:value-of select="$date/@year" /></xsl:when>
1507*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='March'">September <xsl:value-of select="$date/@year" /></xsl:when>
1508*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='April'">October <xsl:value-of select="$date/@year" /></xsl:when>
1509*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='May'">November <xsl:value-of select="$date/@year" /></xsl:when>
1510*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='June'">December <xsl:value-of select="$date/@year" /></xsl:when>
1511*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='July'">January <xsl:value-of select="$date/@year + 1" /></xsl:when>
1512*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='August'">February <xsl:value-of select="$date/@year + 1" /></xsl:when>
1513*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='September'">March <xsl:value-of select="$date/@year + 1" /></xsl:when>
1514*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='October'">April <xsl:value-of select="$date/@year + 1" /></xsl:when>
1515*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='November'">May <xsl:value-of select="$date/@year + 1" /></xsl:when>
1516*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='December'">June <xsl:value-of select="$date/@year + 1" /></xsl:when>
1517*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise>WRONG SYNTAX FOR MONTH</xsl:otherwise>
1518*912701f9SAndroid Build Coastguard Worker     </xsl:choose>
1519*912701f9SAndroid Build Coastguard Worker</xsl:template>
1520*912701f9SAndroid Build Coastguard Worker
1521*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-month-as-num">
1522*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="date" select="/rfc/front/date" />
1523*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
1524*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='January'">01</xsl:when>
1525*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='February'">02</xsl:when>
1526*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='March'">03</xsl:when>
1527*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='April'">04</xsl:when>
1528*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='May'">05</xsl:when>
1529*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='June'">06</xsl:when>
1530*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='July'">07</xsl:when>
1531*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='August'">08</xsl:when>
1532*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='September'">09</xsl:when>
1533*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='October'">10</xsl:when>
1534*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='November'">11</xsl:when>
1535*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$date/@month='December'">12</xsl:when>
1536*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise>WRONG SYNTAX FOR MONTH</xsl:otherwise>
1537*912701f9SAndroid Build Coastguard Worker     </xsl:choose>
1538*912701f9SAndroid Build Coastguard Worker</xsl:template>
1539*912701f9SAndroid Build Coastguard Worker
1540*912701f9SAndroid Build Coastguard Worker<!-- produce back section with author information -->
1541*912701f9SAndroid Build Coastguard Worker<xsl:template name="insertAuthors">
1542*912701f9SAndroid Build Coastguard Worker
1543*912701f9SAndroid Build Coastguard Worker  <!-- insert link to TOC including horizontal rule -->
1544*912701f9SAndroid Build Coastguard Worker  <xsl:call-template name="insertTocLink">
1545*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="rule" select="true()" />
1546*912701f9SAndroid Build Coastguard Worker  </xsl:call-template>
1547*912701f9SAndroid Build Coastguard Worker
1548*912701f9SAndroid Build Coastguard Worker  <h1>
1549*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insert-conditional-pagebreak"/>
1550*912701f9SAndroid Build Coastguard Worker    <a name="{$anchor-prefix}.authors" />Author's Address<xsl:if test="count(/rfc/front/author) &gt; 1">es</xsl:if>
1551*912701f9SAndroid Build Coastguard Worker  </h1>
1552*912701f9SAndroid Build Coastguard Worker
1553*912701f9SAndroid Build Coastguard Worker  <table summary="Authors" width="99%" border="0" cellpadding="0" cellspacing="0">
1554*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates select="/rfc/front/author" />
1555*912701f9SAndroid Build Coastguard Worker  </table>
1556*912701f9SAndroid Build Coastguard Worker</xsl:template>
1557*912701f9SAndroid Build Coastguard Worker
1558*912701f9SAndroid Build Coastguard Worker
1559*912701f9SAndroid Build Coastguard Worker
1560*912701f9SAndroid Build Coastguard Worker<!-- insert copyright statement -->
1561*912701f9SAndroid Build Coastguard Worker
1562*912701f9SAndroid Build Coastguard Worker<xsl:template name="insertCopyright" xmlns="">
1563*912701f9SAndroid Build Coastguard Worker
1564*912701f9SAndroid Build Coastguard Worker  <section title="Intellectual Property Statement" anchor="{$anchor-prefix}.ipr" myns:unnumbered="unnumbered" myns:is-rfc2629="true">
1565*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
1566*912701f9SAndroid Build Coastguard Worker      <xsl:when test="$ipr-rfc3667">
1567*912701f9SAndroid Build Coastguard Worker        <t myns:is-rfc2629="true">
1568*912701f9SAndroid Build Coastguard Worker          The IETF takes no position regarding the validity or scope of any
1569*912701f9SAndroid Build Coastguard Worker          Intellectual Property Rights or other rights that might be claimed to
1570*912701f9SAndroid Build Coastguard Worker          pertain to the implementation or use of the technology described in
1571*912701f9SAndroid Build Coastguard Worker          this document or the extent to which any license under such rights
1572*912701f9SAndroid Build Coastguard Worker          might or might not be available; nor does it represent that it has
1573*912701f9SAndroid Build Coastguard Worker          made any independent effort to identify any such rights. Information
1574*912701f9SAndroid Build Coastguard Worker          on the IETF's procedures with respect to rights in IETF Documents
1575*912701f9SAndroid Build Coastguard Worker          can be found in BCP 78 and BCP 79.
1576*912701f9SAndroid Build Coastguard Worker        </t>
1577*912701f9SAndroid Build Coastguard Worker        <t myns:is-rfc2629="true">
1578*912701f9SAndroid Build Coastguard Worker          Copies of IPR disclosures made to the IETF Secretariat and any
1579*912701f9SAndroid Build Coastguard Worker          assurances of licenses to be made available, or the result of an
1580*912701f9SAndroid Build Coastguard Worker          attempt made to obtain a general license or permission for the use
1581*912701f9SAndroid Build Coastguard Worker          of such proprietary rights by implementers or users of this
1582*912701f9SAndroid Build Coastguard Worker          specification can be obtained from the IETF on-line IPR repository
1583*912701f9SAndroid Build Coastguard Worker          at <eref target="http://www.ietf.org/ipr"/>.
1584*912701f9SAndroid Build Coastguard Worker        </t>
1585*912701f9SAndroid Build Coastguard Worker        <t myns:is-rfc2629="true">
1586*912701f9SAndroid Build Coastguard Worker          The IETF invites any interested party to bring to its attention any
1587*912701f9SAndroid Build Coastguard Worker          copyrights, patents or patent applications, or other proprietary
1588*912701f9SAndroid Build Coastguard Worker          rights that may cover technology that may be required to implement
1589*912701f9SAndroid Build Coastguard Worker          this standard. Please address the information to the IETF at
1590*912701f9SAndroid Build Coastguard Worker          <eref target="mailto:[email protected]">[email protected]</eref>.
1591*912701f9SAndroid Build Coastguard Worker        </t>
1592*912701f9SAndroid Build Coastguard Worker      </xsl:when>
1593*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>
1594*912701f9SAndroid Build Coastguard Worker        <t myns:is-rfc2629="true">
1595*912701f9SAndroid Build Coastguard Worker          The IETF takes no position regarding the validity or scope of
1596*912701f9SAndroid Build Coastguard Worker          any intellectual property or other rights that might be claimed
1597*912701f9SAndroid Build Coastguard Worker          to  pertain to the implementation or use of the technology
1598*912701f9SAndroid Build Coastguard Worker          described in this document or the extent to which any license
1599*912701f9SAndroid Build Coastguard Worker          under such rights might or might not be available; neither does
1600*912701f9SAndroid Build Coastguard Worker          it represent that it has made any effort to identify any such
1601*912701f9SAndroid Build Coastguard Worker          rights. Information on the IETF's procedures with respect to
1602*912701f9SAndroid Build Coastguard Worker          rights in standards-track and standards-related documentation
1603*912701f9SAndroid Build Coastguard Worker          can be found in BCP-11. Copies of claims of rights made
1604*912701f9SAndroid Build Coastguard Worker          available for publication and any assurances of licenses to
1605*912701f9SAndroid Build Coastguard Worker          be made available, or the result of an attempt made
1606*912701f9SAndroid Build Coastguard Worker          to obtain a general license or permission for the use of such
1607*912701f9SAndroid Build Coastguard Worker          proprietary rights by implementors or users of this
1608*912701f9SAndroid Build Coastguard Worker          specification can be obtained from the IETF Secretariat.
1609*912701f9SAndroid Build Coastguard Worker        </t>
1610*912701f9SAndroid Build Coastguard Worker        <t myns:is-rfc2629="true">
1611*912701f9SAndroid Build Coastguard Worker          The IETF invites any interested party to bring to its
1612*912701f9SAndroid Build Coastguard Worker          attention any copyrights, patents or patent applications, or
1613*912701f9SAndroid Build Coastguard Worker          other proprietary rights which may cover technology that may be
1614*912701f9SAndroid Build Coastguard Worker          required to practice this standard. Please address the
1615*912701f9SAndroid Build Coastguard Worker          information to the IETF Executive Director.
1616*912701f9SAndroid Build Coastguard Worker        </t>
1617*912701f9SAndroid Build Coastguard Worker        <xsl:if test="$xml2rfc-iprnotified='yes'">
1618*912701f9SAndroid Build Coastguard Worker          <t myns:is-rfc2629="true">
1619*912701f9SAndroid Build Coastguard Worker            The IETF has been notified of intellectual property rights
1620*912701f9SAndroid Build Coastguard Worker            claimed in regard to some or all of the specification contained
1621*912701f9SAndroid Build Coastguard Worker            in this document. For more information consult the online list
1622*912701f9SAndroid Build Coastguard Worker            of claimed rights.
1623*912701f9SAndroid Build Coastguard Worker          </t>
1624*912701f9SAndroid Build Coastguard Worker        </xsl:if>
1625*912701f9SAndroid Build Coastguard Worker      </xsl:otherwise>
1626*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
1627*912701f9SAndroid Build Coastguard Worker  </section>
1628*912701f9SAndroid Build Coastguard Worker
1629*912701f9SAndroid Build Coastguard Worker  <xsl:if test="$ipr-rfc3667">
1630*912701f9SAndroid Build Coastguard Worker    <section title="Disclaimer of Validity" anchor="{$anchor-prefix}.disclaimer" myns:unnumbered="unnumbered" myns:notoclink="notoclink" myns:is-rfc2629="true">
1631*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
1632*912701f9SAndroid Build Coastguard Worker        This document and the information contained herein are provided on an
1633*912701f9SAndroid Build Coastguard Worker        "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
1634*912701f9SAndroid Build Coastguard Worker        OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
1635*912701f9SAndroid Build Coastguard Worker        ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
1636*912701f9SAndroid Build Coastguard Worker        INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
1637*912701f9SAndroid Build Coastguard Worker        INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
1638*912701f9SAndroid Build Coastguard Worker        WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1639*912701f9SAndroid Build Coastguard Worker      </t>
1640*912701f9SAndroid Build Coastguard Worker    </section>
1641*912701f9SAndroid Build Coastguard Worker  </xsl:if>
1642*912701f9SAndroid Build Coastguard Worker
1643*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
1644*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$ipr-rfc3667">
1645*912701f9SAndroid Build Coastguard Worker      <section title="Copyright Statement" anchor="{$anchor-prefix}.copyright" myns:unnumbered="unnumbered" myns:notoclink="notoclink" myns:is-rfc2629="true">
1646*912701f9SAndroid Build Coastguard Worker        <t myns:is-rfc2629="true">
1647*912701f9SAndroid Build Coastguard Worker          Copyright (C) The Internet Society (<xsl:value-of select="/rfc/front/date/@year" />).
1648*912701f9SAndroid Build Coastguard Worker          This document is subject to the rights, licenses and restrictions
1649*912701f9SAndroid Build Coastguard Worker          contained in BCP 78, and except as set forth therein, the authors
1650*912701f9SAndroid Build Coastguard Worker          retain all their rights.
1651*912701f9SAndroid Build Coastguard Worker        </t>
1652*912701f9SAndroid Build Coastguard Worker      </section>
1653*912701f9SAndroid Build Coastguard Worker    </xsl:when>
1654*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>
1655*912701f9SAndroid Build Coastguard Worker      <section title="Full Copyright Statement" anchor="{$anchor-prefix}.copyright" myns:unnumbered="unnumbered" myns:notoclink="notoclink" myns:is-rfc2629="true">
1656*912701f9SAndroid Build Coastguard Worker        <t myns:is-rfc2629="true">
1657*912701f9SAndroid Build Coastguard Worker          Copyright (C) The Internet Society (<xsl:value-of select="/rfc/front/date/@year" />). All Rights Reserved.
1658*912701f9SAndroid Build Coastguard Worker        </t>
1659*912701f9SAndroid Build Coastguard Worker        <t myns:is-rfc2629="true">
1660*912701f9SAndroid Build Coastguard Worker          This document and translations of it may be copied and furnished to
1661*912701f9SAndroid Build Coastguard Worker          others, and derivative works that comment on or otherwise explain it
1662*912701f9SAndroid Build Coastguard Worker          or assist in its implementation may be prepared, copied, published and
1663*912701f9SAndroid Build Coastguard Worker          distributed, in whole or in part, without restriction of any kind,
1664*912701f9SAndroid Build Coastguard Worker          provided that the above copyright notice and this paragraph are
1665*912701f9SAndroid Build Coastguard Worker          included on all such copies and derivative works. However, this
1666*912701f9SAndroid Build Coastguard Worker          document itself may not be modified in any way, such as by removing
1667*912701f9SAndroid Build Coastguard Worker          the copyright notice or references to the Internet Society or other
1668*912701f9SAndroid Build Coastguard Worker          Internet organizations, except as needed for the purpose of
1669*912701f9SAndroid Build Coastguard Worker          developing Internet standards in which case the procedures for
1670*912701f9SAndroid Build Coastguard Worker          copyrights defined in the Internet Standards process must be
1671*912701f9SAndroid Build Coastguard Worker          followed, or as required to translate it into languages other than
1672*912701f9SAndroid Build Coastguard Worker          English.
1673*912701f9SAndroid Build Coastguard Worker        </t>
1674*912701f9SAndroid Build Coastguard Worker        <t myns:is-rfc2629="true">
1675*912701f9SAndroid Build Coastguard Worker          The limited permissions granted above are perpetual and will not be
1676*912701f9SAndroid Build Coastguard Worker          revoked by the Internet Society or its successors or assignees.
1677*912701f9SAndroid Build Coastguard Worker        </t>
1678*912701f9SAndroid Build Coastguard Worker        <t myns:is-rfc2629="true">
1679*912701f9SAndroid Build Coastguard Worker          This document and the information contained herein is provided on an
1680*912701f9SAndroid Build Coastguard Worker          &quot;AS IS&quot; basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
1681*912701f9SAndroid Build Coastguard Worker          TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
1682*912701f9SAndroid Build Coastguard Worker          BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
1683*912701f9SAndroid Build Coastguard Worker          HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
1684*912701f9SAndroid Build Coastguard Worker          MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1685*912701f9SAndroid Build Coastguard Worker        </t>
1686*912701f9SAndroid Build Coastguard Worker      </section>
1687*912701f9SAndroid Build Coastguard Worker    </xsl:otherwise>
1688*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
1689*912701f9SAndroid Build Coastguard Worker
1690*912701f9SAndroid Build Coastguard Worker  <section title="Acknowledgement" myns:unnumbered="unnumbered" myns:notoclink="notoclink" myns:is-rfc2629="true">
1691*912701f9SAndroid Build Coastguard Worker    <t myns:is-rfc2629="true">
1692*912701f9SAndroid Build Coastguard Worker      Funding for the RFC Editor function is currently provided by the
1693*912701f9SAndroid Build Coastguard Worker      Internet Society.
1694*912701f9SAndroid Build Coastguard Worker    </t>
1695*912701f9SAndroid Build Coastguard Worker  </section>
1696*912701f9SAndroid Build Coastguard Worker
1697*912701f9SAndroid Build Coastguard Worker</xsl:template>
1698*912701f9SAndroid Build Coastguard Worker
1699*912701f9SAndroid Build Coastguard Worker
1700*912701f9SAndroid Build Coastguard Worker<!-- insert CSS style info -->
1701*912701f9SAndroid Build Coastguard Worker
1702*912701f9SAndroid Build Coastguard Worker<xsl:template name="insertCss">
1703*912701f9SAndroid Build Coastguard Workera {
1704*912701f9SAndroid Build Coastguard Worker  text-decoration: none
1705*912701f9SAndroid Build Coastguard Worker}
1706*912701f9SAndroid Build Coastguard Workera:hover {
1707*912701f9SAndroid Build Coastguard Worker  text-decoration: underline
1708*912701f9SAndroid Build Coastguard Worker}
1709*912701f9SAndroid Build Coastguard Workera:active {
1710*912701f9SAndroid Build Coastguard Worker  text-decoration: underline
1711*912701f9SAndroid Build Coastguard Worker}
1712*912701f9SAndroid Build Coastguard Workerbody {
1713*912701f9SAndroid Build Coastguard Worker  <xsl:if test="$xml2rfc-background!=''">
1714*912701f9SAndroid Build Coastguard Worker  background: url(<xsl:value-of select="$xml2rfc-background" />) #ffffff left top;
1715*912701f9SAndroid Build Coastguard Worker  </xsl:if>
1716*912701f9SAndroid Build Coastguard Worker  color: #000000;
1717*912701f9SAndroid Build Coastguard Worker  font-family: helvetica, arial, sans-serif;
1718*912701f9SAndroid Build Coastguard Worker  font-size: 13px;
1719*912701f9SAndroid Build Coastguard Worker}
1720*912701f9SAndroid Build Coastguard Workerdl {
1721*912701f9SAndroid Build Coastguard Worker  margin-left: 2em;
1722*912701f9SAndroid Build Coastguard Worker}
1723*912701f9SAndroid Build Coastguard Workerh1 {
1724*912701f9SAndroid Build Coastguard Worker  color: #333333;
1725*912701f9SAndroid Build Coastguard Worker  font-size: 16px;
1726*912701f9SAndroid Build Coastguard Worker  line-height: 16px;
1727*912701f9SAndroid Build Coastguard Worker  font-family: helvetica, arial, sans-serif;
1728*912701f9SAndroid Build Coastguard Worker  page-break-after: avoid;
1729*912701f9SAndroid Build Coastguard Worker}
1730*912701f9SAndroid Build Coastguard Workerh1.np {
1731*912701f9SAndroid Build Coastguard Worker  page-break-before: always;
1732*912701f9SAndroid Build Coastguard Worker}
1733*912701f9SAndroid Build Coastguard Workerh2 {
1734*912701f9SAndroid Build Coastguard Worker  color: #000000;
1735*912701f9SAndroid Build Coastguard Worker  font-size: 14px;
1736*912701f9SAndroid Build Coastguard Worker  font-family: helvetica, arial, sans-serif;
1737*912701f9SAndroid Build Coastguard Worker  page-break-after: avoid;
1738*912701f9SAndroid Build Coastguard Worker}
1739*912701f9SAndroid Build Coastguard Workerh3 {
1740*912701f9SAndroid Build Coastguard Worker  color: #000000;
1741*912701f9SAndroid Build Coastguard Worker  font-size: 13px;
1742*912701f9SAndroid Build Coastguard Worker  font-family: helvetica, arial, sans-serif;
1743*912701f9SAndroid Build Coastguard Worker  page-break-after: avoid;
1744*912701f9SAndroid Build Coastguard Worker}
1745*912701f9SAndroid Build Coastguard Workerimg {
1746*912701f9SAndroid Build Coastguard Worker  margin-left: 3em;
1747*912701f9SAndroid Build Coastguard Worker}
1748*912701f9SAndroid Build Coastguard Workerli {
1749*912701f9SAndroid Build Coastguard Worker  margin-left: 2em;
1750*912701f9SAndroid Build Coastguard Worker  margin-right: 2em;
1751*912701f9SAndroid Build Coastguard Worker}
1752*912701f9SAndroid Build Coastguard Workerol {
1753*912701f9SAndroid Build Coastguard Worker  margin-left: 2em;
1754*912701f9SAndroid Build Coastguard Worker  margin-right: 2em;
1755*912701f9SAndroid Build Coastguard Worker}
1756*912701f9SAndroid Build Coastguard Workerp {
1757*912701f9SAndroid Build Coastguard Worker  margin-left: 2em;
1758*912701f9SAndroid Build Coastguard Worker  margin-right: 2em;
1759*912701f9SAndroid Build Coastguard Worker}
1760*912701f9SAndroid Build Coastguard Workerpre {
1761*912701f9SAndroid Build Coastguard Worker  margin-left: 3em;
1762*912701f9SAndroid Build Coastguard Worker  background-color: lightyellow;
1763*912701f9SAndroid Build Coastguard Worker}
1764*912701f9SAndroid Build Coastguard Workertable {
1765*912701f9SAndroid Build Coastguard Worker  margin-left: 2em;
1766*912701f9SAndroid Build Coastguard Worker}
1767*912701f9SAndroid Build Coastguard Workertable.header {
1768*912701f9SAndroid Build Coastguard Worker  width: 66%;
1769*912701f9SAndroid Build Coastguard Worker}
1770*912701f9SAndroid Build Coastguard Workertd.top {
1771*912701f9SAndroid Build Coastguard Worker  vertical-align: top;
1772*912701f9SAndroid Build Coastguard Worker}
1773*912701f9SAndroid Build Coastguard Workertd.topnowrap {
1774*912701f9SAndroid Build Coastguard Worker  vertical-align: top;
1775*912701f9SAndroid Build Coastguard Worker  white-space: nowrap;
1776*912701f9SAndroid Build Coastguard Worker}
1777*912701f9SAndroid Build Coastguard Workertd.right {
1778*912701f9SAndroid Build Coastguard Worker  text-align: right;
1779*912701f9SAndroid Build Coastguard Worker}
1780*912701f9SAndroid Build Coastguard Workertd.header-l {
1781*912701f9SAndroid Build Coastguard Worker  width: 33%;
1782*912701f9SAndroid Build Coastguard Worker  color: #ffffff;
1783*912701f9SAndroid Build Coastguard Worker  background-color: #666666;
1784*912701f9SAndroid Build Coastguard Worker  font-size: 10px;
1785*912701f9SAndroid Build Coastguard Worker  font-family: arial, helvetica, sans-serif;
1786*912701f9SAndroid Build Coastguard Worker  vertical-align: top
1787*912701f9SAndroid Build Coastguard Worker}
1788*912701f9SAndroid Build Coastguard Workertd.header-r {
1789*912701f9SAndroid Build Coastguard Worker  width: 33%;
1790*912701f9SAndroid Build Coastguard Worker  color: #ffffff;
1791*912701f9SAndroid Build Coastguard Worker  background-color: #666666;
1792*912701f9SAndroid Build Coastguard Worker  font-size: 10px;
1793*912701f9SAndroid Build Coastguard Worker  font-family: arial, helvetica, sans-serif;
1794*912701f9SAndroid Build Coastguard Worker  vertical-align: top;
1795*912701f9SAndroid Build Coastguard Worker}
1796*912701f9SAndroid Build Coastguard Workerthead {
1797*912701f9SAndroid Build Coastguard Worker  display:table-header-group
1798*912701f9SAndroid Build Coastguard Worker}
1799*912701f9SAndroid Build Coastguard Worker.editingmark {
1800*912701f9SAndroid Build Coastguard Worker  background-color: khaki;
1801*912701f9SAndroid Build Coastguard Worker}
1802*912701f9SAndroid Build Coastguard Worker.error {
1803*912701f9SAndroid Build Coastguard Worker  font-size: 14pt;
1804*912701f9SAndroid Build Coastguard Worker  background-color: red;
1805*912701f9SAndroid Build Coastguard Worker}
1806*912701f9SAndroid Build Coastguard Worker.hotText {
1807*912701f9SAndroid Build Coastguard Worker  color:#ffffff;
1808*912701f9SAndroid Build Coastguard Worker  font-weight: normal;
1809*912701f9SAndroid Build Coastguard Worker  text-decoration: none;
1810*912701f9SAndroid Build Coastguard Worker  font-family: chelvetica, arial, sans-serif;
1811*912701f9SAndroid Build Coastguard Worker  font-size: 9px
1812*912701f9SAndroid Build Coastguard Worker}
1813*912701f9SAndroid Build Coastguard Worker.link2 {
1814*912701f9SAndroid Build Coastguard Worker  color:#ffffff;
1815*912701f9SAndroid Build Coastguard Worker  font-weight: bold;
1816*912701f9SAndroid Build Coastguard Worker  text-decoration: none;
1817*912701f9SAndroid Build Coastguard Worker  font-family: helvetica, arial, sans-serif;
1818*912701f9SAndroid Build Coastguard Worker  font-size: 9px
1819*912701f9SAndroid Build Coastguard Worker}
1820*912701f9SAndroid Build Coastguard Worker.toowide {
1821*912701f9SAndroid Build Coastguard Worker  color: red;
1822*912701f9SAndroid Build Coastguard Worker  font-weight: bold;
1823*912701f9SAndroid Build Coastguard Worker}
1824*912701f9SAndroid Build Coastguard Worker.RFC {
1825*912701f9SAndroid Build Coastguard Worker  color:#666666;
1826*912701f9SAndroid Build Coastguard Worker  font-weight: bold;
1827*912701f9SAndroid Build Coastguard Worker  text-decoration: none;
1828*912701f9SAndroid Build Coastguard Worker  font-family: helvetica, arial, sans-serif;
1829*912701f9SAndroid Build Coastguard Worker  font-size: 9px
1830*912701f9SAndroid Build Coastguard Worker}
1831*912701f9SAndroid Build Coastguard Worker.title {
1832*912701f9SAndroid Build Coastguard Worker  color: #990000;
1833*912701f9SAndroid Build Coastguard Worker  font-size: 22px;
1834*912701f9SAndroid Build Coastguard Worker  line-height: 22px;
1835*912701f9SAndroid Build Coastguard Worker  font-weight: bold;
1836*912701f9SAndroid Build Coastguard Worker  text-align: right;
1837*912701f9SAndroid Build Coastguard Worker  font-family: helvetica, arial, sans-serif
1838*912701f9SAndroid Build Coastguard Worker}
1839*912701f9SAndroid Build Coastguard Worker.figure {
1840*912701f9SAndroid Build Coastguard Worker  font-weight: bold;
1841*912701f9SAndroid Build Coastguard Worker  text-align: center;
1842*912701f9SAndroid Build Coastguard Worker  font-size: 12px;
1843*912701f9SAndroid Build Coastguard Worker}
1844*912701f9SAndroid Build Coastguard Worker.filename {
1845*912701f9SAndroid Build Coastguard Worker  color: #333333;
1846*912701f9SAndroid Build Coastguard Worker  font-weight: bold;
1847*912701f9SAndroid Build Coastguard Worker  font-size: 16px;
1848*912701f9SAndroid Build Coastguard Worker  line-height: 24px;
1849*912701f9SAndroid Build Coastguard Worker  font-family: helvetica, arial, sans-serif;
1850*912701f9SAndroid Build Coastguard Worker  text-align: right;
1851*912701f9SAndroid Build Coastguard Worker}
1852*912701f9SAndroid Build Coastguard Worker.warning {
1853*912701f9SAndroid Build Coastguard Worker  font-size: 14pt;
1854*912701f9SAndroid Build Coastguard Worker  background-color: yellow;
1855*912701f9SAndroid Build Coastguard Worker}
1856*912701f9SAndroid Build Coastguard Workerdel {
1857*912701f9SAndroid Build Coastguard Worker  color: red;
1858*912701f9SAndroid Build Coastguard Worker  text-decoration: line-through;
1859*912701f9SAndroid Build Coastguard Worker}
1860*912701f9SAndroid Build Coastguard Worker.del {
1861*912701f9SAndroid Build Coastguard Worker  color: red;
1862*912701f9SAndroid Build Coastguard Worker  text-decoration: line-through;
1863*912701f9SAndroid Build Coastguard Worker}
1864*912701f9SAndroid Build Coastguard Workerins {
1865*912701f9SAndroid Build Coastguard Worker  color: green;
1866*912701f9SAndroid Build Coastguard Worker  text-decoration: underline;
1867*912701f9SAndroid Build Coastguard Worker}
1868*912701f9SAndroid Build Coastguard Worker.ins {
1869*912701f9SAndroid Build Coastguard Worker  color: green;
1870*912701f9SAndroid Build Coastguard Worker  text-decoration: underline;
1871*912701f9SAndroid Build Coastguard Worker}
1872*912701f9SAndroid Build Coastguard Worker
1873*912701f9SAndroid Build Coastguard Workertable.openissue {
1874*912701f9SAndroid Build Coastguard Worker  background-color: khaki;
1875*912701f9SAndroid Build Coastguard Worker  border-width: thin;
1876*912701f9SAndroid Build Coastguard Worker  border-style: solid;
1877*912701f9SAndroid Build Coastguard Worker  border-color: black;
1878*912701f9SAndroid Build Coastguard Worker}
1879*912701f9SAndroid Build Coastguard Worker
1880*912701f9SAndroid Build Coastguard Workertable.closedissue {
1881*912701f9SAndroid Build Coastguard Worker  background-color: white;
1882*912701f9SAndroid Build Coastguard Worker  border-width: thin;
1883*912701f9SAndroid Build Coastguard Worker  border-style: solid;
1884*912701f9SAndroid Build Coastguard Worker  border-color: gray;
1885*912701f9SAndroid Build Coastguard Worker  color: gray;
1886*912701f9SAndroid Build Coastguard Worker}
1887*912701f9SAndroid Build Coastguard Worker
1888*912701f9SAndroid Build Coastguard Worker.closed-issue {
1889*912701f9SAndroid Build Coastguard Worker  border: solid;
1890*912701f9SAndroid Build Coastguard Worker  border-width: thin;
1891*912701f9SAndroid Build Coastguard Worker  background-color: lime;
1892*912701f9SAndroid Build Coastguard Worker  font-size: small;
1893*912701f9SAndroid Build Coastguard Worker  font-weight: bold;
1894*912701f9SAndroid Build Coastguard Worker}
1895*912701f9SAndroid Build Coastguard Worker
1896*912701f9SAndroid Build Coastguard Worker.open-issue {
1897*912701f9SAndroid Build Coastguard Worker  border: solid;
1898*912701f9SAndroid Build Coastguard Worker  border-width: thin;
1899*912701f9SAndroid Build Coastguard Worker  background-color: red;
1900*912701f9SAndroid Build Coastguard Worker  font-size: small;
1901*912701f9SAndroid Build Coastguard Worker  font-weight: bold;
1902*912701f9SAndroid Build Coastguard Worker}
1903*912701f9SAndroid Build Coastguard Worker
1904*912701f9SAndroid Build Coastguard Worker.editor-issue {
1905*912701f9SAndroid Build Coastguard Worker  border: solid;
1906*912701f9SAndroid Build Coastguard Worker  border-width: thin;
1907*912701f9SAndroid Build Coastguard Worker  background-color: yellow;
1908*912701f9SAndroid Build Coastguard Worker  font-size: small;
1909*912701f9SAndroid Build Coastguard Worker  font-weight: bold;
1910*912701f9SAndroid Build Coastguard Worker}
1911*912701f9SAndroid Build Coastguard Worker
1912*912701f9SAndroid Build Coastguard Worker@media print {
1913*912701f9SAndroid Build Coastguard Worker  .noprint {
1914*912701f9SAndroid Build Coastguard Worker    display: none;
1915*912701f9SAndroid Build Coastguard Worker  }
1916*912701f9SAndroid Build Coastguard Worker}
1917*912701f9SAndroid Build Coastguard Worker</xsl:template>
1918*912701f9SAndroid Build Coastguard Worker
1919*912701f9SAndroid Build Coastguard Worker
1920*912701f9SAndroid Build Coastguard Worker<!-- generate the index section -->
1921*912701f9SAndroid Build Coastguard Worker
1922*912701f9SAndroid Build Coastguard Worker<xsl:template name="insertSingleIref">
1923*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="backlink">#<xsl:value-of select="$anchor-prefix"/>.iref.<xsl:number level="any" /></xsl:variable>
1924*912701f9SAndroid Build Coastguard Worker  &#0160;<a href="{$backlink}"><xsl:choose>
1925*912701f9SAndroid Build Coastguard Worker      <xsl:when test="@primary='true'"><b><xsl:call-template name="get-section-number" /></b></xsl:when>
1926*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise><xsl:call-template name="get-section-number" /></xsl:otherwise>
1927*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
1928*912701f9SAndroid Build Coastguard Worker  </a><xsl:if test="position()!=last()">, </xsl:if>
1929*912701f9SAndroid Build Coastguard Worker</xsl:template>
1930*912701f9SAndroid Build Coastguard Worker
1931*912701f9SAndroid Build Coastguard Worker
1932*912701f9SAndroid Build Coastguard Worker<xsl:template name="insertIndex">
1933*912701f9SAndroid Build Coastguard Worker
1934*912701f9SAndroid Build Coastguard Worker  <!-- insert link to TOC including horizontal rule -->
1935*912701f9SAndroid Build Coastguard Worker  <xsl:call-template name="insertTocLink">
1936*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="rule" select="true()" />
1937*912701f9SAndroid Build Coastguard Worker  </xsl:call-template>
1938*912701f9SAndroid Build Coastguard Worker
1939*912701f9SAndroid Build Coastguard Worker  <h1>
1940*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insert-conditional-pagebreak"/>
1941*912701f9SAndroid Build Coastguard Worker    <a name="{$anchor-prefix}.index" />Index
1942*912701f9SAndroid Build Coastguard Worker  </h1>
1943*912701f9SAndroid Build Coastguard Worker
1944*912701f9SAndroid Build Coastguard Worker  <table summary="Index">
1945*912701f9SAndroid Build Coastguard Worker
1946*912701f9SAndroid Build Coastguard Worker    <xsl:for-each select="//iref[generate-id(.) = generate-id(key('index-first-letter',translate(substring(@item,1,1),$lcase,$ucase)))]">
1947*912701f9SAndroid Build Coastguard Worker      <xsl:sort select="translate(@item,$lcase,$ucase)" />
1948*912701f9SAndroid Build Coastguard Worker
1949*912701f9SAndroid Build Coastguard Worker      <tr>
1950*912701f9SAndroid Build Coastguard Worker        <td>
1951*912701f9SAndroid Build Coastguard Worker          <b><xsl:value-of select="translate(substring(@item,1,1),$lcase,$ucase)" /></b>
1952*912701f9SAndroid Build Coastguard Worker        </td>
1953*912701f9SAndroid Build Coastguard Worker      </tr>
1954*912701f9SAndroid Build Coastguard Worker
1955*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="key('index-first-letter',translate(substring(@item,1,1),$lcase,$ucase))">
1956*912701f9SAndroid Build Coastguard Worker
1957*912701f9SAndroid Build Coastguard Worker        <xsl:sort select="translate(@item,$lcase,$ucase)" />
1958*912701f9SAndroid Build Coastguard Worker
1959*912701f9SAndroid Build Coastguard Worker        <xsl:if test="generate-id(.) = generate-id(key('index-item',@item))">
1960*912701f9SAndroid Build Coastguard Worker
1961*912701f9SAndroid Build Coastguard Worker          <tr>
1962*912701f9SAndroid Build Coastguard Worker            <td>
1963*912701f9SAndroid Build Coastguard Worker              &#0160;&#0160;<xsl:value-of select="@item" />&#0160;
1964*912701f9SAndroid Build Coastguard Worker
1965*912701f9SAndroid Build Coastguard Worker              <xsl:for-each select="key('index-item',@item)[not(@subitem) or @subitem='']">
1966*912701f9SAndroid Build Coastguard Worker                <xsl:sort select="translate(@item,$lcase,$ucase)" />
1967*912701f9SAndroid Build Coastguard Worker                <xsl:call-template name="insertSingleIref" />
1968*912701f9SAndroid Build Coastguard Worker              </xsl:for-each>
1969*912701f9SAndroid Build Coastguard Worker            </td>
1970*912701f9SAndroid Build Coastguard Worker          </tr>
1971*912701f9SAndroid Build Coastguard Worker
1972*912701f9SAndroid Build Coastguard Worker          <xsl:for-each select="key('index-item',@item)[@subitem and @subitem!='']">
1973*912701f9SAndroid Build Coastguard Worker            <xsl:sort select="translate(@subitem,$lcase,$ucase)" />
1974*912701f9SAndroid Build Coastguard Worker
1975*912701f9SAndroid Build Coastguard Worker             <xsl:if test="generate-id(.) = generate-id(key('index-item-subitem',concat(@item,'..',@subitem)))">
1976*912701f9SAndroid Build Coastguard Worker            <tr>
1977*912701f9SAndroid Build Coastguard Worker              <td>
1978*912701f9SAndroid Build Coastguard Worker                &#0160;&#0160;&#0160;&#0160;<xsl:value-of select="@subitem" />&#0160;
1979*912701f9SAndroid Build Coastguard Worker
1980*912701f9SAndroid Build Coastguard Worker                <xsl:for-each select="key('index-item-subitem',concat(@item,'..',@subitem))">
1981*912701f9SAndroid Build Coastguard Worker                  <xsl:sort select="translate(@item,$lcase,$ucase)" />
1982*912701f9SAndroid Build Coastguard Worker                  <xsl:call-template name="insertSingleIref" />
1983*912701f9SAndroid Build Coastguard Worker                </xsl:for-each>
1984*912701f9SAndroid Build Coastguard Worker              </td>
1985*912701f9SAndroid Build Coastguard Worker            </tr>
1986*912701f9SAndroid Build Coastguard Worker            </xsl:if>
1987*912701f9SAndroid Build Coastguard Worker          </xsl:for-each>
1988*912701f9SAndroid Build Coastguard Worker
1989*912701f9SAndroid Build Coastguard Worker        </xsl:if>
1990*912701f9SAndroid Build Coastguard Worker
1991*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
1992*912701f9SAndroid Build Coastguard Worker
1993*912701f9SAndroid Build Coastguard Worker    </xsl:for-each>
1994*912701f9SAndroid Build Coastguard Worker  </table>
1995*912701f9SAndroid Build Coastguard Worker</xsl:template>
1996*912701f9SAndroid Build Coastguard Worker
1997*912701f9SAndroid Build Coastguard Worker
1998*912701f9SAndroid Build Coastguard Worker
1999*912701f9SAndroid Build Coastguard Worker
2000*912701f9SAndroid Build Coastguard Worker<xsl:template name="insertPreamble" xmlns="">
2001*912701f9SAndroid Build Coastguard Worker
2002*912701f9SAndroid Build Coastguard Worker  <section title="Status of this Memo" myns:unnumbered="unnumbered" myns:notoclink="notoclink" anchor="{$anchor-prefix}.status" myns:is-rfc2629="true">
2003*912701f9SAndroid Build Coastguard Worker
2004*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2005*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@ipr">
2006*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
2007*912701f9SAndroid Build Coastguard Worker        <xsl:choose>
2008*912701f9SAndroid Build Coastguard Worker
2009*912701f9SAndroid Build Coastguard Worker          <!-- RFC2026 -->
2010*912701f9SAndroid Build Coastguard Worker          <xsl:when test="/rfc/@ipr = 'full2026'">
2011*912701f9SAndroid Build Coastguard Worker            This document is an Internet-Draft and is
2012*912701f9SAndroid Build Coastguard Worker            in full conformance with all provisions of Section 10 of RFC2026.
2013*912701f9SAndroid Build Coastguard Worker          </xsl:when>
2014*912701f9SAndroid Build Coastguard Worker          <xsl:when test="/rfc/@ipr = 'noDerivativeWorks2026'">
2015*912701f9SAndroid Build Coastguard Worker            This document is an Internet-Draft and is
2016*912701f9SAndroid Build Coastguard Worker            in full conformance with all provisions of Section 10 of RFC2026
2017*912701f9SAndroid Build Coastguard Worker            except that the right to produce derivative works is not granted.
2018*912701f9SAndroid Build Coastguard Worker          </xsl:when>
2019*912701f9SAndroid Build Coastguard Worker          <xsl:when test="/rfc/@ipr = 'noDerivativeWorksNow'">
2020*912701f9SAndroid Build Coastguard Worker            This document is an Internet-Draft and is
2021*912701f9SAndroid Build Coastguard Worker            in full conformance with all provisions of Section 10 of RFC2026
2022*912701f9SAndroid Build Coastguard Worker            except that the right to produce derivative works is not granted.
2023*912701f9SAndroid Build Coastguard Worker            (If this document becomes part of an IETF working group activity,
2024*912701f9SAndroid Build Coastguard Worker            then it will be brought into full compliance with Section 10 of RFC2026.)
2025*912701f9SAndroid Build Coastguard Worker          </xsl:when>
2026*912701f9SAndroid Build Coastguard Worker          <xsl:when test="/rfc/@ipr = 'none'">
2027*912701f9SAndroid Build Coastguard Worker            This document is an Internet-Draft and is
2028*912701f9SAndroid Build Coastguard Worker            NOT offered in accordance with Section 10 of RFC2026,
2029*912701f9SAndroid Build Coastguard Worker            and the author does not provide the IETF with any rights other
2030*912701f9SAndroid Build Coastguard Worker            than to publish as an Internet-Draft.
2031*912701f9SAndroid Build Coastguard Worker          </xsl:when>
2032*912701f9SAndroid Build Coastguard Worker
2033*912701f9SAndroid Build Coastguard Worker          <!-- RFC3667 -->
2034*912701f9SAndroid Build Coastguard Worker          <xsl:when test="/rfc/@ipr = 'full3667'">
2035*912701f9SAndroid Build Coastguard Worker            By submitting this Internet-Draft, I certify that any applicable
2036*912701f9SAndroid Build Coastguard Worker            patent or other IPR claims of which I am aware have been disclosed,
2037*912701f9SAndroid Build Coastguard Worker            and any of which I become aware will be disclosed, in accordance
2038*912701f9SAndroid Build Coastguard Worker            with RFC 3668.
2039*912701f9SAndroid Build Coastguard Worker          </xsl:when>
2040*912701f9SAndroid Build Coastguard Worker          <xsl:when test="/rfc/@ipr = 'noModification3667'">
2041*912701f9SAndroid Build Coastguard Worker            By submitting this Internet-Draft, I certify that any applicable
2042*912701f9SAndroid Build Coastguard Worker            patent or other IPR claims of which I am aware have been disclosed,
2043*912701f9SAndroid Build Coastguard Worker            and any of which I become aware will be disclosed, in accordance
2044*912701f9SAndroid Build Coastguard Worker            with RFC 3668. This document may not be modified, and derivative
2045*912701f9SAndroid Build Coastguard Worker            works of it may not be created, except to publish it as an RFC and
2046*912701f9SAndroid Build Coastguard Worker            to translate it into languages other than English<xsl:if test="/rfc/@iprExtract">,
2047*912701f9SAndroid Build Coastguard Worker            other than to extract <xref target="{/rfc/@iprExtract}"/> as-is for separate use.</xsl:if>.
2048*912701f9SAndroid Build Coastguard Worker          </xsl:when>
2049*912701f9SAndroid Build Coastguard Worker          <xsl:when test="/rfc/@ipr = 'noDerivatives3667'">
2050*912701f9SAndroid Build Coastguard Worker            By submitting this Internet-Draft, I certify that any applicable
2051*912701f9SAndroid Build Coastguard Worker            patent or other IPR claims of which I am aware have been disclosed,
2052*912701f9SAndroid Build Coastguard Worker            and any of which I become aware will be disclosed, in accordance
2053*912701f9SAndroid Build Coastguard Worker            with RFC 3668. This document may not be modified, and derivative
2054*912701f9SAndroid Build Coastguard Worker            works of it may not be created<xsl:if test="/rfc/@iprExtract">,
2055*912701f9SAndroid Build Coastguard Worker            other than to extract <xref target="{/rfc/@iprExtract}"/> as-is for separate use.</xsl:if>..
2056*912701f9SAndroid Build Coastguard Worker          </xsl:when>
2057*912701f9SAndroid Build Coastguard Worker
2058*912701f9SAndroid Build Coastguard Worker          <xsl:otherwise>CONFORMANCE UNDEFINED.</xsl:otherwise>
2059*912701f9SAndroid Build Coastguard Worker        </xsl:choose>
2060*912701f9SAndroid Build Coastguard Worker      </t>
2061*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
2062*912701f9SAndroid Build Coastguard Worker        Internet-Drafts are working documents of the Internet Engineering
2063*912701f9SAndroid Build Coastguard Worker        Task Force (IETF), its areas, and its working groups.
2064*912701f9SAndroid Build Coastguard Worker        Note that other groups may also distribute working documents as
2065*912701f9SAndroid Build Coastguard Worker        Internet-Drafts.
2066*912701f9SAndroid Build Coastguard Worker      </t>
2067*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
2068*912701f9SAndroid Build Coastguard Worker        Internet-Drafts are draft documents valid for a maximum of six months
2069*912701f9SAndroid Build Coastguard Worker        and may be updated, replaced, or obsoleted by other documents at any time.
2070*912701f9SAndroid Build Coastguard Worker        It is inappropriate to use Internet-Drafts as reference material or to cite
2071*912701f9SAndroid Build Coastguard Worker        them other than as "work in progress".
2072*912701f9SAndroid Build Coastguard Worker      </t>
2073*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
2074*912701f9SAndroid Build Coastguard Worker        The list of current Internet-Drafts can be accessed at
2075*912701f9SAndroid Build Coastguard Worker        <eref target='http://www.ietf.org/ietf/1id-abstracts.txt' myns:is-rfc2629="true" />.
2076*912701f9SAndroid Build Coastguard Worker      </t>
2077*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
2078*912701f9SAndroid Build Coastguard Worker        The list of Internet-Draft Shadow Directories can be accessed at
2079*912701f9SAndroid Build Coastguard Worker        <eref target='http://www.ietf.org/shadow.html' myns:is-rfc2629="true"/>.
2080*912701f9SAndroid Build Coastguard Worker      </t>
2081*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
2082*912701f9SAndroid Build Coastguard Worker        This Internet-Draft will expire in <xsl:call-template name="expirydate" />.
2083*912701f9SAndroid Build Coastguard Worker      </t>
2084*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2085*912701f9SAndroid Build Coastguard Worker
2086*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@category='bcp'">
2087*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
2088*912701f9SAndroid Build Coastguard Worker        This document specifies an Internet Best Current Practices for the Internet
2089*912701f9SAndroid Build Coastguard Worker        Community, and requests discussion and suggestions for improvements.
2090*912701f9SAndroid Build Coastguard Worker        Distribution of this memo is unlimited.
2091*912701f9SAndroid Build Coastguard Worker      </t>
2092*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2093*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@category='exp'">
2094*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
2095*912701f9SAndroid Build Coastguard Worker        This memo defines an Experimental Protocol for the Internet community.
2096*912701f9SAndroid Build Coastguard Worker        It does not specify an Internet standard of any kind.
2097*912701f9SAndroid Build Coastguard Worker        Discussion and suggestions for improvement are requested.
2098*912701f9SAndroid Build Coastguard Worker        Distribution of this memo is unlimited.
2099*912701f9SAndroid Build Coastguard Worker      </t>
2100*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2101*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@category='historic'">
2102*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
2103*912701f9SAndroid Build Coastguard Worker        This memo describes a historic protocol for the Internet community.
2104*912701f9SAndroid Build Coastguard Worker        It does not specify an Internet standard of any kind.
2105*912701f9SAndroid Build Coastguard Worker        Distribution of this memo is unlimited.
2106*912701f9SAndroid Build Coastguard Worker      </t>
2107*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2108*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@category='info' or not(/rfc/@category)">
2109*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
2110*912701f9SAndroid Build Coastguard Worker        This memo provides information for the Internet community.
2111*912701f9SAndroid Build Coastguard Worker        It does not specify an Internet standard of any kind.
2112*912701f9SAndroid Build Coastguard Worker        Distribution of this memo is unlimited.
2113*912701f9SAndroid Build Coastguard Worker      </t>
2114*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2115*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@category='std'">
2116*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">
2117*912701f9SAndroid Build Coastguard Worker        This document specifies an Internet standards track protocol for the Internet
2118*912701f9SAndroid Build Coastguard Worker        community, and requests discussion and suggestions for improvements.
2119*912701f9SAndroid Build Coastguard Worker        Please refer to the current edition of the &quot;Internet Official Protocol
2120*912701f9SAndroid Build Coastguard Worker        Standards&quot; (STD 1) for the standardization state and status of this
2121*912701f9SAndroid Build Coastguard Worker        protocol. Distribution of this memo is unlimited.
2122*912701f9SAndroid Build Coastguard Worker      </t>
2123*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2124*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>
2125*912701f9SAndroid Build Coastguard Worker      <t myns:is-rfc2629="true">UNSUPPORTED CATEGORY.</t>
2126*912701f9SAndroid Build Coastguard Worker    </xsl:otherwise>
2127*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2128*912701f9SAndroid Build Coastguard Worker
2129*912701f9SAndroid Build Coastguard Worker  </section>
2130*912701f9SAndroid Build Coastguard Worker
2131*912701f9SAndroid Build Coastguard Worker  <section title="Copyright Notice" myns:unnumbered="unnumbered" myns:notoclink="notoclink" anchor="{$anchor-prefix}.copyrightnotice" myns:is-rfc2629="true">
2132*912701f9SAndroid Build Coastguard Worker  <t myns:is-rfc2629="true">
2133*912701f9SAndroid Build Coastguard Worker    Copyright (C) The Internet Society (<xsl:value-of select="/rfc/front/date/@year" />). All Rights Reserved.
2134*912701f9SAndroid Build Coastguard Worker  </t>
2135*912701f9SAndroid Build Coastguard Worker  </section>
2136*912701f9SAndroid Build Coastguard Worker
2137*912701f9SAndroid Build Coastguard Worker</xsl:template>
2138*912701f9SAndroid Build Coastguard Worker
2139*912701f9SAndroid Build Coastguard Worker<!-- TOC generation -->
2140*912701f9SAndroid Build Coastguard Worker
2141*912701f9SAndroid Build Coastguard Worker<xsl:template match="/" mode="toc">
2142*912701f9SAndroid Build Coastguard Worker  <xsl:call-template name="insertTocLink">
2143*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="includeTitle" select="true()" />
2144*912701f9SAndroid Build Coastguard Worker      <xsl:with-param name="rule" select="true()" />
2145*912701f9SAndroid Build Coastguard Worker  </xsl:call-template>
2146*912701f9SAndroid Build Coastguard Worker
2147*912701f9SAndroid Build Coastguard Worker  <h1 class="np"> <!-- this pagebreak occurs always -->
2148*912701f9SAndroid Build Coastguard Worker    <a name="{$anchor-prefix}.toc">Table of Contents</a>
2149*912701f9SAndroid Build Coastguard Worker  </h1>
2150*912701f9SAndroid Build Coastguard Worker
2151*912701f9SAndroid Build Coastguard Worker  <p>
2152*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates mode="toc" />
2153*912701f9SAndroid Build Coastguard Worker  </p>
2154*912701f9SAndroid Build Coastguard Worker</xsl:template>
2155*912701f9SAndroid Build Coastguard Worker
2156*912701f9SAndroid Build Coastguard Worker<xsl:template name="insertTocLine">
2157*912701f9SAndroid Build Coastguard Worker  <xsl:param name="number" />
2158*912701f9SAndroid Build Coastguard Worker  <xsl:param name="target" />
2159*912701f9SAndroid Build Coastguard Worker  <xsl:param name="title" />
2160*912701f9SAndroid Build Coastguard Worker
2161*912701f9SAndroid Build Coastguard Worker  <!-- handle tocdepth parameter -->
2162*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2163*912701f9SAndroid Build Coastguard Worker    <xsl:when test="string-length(translate($number,'.ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890&#167;','.')) &gt;= $parsedTocDepth">
2164*912701f9SAndroid Build Coastguard Worker      <!-- dropped entry -->
2165*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2166*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>
2167*912701f9SAndroid Build Coastguard Worker      <xsl:choose>
2168*912701f9SAndroid Build Coastguard Worker        <xsl:when test="starts-with($number,'del-')">
2169*912701f9SAndroid Build Coastguard Worker          <xsl:value-of select="'&#160;&#160;&#160;&#160;&#160;&#160;'"/>
2170*912701f9SAndroid Build Coastguard Worker          <del>
2171*912701f9SAndroid Build Coastguard Worker            <xsl:value-of select="$number" />&#0160;
2172*912701f9SAndroid Build Coastguard Worker            <a href="#{$target}"><xsl:value-of select="$title"/></a>
2173*912701f9SAndroid Build Coastguard Worker          </del>
2174*912701f9SAndroid Build Coastguard Worker        </xsl:when>
2175*912701f9SAndroid Build Coastguard Worker        <xsl:when test="$number=''">
2176*912701f9SAndroid Build Coastguard Worker          <b>
2177*912701f9SAndroid Build Coastguard Worker            &#0160;&#0160;
2178*912701f9SAndroid Build Coastguard Worker            <a href="#{$target}"><xsl:value-of select="$title"/></a>
2179*912701f9SAndroid Build Coastguard Worker          </b>
2180*912701f9SAndroid Build Coastguard Worker        </xsl:when>
2181*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise>
2182*912701f9SAndroid Build Coastguard Worker          <b>
2183*912701f9SAndroid Build Coastguard Worker            <xsl:value-of select="translate($number,'.ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890&#167;','&#160;')"/>
2184*912701f9SAndroid Build Coastguard Worker            <xsl:value-of select="$number" />&#0160;
2185*912701f9SAndroid Build Coastguard Worker            <a href="#{$target}"><xsl:value-of select="$title"/></a>
2186*912701f9SAndroid Build Coastguard Worker          </b>
2187*912701f9SAndroid Build Coastguard Worker        </xsl:otherwise>
2188*912701f9SAndroid Build Coastguard Worker      </xsl:choose>
2189*912701f9SAndroid Build Coastguard Worker      <br />
2190*912701f9SAndroid Build Coastguard Worker    </xsl:otherwise>
2191*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2192*912701f9SAndroid Build Coastguard Worker</xsl:template>
2193*912701f9SAndroid Build Coastguard Worker
2194*912701f9SAndroid Build Coastguard Worker
2195*912701f9SAndroid Build Coastguard Worker<xsl:template match="back" mode="toc">
2196*912701f9SAndroid Build Coastguard Worker
2197*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="references" mode="toc" />
2198*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="/rfc/front" mode="toc" />
2199*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="*[not(self::references)]" mode="toc" />
2200*912701f9SAndroid Build Coastguard Worker
2201*912701f9SAndroid Build Coastguard Worker  <!-- copyright statements -->
2202*912701f9SAndroid Build Coastguard Worker  <xsl:if test="not($xml2rfc-private)">
2203*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertTocLine">
2204*912701f9SAndroid Build Coastguard Worker      <xsl:with-param name="number" select="'&#167;'"/>
2205*912701f9SAndroid Build Coastguard Worker      <xsl:with-param name="target" select="concat($anchor-prefix,'.ipr')"/>
2206*912701f9SAndroid Build Coastguard Worker      <xsl:with-param name="title" select="'Intellectual Property and Copyright Statements'"/>
2207*912701f9SAndroid Build Coastguard Worker    </xsl:call-template>
2208*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2209*912701f9SAndroid Build Coastguard Worker
2210*912701f9SAndroid Build Coastguard Worker  <!-- insert the index if index entries exist -->
2211*912701f9SAndroid Build Coastguard Worker  <xsl:if test="//iref">
2212*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertTocLine">
2213*912701f9SAndroid Build Coastguard Worker      <xsl:with-param name="number" select="'&#167;'"/>
2214*912701f9SAndroid Build Coastguard Worker      <xsl:with-param name="target" select="concat($anchor-prefix,'.index')"/>
2215*912701f9SAndroid Build Coastguard Worker      <xsl:with-param name="title" select="'Index'"/>
2216*912701f9SAndroid Build Coastguard Worker    </xsl:call-template>
2217*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2218*912701f9SAndroid Build Coastguard Worker
2219*912701f9SAndroid Build Coastguard Worker</xsl:template>
2220*912701f9SAndroid Build Coastguard Worker
2221*912701f9SAndroid Build Coastguard Worker<xsl:template match="front" mode="toc">
2222*912701f9SAndroid Build Coastguard Worker
2223*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="title">
2224*912701f9SAndroid Build Coastguard Worker    <xsl:if test="count(author)=1">Author's Address</xsl:if>
2225*912701f9SAndroid Build Coastguard Worker    <xsl:if test="count(author)!=1">Author's Addresses</xsl:if>
2226*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
2227*912701f9SAndroid Build Coastguard Worker
2228*912701f9SAndroid Build Coastguard Worker  <xsl:call-template name="insertTocLine">
2229*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="number" select="'&#167;'"/>
2230*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="target" select="concat($anchor-prefix,'.authors')"/>
2231*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="title" select="$title"/>
2232*912701f9SAndroid Build Coastguard Worker  </xsl:call-template>
2233*912701f9SAndroid Build Coastguard Worker
2234*912701f9SAndroid Build Coastguard Worker</xsl:template>
2235*912701f9SAndroid Build Coastguard Worker
2236*912701f9SAndroid Build Coastguard Worker<xsl:template match="references" mode="toc">
2237*912701f9SAndroid Build Coastguard Worker
2238*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="num">
2239*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
2240*912701f9SAndroid Build Coastguard Worker      <xsl:when test="not(preceding::references)" />
2241*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>
2242*912701f9SAndroid Build Coastguard Worker        <xsl:text>.</xsl:text><xsl:number/>
2243*912701f9SAndroid Build Coastguard Worker      </xsl:otherwise>
2244*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
2245*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
2246*912701f9SAndroid Build Coastguard Worker
2247*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="title">
2248*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
2249*912701f9SAndroid Build Coastguard Worker      <xsl:when test="@title!=''"><xsl:value-of select="@title" /></xsl:when>
2250*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>References</xsl:otherwise>
2251*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
2252*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
2253*912701f9SAndroid Build Coastguard Worker
2254*912701f9SAndroid Build Coastguard Worker  <xsl:call-template name="insertTocLine">
2255*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="number" select="'&#167;'"/>
2256*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="target" select="concat($anchor-prefix,'.references',$num)"/>
2257*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="title" select="$title"/>
2258*912701f9SAndroid Build Coastguard Worker  </xsl:call-template>
2259*912701f9SAndroid Build Coastguard Worker
2260*912701f9SAndroid Build Coastguard Worker</xsl:template>
2261*912701f9SAndroid Build Coastguard Worker
2262*912701f9SAndroid Build Coastguard Worker<xsl:template match="section" mode="toc">
2263*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="sectionNumber">
2264*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="get-section-number" />
2265*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
2266*912701f9SAndroid Build Coastguard Worker
2267*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="target">
2268*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
2269*912701f9SAndroid Build Coastguard Worker      <xsl:when test="@anchor"><xsl:value-of select="@anchor" /></xsl:when>
2270*912701f9SAndroid Build Coastguard Worker       <xsl:otherwise><xsl:value-of select="$anchor-prefix"/>.section.<xsl:value-of select="$sectionNumber" /></xsl:otherwise>
2271*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
2272*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
2273*912701f9SAndroid Build Coastguard Worker
2274*912701f9SAndroid Build Coastguard Worker  <xsl:call-template name="insertTocLine">
2275*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="number" select="$sectionNumber"/>
2276*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="target" select="$target"/>
2277*912701f9SAndroid Build Coastguard Worker    <xsl:with-param name="title" select="@title"/>
2278*912701f9SAndroid Build Coastguard Worker  </xsl:call-template>
2279*912701f9SAndroid Build Coastguard Worker
2280*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates mode="toc" />
2281*912701f9SAndroid Build Coastguard Worker</xsl:template>
2282*912701f9SAndroid Build Coastguard Worker
2283*912701f9SAndroid Build Coastguard Worker<xsl:template match="middle" mode="toc">
2284*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates mode="toc" />
2285*912701f9SAndroid Build Coastguard Worker</xsl:template>
2286*912701f9SAndroid Build Coastguard Worker
2287*912701f9SAndroid Build Coastguard Worker<xsl:template match="rfc" mode="toc">
2288*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="middle|back" mode="toc" />
2289*912701f9SAndroid Build Coastguard Worker</xsl:template>
2290*912701f9SAndroid Build Coastguard Worker
2291*912701f9SAndroid Build Coastguard Worker<xsl:template match="ed:del|ed:ins|ed:replace" mode="toc">
2292*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates mode="toc" />
2293*912701f9SAndroid Build Coastguard Worker</xsl:template>
2294*912701f9SAndroid Build Coastguard Worker
2295*912701f9SAndroid Build Coastguard Worker<xsl:template match="*" mode="toc" />
2296*912701f9SAndroid Build Coastguard Worker
2297*912701f9SAndroid Build Coastguard Worker
2298*912701f9SAndroid Build Coastguard Worker<xsl:template name="insertTocAppendix">
2299*912701f9SAndroid Build Coastguard Worker
2300*912701f9SAndroid Build Coastguard Worker  <xsl:if test="//figure[@title!='' or @anchor!='']">
2301*912701f9SAndroid Build Coastguard Worker    <p>
2302*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="//figure[@title!='' or @anchor!='']">
2303*912701f9SAndroid Build Coastguard Worker        <xsl:variable name="title">Figure <xsl:value-of select="position()"/><xsl:if test="@title">: <xsl:value-of select="@title"/></xsl:if>
2304*912701f9SAndroid Build Coastguard Worker        </xsl:variable>
2305*912701f9SAndroid Build Coastguard Worker        <xsl:call-template name="insertTocLine">
2306*912701f9SAndroid Build Coastguard Worker          <xsl:with-param name="target" select="concat($anchor-prefix,'.figure.',position())" />
2307*912701f9SAndroid Build Coastguard Worker          <xsl:with-param name="title" select="$title" />
2308*912701f9SAndroid Build Coastguard Worker        </xsl:call-template>
2309*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
2310*912701f9SAndroid Build Coastguard Worker    </p>
2311*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2312*912701f9SAndroid Build Coastguard Worker
2313*912701f9SAndroid Build Coastguard Worker  <!-- experimental -->
2314*912701f9SAndroid Build Coastguard Worker  <xsl:if test="//ed:issue">
2315*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="insertIssuesList" />
2316*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2317*912701f9SAndroid Build Coastguard Worker
2318*912701f9SAndroid Build Coastguard Worker</xsl:template>
2319*912701f9SAndroid Build Coastguard Worker
2320*912701f9SAndroid Build Coastguard Worker<xsl:template name="insertTocLink">
2321*912701f9SAndroid Build Coastguard Worker  <xsl:param name="includeTitle" select="false()" />
2322*912701f9SAndroid Build Coastguard Worker  <xsl:param name="rule" />
2323*912701f9SAndroid Build Coastguard Worker  <xsl:if test="$rule"><hr class="noprint"/></xsl:if>
2324*912701f9SAndroid Build Coastguard Worker  <xsl:if test="$includeTitle or $xml2rfc-toc='yes'">
2325*912701f9SAndroid Build Coastguard Worker    <table summary="link to TOC" class="noprint" style="margin-left: auto; margin-right: 0; float: right; width: 2.5em;">
2326*912701f9SAndroid Build Coastguard Worker      <xsl:if test="$includeTitle">
2327*912701f9SAndroid Build Coastguard Worker        <tr>
2328*912701f9SAndroid Build Coastguard Worker          <td style="background-color: #000000; text-align: center; vertical-align: middle; height: 2.5em;">
2329*912701f9SAndroid Build Coastguard Worker            <b><span class="RFC">&#0160;RFC&#0160;</span></b>
2330*912701f9SAndroid Build Coastguard Worker            <xsl:if test="/rfc/@number">
2331*912701f9SAndroid Build Coastguard Worker              <br />
2332*912701f9SAndroid Build Coastguard Worker              <span class="hotText"><xsl:value-of select="/rfc/@number"/></span>
2333*912701f9SAndroid Build Coastguard Worker            </xsl:if>
2334*912701f9SAndroid Build Coastguard Worker          </td>
2335*912701f9SAndroid Build Coastguard Worker        </tr>
2336*912701f9SAndroid Build Coastguard Worker      </xsl:if>
2337*912701f9SAndroid Build Coastguard Worker      <xsl:if test="$xml2rfc-toc='yes'">
2338*912701f9SAndroid Build Coastguard Worker        <tr>
2339*912701f9SAndroid Build Coastguard Worker          <td style="background-color: #990000; text-align: center; height: 1.5em;">
2340*912701f9SAndroid Build Coastguard Worker            <a href="#{$anchor-prefix}.toc"><b class="link2">&#0160;TOC&#0160;</b></a>
2341*912701f9SAndroid Build Coastguard Worker          </td>
2342*912701f9SAndroid Build Coastguard Worker        </tr>
2343*912701f9SAndroid Build Coastguard Worker      </xsl:if>
2344*912701f9SAndroid Build Coastguard Worker    </table>
2345*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2346*912701f9SAndroid Build Coastguard Worker</xsl:template>
2347*912701f9SAndroid Build Coastguard Worker
2348*912701f9SAndroid Build Coastguard Worker
2349*912701f9SAndroid Build Coastguard Worker<xsl:template name="referencename">
2350*912701f9SAndroid Build Coastguard Worker  <xsl:param name="node" />
2351*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2352*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$xml2rfc-symrefs='yes'">[<xsl:value-of select="$node/@anchor" />]</xsl:when>
2353*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise><xsl:for-each select="$node">[<xsl:number level="any" />]</xsl:for-each></xsl:otherwise>
2354*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2355*912701f9SAndroid Build Coastguard Worker</xsl:template>
2356*912701f9SAndroid Build Coastguard Worker
2357*912701f9SAndroid Build Coastguard Worker
2358*912701f9SAndroid Build Coastguard Worker
2359*912701f9SAndroid Build Coastguard Worker<xsl:template name="replace-substring">
2360*912701f9SAndroid Build Coastguard Worker
2361*912701f9SAndroid Build Coastguard Worker  <xsl:param name="string" />
2362*912701f9SAndroid Build Coastguard Worker  <xsl:param name="replace" />
2363*912701f9SAndroid Build Coastguard Worker  <xsl:param name="by" />
2364*912701f9SAndroid Build Coastguard Worker
2365*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2366*912701f9SAndroid Build Coastguard Worker    <xsl:when test="contains($string,$replace)">
2367*912701f9SAndroid Build Coastguard Worker      <xsl:value-of select="concat(substring-before($string, $replace),$by)" />
2368*912701f9SAndroid Build Coastguard Worker      <xsl:call-template name="replace-substring">
2369*912701f9SAndroid Build Coastguard Worker        <xsl:with-param name="string" select="substring-after($string,$replace)" />
2370*912701f9SAndroid Build Coastguard Worker        <xsl:with-param name="replace" select="$replace" />
2371*912701f9SAndroid Build Coastguard Worker        <xsl:with-param name="by" select="$by" />
2372*912701f9SAndroid Build Coastguard Worker      </xsl:call-template>
2373*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2374*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise><xsl:value-of select="$string" /></xsl:otherwise>
2375*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2376*912701f9SAndroid Build Coastguard Worker
2377*912701f9SAndroid Build Coastguard Worker</xsl:template>
2378*912701f9SAndroid Build Coastguard Worker
2379*912701f9SAndroid Build Coastguard Worker<xsl:template name="showArtworkLine">
2380*912701f9SAndroid Build Coastguard Worker  <xsl:param name="line" />
2381*912701f9SAndroid Build Coastguard Worker  <xsl:param name="mode" />
2382*912701f9SAndroid Build Coastguard Worker
2383*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="maxw" select="69" />
2384*912701f9SAndroid Build Coastguard Worker
2385*912701f9SAndroid Build Coastguard Worker  <xsl:if test="string-length($line) &gt; $maxw">
2386*912701f9SAndroid Build Coastguard Worker    <xsl:message>Artwork exceeds maximum width: <xsl:value-of select="$line" /></xsl:message>
2387*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2388*912701f9SAndroid Build Coastguard Worker
2389*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2390*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$mode='html'">
2391*912701f9SAndroid Build Coastguard Worker      <xsl:value-of select="substring($line,0,$maxw)" />
2392*912701f9SAndroid Build Coastguard Worker      <xsl:if test="string-length($line) &gt;= $maxw">
2393*912701f9SAndroid Build Coastguard Worker        <span class="toowide"><xsl:value-of select="substring($line,$maxw)" /></span>
2394*912701f9SAndroid Build Coastguard Worker      </xsl:if>
2395*912701f9SAndroid Build Coastguard Worker      <xsl:text>&#10;</xsl:text>
2396*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2397*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$mode='wordml'">
2398*912701f9SAndroid Build Coastguard Worker      <r xmlns="http://schemas.microsoft.com/office/word/2003/wordml">
2399*912701f9SAndroid Build Coastguard Worker        <t><xsl:value-of select="translate($line,' ','&#160;')"/></t>
2400*912701f9SAndroid Build Coastguard Worker      </r>
2401*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2402*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$mode='nroff'">
2403*912701f9SAndroid Build Coastguard Worker      <xsl:variable name="cline">
2404*912701f9SAndroid Build Coastguard Worker        <xsl:call-template name="replace-substring">
2405*912701f9SAndroid Build Coastguard Worker          <xsl:with-param name="string" select="$line" />
2406*912701f9SAndroid Build Coastguard Worker          <xsl:with-param name="replace" select="'\'" />
2407*912701f9SAndroid Build Coastguard Worker          <xsl:with-param name="by" select="'\\'" />
2408*912701f9SAndroid Build Coastguard Worker        </xsl:call-template>
2409*912701f9SAndroid Build Coastguard Worker      </xsl:variable>
2410*912701f9SAndroid Build Coastguard Worker      <xsl:value-of select="concat($cline,'&#10;')" />
2411*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2412*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise><xsl:value-of select="concat($line,'&#10;')" /></xsl:otherwise>
2413*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2414*912701f9SAndroid Build Coastguard Worker
2415*912701f9SAndroid Build Coastguard Worker</xsl:template>
2416*912701f9SAndroid Build Coastguard Worker
2417*912701f9SAndroid Build Coastguard Worker<xsl:template name="showArtwork">
2418*912701f9SAndroid Build Coastguard Worker  <xsl:param name="mode" />
2419*912701f9SAndroid Build Coastguard Worker  <xsl:param name="text" />
2420*912701f9SAndroid Build Coastguard Worker  <xsl:param name="initial" />
2421*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="delim" select="'&#10;'" />
2422*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="first" select="substring-before($text,$delim)" />
2423*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="remainder" select="substring-after($text,$delim)" />
2424*912701f9SAndroid Build Coastguard Worker
2425*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2426*912701f9SAndroid Build Coastguard Worker    <xsl:when test="not(contains($text,$delim))">
2427*912701f9SAndroid Build Coastguard Worker      <xsl:call-template name="showArtworkLine">
2428*912701f9SAndroid Build Coastguard Worker        <xsl:with-param name="line" select="$text" />
2429*912701f9SAndroid Build Coastguard Worker        <xsl:with-param name="mode" select="$mode" />
2430*912701f9SAndroid Build Coastguard Worker      </xsl:call-template>
2431*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2432*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>
2433*912701f9SAndroid Build Coastguard Worker      <!-- suppress empty initial lines -->
2434*912701f9SAndroid Build Coastguard Worker      <xsl:if test="$initial!='yes' or normalize-space($first)!=''">
2435*912701f9SAndroid Build Coastguard Worker        <xsl:call-template name="showArtworkLine">
2436*912701f9SAndroid Build Coastguard Worker          <xsl:with-param name="line" select="$first" />
2437*912701f9SAndroid Build Coastguard Worker          <xsl:with-param name="mode" select="$mode" />
2438*912701f9SAndroid Build Coastguard Worker        </xsl:call-template>
2439*912701f9SAndroid Build Coastguard Worker        <xsl:if test="$mode='wordml' and $remainder!=''">
2440*912701f9SAndroid Build Coastguard Worker          <r xmlns="http://schemas.microsoft.com/office/word/2003/wordml">
2441*912701f9SAndroid Build Coastguard Worker            <br />
2442*912701f9SAndroid Build Coastguard Worker          </r>
2443*912701f9SAndroid Build Coastguard Worker        </xsl:if>
2444*912701f9SAndroid Build Coastguard Worker      </xsl:if>
2445*912701f9SAndroid Build Coastguard Worker      <xsl:if test="$remainder!=''">
2446*912701f9SAndroid Build Coastguard Worker        <xsl:call-template name="showArtwork">
2447*912701f9SAndroid Build Coastguard Worker          <xsl:with-param name="text" select="$remainder" />
2448*912701f9SAndroid Build Coastguard Worker          <xsl:with-param name="mode" select="$mode" />
2449*912701f9SAndroid Build Coastguard Worker        </xsl:call-template>
2450*912701f9SAndroid Build Coastguard Worker      </xsl:if>
2451*912701f9SAndroid Build Coastguard Worker    </xsl:otherwise>
2452*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2453*912701f9SAndroid Build Coastguard Worker
2454*912701f9SAndroid Build Coastguard Worker</xsl:template>
2455*912701f9SAndroid Build Coastguard Worker
2456*912701f9SAndroid Build Coastguard Worker
2457*912701f9SAndroid Build Coastguard Worker<!--<xsl:template name="dump">
2458*912701f9SAndroid Build Coastguard Worker  <xsl:param name="text" />
2459*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="c" select="substring($text,1,1)"/>
2460*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2461*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$c='&#9;'">&amp;#9;</xsl:when>
2462*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$c='&#10;'">&amp;#10;</xsl:when>
2463*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$c='&#13;'">&amp;#13;</xsl:when>
2464*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$c='&amp;'">&amp;amp;</xsl:when>
2465*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise><xsl:value-of select="$c" /></xsl:otherwise>
2466*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2467*912701f9SAndroid Build Coastguard Worker  <xsl:if test="string-length($text) &gt; 1">
2468*912701f9SAndroid Build Coastguard Worker    <xsl:call-template name="dump">
2469*912701f9SAndroid Build Coastguard Worker      <xsl:with-param name="text" select="substring($text,2)" />
2470*912701f9SAndroid Build Coastguard Worker    </xsl:call-template>
2471*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2472*912701f9SAndroid Build Coastguard Worker</xsl:template>-->
2473*912701f9SAndroid Build Coastguard Worker
2474*912701f9SAndroid Build Coastguard Worker
2475*912701f9SAndroid Build Coastguard Worker<xsl:template name="rfclist">
2476*912701f9SAndroid Build Coastguard Worker  <xsl:param name="list" />
2477*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2478*912701f9SAndroid Build Coastguard Worker    <xsl:when test="contains($list,',')">
2479*912701f9SAndroid Build Coastguard Worker      <xsl:variable name="rfcNo" select="substring-before($list,',')" />
2480*912701f9SAndroid Build Coastguard Worker      <a href="{concat($rfcUrlPrefix,$rfcNo,'.txt')}"><xsl:value-of select="$rfcNo" /></a>,
2481*912701f9SAndroid Build Coastguard Worker      <xsl:call-template name="rfclist">
2482*912701f9SAndroid Build Coastguard Worker        <xsl:with-param name="list" select="normalize-space(substring-after($list,','))" />
2483*912701f9SAndroid Build Coastguard Worker      </xsl:call-template>
2484*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2485*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>
2486*912701f9SAndroid Build Coastguard Worker      <xsl:variable name="rfcNo" select="$list" />
2487*912701f9SAndroid Build Coastguard Worker      <a href="{concat($rfcUrlPrefix,$rfcNo,'.txt')}"><xsl:value-of select="$rfcNo" /></a>
2488*912701f9SAndroid Build Coastguard Worker    </xsl:otherwise>
2489*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2490*912701f9SAndroid Build Coastguard Worker</xsl:template>
2491*912701f9SAndroid Build Coastguard Worker
2492*912701f9SAndroid Build Coastguard Worker<xsl:template name="rfclist-for-dcmeta">
2493*912701f9SAndroid Build Coastguard Worker  <xsl:param name="list" />
2494*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2495*912701f9SAndroid Build Coastguard Worker    <xsl:when test="contains($list,',')">
2496*912701f9SAndroid Build Coastguard Worker      <xsl:variable name="rfcNo" select="substring-before($list,',')" />
2497*912701f9SAndroid Build Coastguard Worker      <meta name="DC.Relation.Replaces" content="urn:ietf:rfc:{$rfcNo}" />
2498*912701f9SAndroid Build Coastguard Worker      <xsl:call-template name="rfclist-for-dcmeta">
2499*912701f9SAndroid Build Coastguard Worker        <xsl:with-param name="list" select="normalize-space(substring-after($list,','))" />
2500*912701f9SAndroid Build Coastguard Worker      </xsl:call-template>
2501*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2502*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>
2503*912701f9SAndroid Build Coastguard Worker      <xsl:variable name="rfcNo" select="$list" />
2504*912701f9SAndroid Build Coastguard Worker      <meta name="DC.Relation.Replaces" content="urn:ietf:rfc:{$rfcNo}" />
2505*912701f9SAndroid Build Coastguard Worker    </xsl:otherwise>
2506*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2507*912701f9SAndroid Build Coastguard Worker</xsl:template>
2508*912701f9SAndroid Build Coastguard Worker
2509*912701f9SAndroid Build Coastguard Worker<xsl:template name="sectionnumberPara">
2510*912701f9SAndroid Build Coastguard Worker  <!-- get section number of ancestor section element, then add t or figure number -->
2511*912701f9SAndroid Build Coastguard Worker  <xsl:if test="ancestor::section and not(ancestor::section[@myns:unnumbered='unnumbered'])">
2512*912701f9SAndroid Build Coastguard Worker    <xsl:for-each select="ancestor::section[1]"><xsl:call-template name="get-section-number" />.p.</xsl:for-each><xsl:number count="t|figure" />
2513*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2514*912701f9SAndroid Build Coastguard Worker</xsl:template>
2515*912701f9SAndroid Build Coastguard Worker
2516*912701f9SAndroid Build Coastguard Worker<xsl:template name="editingMark">
2517*912701f9SAndroid Build Coastguard Worker  <xsl:if test="$xml2rfc-editing='yes' and ancestor::rfc">
2518*912701f9SAndroid Build Coastguard Worker    <sup class="editingmark"><span><xsl:number level="any" count="postamble|preamble|t"/></span>&#0160;</sup>
2519*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2520*912701f9SAndroid Build Coastguard Worker</xsl:template>
2521*912701f9SAndroid Build Coastguard Worker
2522*912701f9SAndroid Build Coastguard Worker<!-- experimental annotation support -->
2523*912701f9SAndroid Build Coastguard Worker
2524*912701f9SAndroid Build Coastguard Worker<xsl:template match="ed:issue">
2525*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="class">
2526*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
2527*912701f9SAndroid Build Coastguard Worker      <xsl:when test="@status='closed'">closedissue</xsl:when>
2528*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>openissue</xsl:otherwise>
2529*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
2530*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
2531*912701f9SAndroid Build Coastguard Worker
2532*912701f9SAndroid Build Coastguard Worker  <table summary="issue {@name}" class="{$class}">
2533*912701f9SAndroid Build Coastguard Worker    <tr>
2534*912701f9SAndroid Build Coastguard Worker      <td colspan="3">
2535*912701f9SAndroid Build Coastguard Worker        <a name="{$anchor-prefix}.issue.{@name}">
2536*912701f9SAndroid Build Coastguard Worker          <xsl:choose>
2537*912701f9SAndroid Build Coastguard Worker            <xsl:when test="@status='closed'">
2538*912701f9SAndroid Build Coastguard Worker              <xsl:attribute name="class">closed-issue</xsl:attribute>
2539*912701f9SAndroid Build Coastguard Worker            </xsl:when>
2540*912701f9SAndroid Build Coastguard Worker            <xsl:when test="@status='editor'">
2541*912701f9SAndroid Build Coastguard Worker              <xsl:attribute name="class">editor-issue</xsl:attribute>
2542*912701f9SAndroid Build Coastguard Worker            </xsl:when>
2543*912701f9SAndroid Build Coastguard Worker            <xsl:otherwise>
2544*912701f9SAndroid Build Coastguard Worker              <xsl:attribute name="class">open-issue</xsl:attribute>
2545*912701f9SAndroid Build Coastguard Worker            </xsl:otherwise>
2546*912701f9SAndroid Build Coastguard Worker          </xsl:choose>
2547*912701f9SAndroid Build Coastguard Worker          <xsl:text>&#160;i&#160;</xsl:text>
2548*912701f9SAndroid Build Coastguard Worker        </a>
2549*912701f9SAndroid Build Coastguard Worker        <xsl:text>&#160;</xsl:text>
2550*912701f9SAndroid Build Coastguard Worker        <xsl:choose>
2551*912701f9SAndroid Build Coastguard Worker          <xsl:when test="@href">
2552*912701f9SAndroid Build Coastguard Worker            <em><a href="{@href}"><xsl:value-of select="@name" /></a></em>
2553*912701f9SAndroid Build Coastguard Worker          </xsl:when>
2554*912701f9SAndroid Build Coastguard Worker          <xsl:otherwise>
2555*912701f9SAndroid Build Coastguard Worker            <em><xsl:value-of select="@name" /></em>
2556*912701f9SAndroid Build Coastguard Worker          </xsl:otherwise>
2557*912701f9SAndroid Build Coastguard Worker        </xsl:choose>
2558*912701f9SAndroid Build Coastguard Worker        &#0160;
2559*912701f9SAndroid Build Coastguard Worker        (type: <xsl:value-of select="@type"/>, status: <xsl:value-of select="@status"/>)
2560*912701f9SAndroid Build Coastguard Worker      </td>
2561*912701f9SAndroid Build Coastguard Worker    </tr>
2562*912701f9SAndroid Build Coastguard Worker    <xsl:for-each select="ed:item">
2563*912701f9SAndroid Build Coastguard Worker      <tr>
2564*912701f9SAndroid Build Coastguard Worker        <td class="top">
2565*912701f9SAndroid Build Coastguard Worker          <a href="mailto:{@entered-by}?subject={/rfc/@docName}, {../@name}"><i><xsl:value-of select="@entered-by"/></i></a>
2566*912701f9SAndroid Build Coastguard Worker        </td>
2567*912701f9SAndroid Build Coastguard Worker        <td class="topnowrap">
2568*912701f9SAndroid Build Coastguard Worker          <xsl:value-of select="@date"/>
2569*912701f9SAndroid Build Coastguard Worker        </td>
2570*912701f9SAndroid Build Coastguard Worker        <td class="top">
2571*912701f9SAndroid Build Coastguard Worker          <xsl:call-template name="copynodes">
2572*912701f9SAndroid Build Coastguard Worker            <xsl:with-param name="nodes" select="node()" />
2573*912701f9SAndroid Build Coastguard Worker          </xsl:call-template>
2574*912701f9SAndroid Build Coastguard Worker        </td>
2575*912701f9SAndroid Build Coastguard Worker      </tr>
2576*912701f9SAndroid Build Coastguard Worker    </xsl:for-each>
2577*912701f9SAndroid Build Coastguard Worker    <xsl:for-each select="ed:resolution">
2578*912701f9SAndroid Build Coastguard Worker      <tr>
2579*912701f9SAndroid Build Coastguard Worker        <td class="top">
2580*912701f9SAndroid Build Coastguard Worker          <xsl:if test="@entered-by">
2581*912701f9SAndroid Build Coastguard Worker            <a href="mailto:{@entered-by}?subject={/rfc/@docName}, {../@name}"><i><xsl:value-of select="@entered-by"/></i></a>
2582*912701f9SAndroid Build Coastguard Worker          </xsl:if>
2583*912701f9SAndroid Build Coastguard Worker        </td>
2584*912701f9SAndroid Build Coastguard Worker        <td class="topnowrap">
2585*912701f9SAndroid Build Coastguard Worker          <xsl:value-of select="@datetime"/>
2586*912701f9SAndroid Build Coastguard Worker        </td>
2587*912701f9SAndroid Build Coastguard Worker        <td class="top">
2588*912701f9SAndroid Build Coastguard Worker          <em>Resolution:</em>&#0160;<xsl:copy-of select="node()" />
2589*912701f9SAndroid Build Coastguard Worker        </td>
2590*912701f9SAndroid Build Coastguard Worker      </tr>
2591*912701f9SAndroid Build Coastguard Worker    </xsl:for-each>
2592*912701f9SAndroid Build Coastguard Worker  </table>
2593*912701f9SAndroid Build Coastguard Worker
2594*912701f9SAndroid Build Coastguard Worker</xsl:template>
2595*912701f9SAndroid Build Coastguard Worker
2596*912701f9SAndroid Build Coastguard Worker<xsl:template name="insertIssuesList">
2597*912701f9SAndroid Build Coastguard Worker
2598*912701f9SAndroid Build Coastguard Worker  <h2><a name="{$anchor-prefix}.issues-list">Issues list</a></h2>
2599*912701f9SAndroid Build Coastguard Worker  <table summary="Issues list">
2600*912701f9SAndroid Build Coastguard Worker    <xsl:for-each select="//ed:issue">
2601*912701f9SAndroid Build Coastguard Worker      <xsl:sort select="@status" />
2602*912701f9SAndroid Build Coastguard Worker      <xsl:sort select="@name" />
2603*912701f9SAndroid Build Coastguard Worker      <tr>
2604*912701f9SAndroid Build Coastguard Worker        <td><a href="#{$anchor-prefix}.issue.{@name}"><xsl:value-of select="@name" /></a></td>
2605*912701f9SAndroid Build Coastguard Worker        <td><xsl:value-of select="@type" /></td>
2606*912701f9SAndroid Build Coastguard Worker        <td><xsl:value-of select="@status" /></td>
2607*912701f9SAndroid Build Coastguard Worker        <td><xsl:value-of select="ed:item[1]/@date" /></td>
2608*912701f9SAndroid Build Coastguard Worker        <td><a href="mailto:{ed:item[1]/@entered-by}?subject={/rfc/@docName}, {@name}"><xsl:value-of select="ed:item[1]/@entered-by" /></a></td>
2609*912701f9SAndroid Build Coastguard Worker      </tr>
2610*912701f9SAndroid Build Coastguard Worker    </xsl:for-each>
2611*912701f9SAndroid Build Coastguard Worker  </table>
2612*912701f9SAndroid Build Coastguard Worker
2613*912701f9SAndroid Build Coastguard Worker</xsl:template>
2614*912701f9SAndroid Build Coastguard Worker
2615*912701f9SAndroid Build Coastguard Worker<xsl:template name="formatTitle">
2616*912701f9SAndroid Build Coastguard Worker  <xsl:if test="@who">
2617*912701f9SAndroid Build Coastguard Worker    <xsl:value-of select="@who" />
2618*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2619*912701f9SAndroid Build Coastguard Worker  <xsl:if test="@datetime">
2620*912701f9SAndroid Build Coastguard Worker    <xsl:value-of select="concat(' (',@datetime,')')" />
2621*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2622*912701f9SAndroid Build Coastguard Worker  <xsl:if test="@reason">
2623*912701f9SAndroid Build Coastguard Worker    <xsl:value-of select="concat(': ',@reason)" />
2624*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2625*912701f9SAndroid Build Coastguard Worker  <xsl:if test="@cite">
2626*912701f9SAndroid Build Coastguard Worker    <xsl:value-of select="concat(' &lt;',@cite,'&gt;')" />
2627*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2628*912701f9SAndroid Build Coastguard Worker</xsl:template>
2629*912701f9SAndroid Build Coastguard Worker
2630*912701f9SAndroid Build Coastguard Worker<xsl:template name="insert-diagnostics">
2631*912701f9SAndroid Build Coastguard Worker
2632*912701f9SAndroid Build Coastguard Worker  <!-- check anchor names -->
2633*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="badAnchors" select="//*[starts-with(@anchor,concat($anchor-prefix,'.'))]" />
2634*912701f9SAndroid Build Coastguard Worker  <xsl:if test="$badAnchors">
2635*912701f9SAndroid Build Coastguard Worker    <p class="warning">
2636*912701f9SAndroid Build Coastguard Worker      The following anchor names may collide with internally generated anchors because of their prefix "<xsl:value-of select="$anchor-prefix" />":
2637*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="$badAnchors">
2638*912701f9SAndroid Build Coastguard Worker        <xsl:value-of select="@anchor"/><xsl:if test="position()!=last()">, </xsl:if>
2639*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
2640*912701f9SAndroid Build Coastguard Worker    </p>
2641*912701f9SAndroid Build Coastguard Worker    <xsl:message>
2642*912701f9SAndroid Build Coastguard Worker      The following anchor names may collide with internally generated anchors because of their prefix "<xsl:value-of select="$anchor-prefix" />":
2643*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="$badAnchors">
2644*912701f9SAndroid Build Coastguard Worker        <xsl:value-of select="@anchor"/><xsl:if test="position()!=last()">, </xsl:if>
2645*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
2646*912701f9SAndroid Build Coastguard Worker    </xsl:message>
2647*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2648*912701f9SAndroid Build Coastguard Worker
2649*912701f9SAndroid Build Coastguard Worker  <!-- check IDs -->
2650*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="badTargets" select="//xref[not(@target=//@anchor) and not(ancestor::ed:del)]" />
2651*912701f9SAndroid Build Coastguard Worker  <xsl:if test="$badTargets">
2652*912701f9SAndroid Build Coastguard Worker    <p class="error">
2653*912701f9SAndroid Build Coastguard Worker      The following target names do not exist:
2654*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="$badTargets">
2655*912701f9SAndroid Build Coastguard Worker        <xsl:value-of select="@target"/><xsl:if test="position()!=last()">, </xsl:if>
2656*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
2657*912701f9SAndroid Build Coastguard Worker    </p>
2658*912701f9SAndroid Build Coastguard Worker    <xsl:message>
2659*912701f9SAndroid Build Coastguard Worker      The following target names do not exist:
2660*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="$badTargets">
2661*912701f9SAndroid Build Coastguard Worker        <xsl:value-of select="@target"/><xsl:if test="position()!=last()">, </xsl:if>
2662*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
2663*912701f9SAndroid Build Coastguard Worker    </xsl:message>
2664*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2665*912701f9SAndroid Build Coastguard Worker
2666*912701f9SAndroid Build Coastguard Worker
2667*912701f9SAndroid Build Coastguard Worker</xsl:template>
2668*912701f9SAndroid Build Coastguard Worker
2669*912701f9SAndroid Build Coastguard Worker<!-- special change mark support, not supported by RFC2629 yet -->
2670*912701f9SAndroid Build Coastguard Worker
2671*912701f9SAndroid Build Coastguard Worker<xsl:template match="@ed:*" />
2672*912701f9SAndroid Build Coastguard Worker
2673*912701f9SAndroid Build Coastguard Worker<xsl:template match="ed:del">
2674*912701f9SAndroid Build Coastguard Worker  <xsl:call-template name="insert-issue-pointer"/>
2675*912701f9SAndroid Build Coastguard Worker  <del>
2676*912701f9SAndroid Build Coastguard Worker    <xsl:copy-of select="@*[namespace-uri()='']"/>
2677*912701f9SAndroid Build Coastguard Worker    <xsl:if test="not(@title) and ancestor-or-self::*[@ed:entered-by] and @datetime">
2678*912701f9SAndroid Build Coastguard Worker      <xsl:attribute name="title"><xsl:value-of select="concat(@datetime,', ',ancestor-or-self::*[@ed:entered-by][1]/@ed:entered-by)"/></xsl:attribute>
2679*912701f9SAndroid Build Coastguard Worker    </xsl:if>
2680*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
2681*912701f9SAndroid Build Coastguard Worker  </del>
2682*912701f9SAndroid Build Coastguard Worker</xsl:template>
2683*912701f9SAndroid Build Coastguard Worker
2684*912701f9SAndroid Build Coastguard Worker<xsl:template match="ed:ins">
2685*912701f9SAndroid Build Coastguard Worker  <xsl:call-template name="insert-issue-pointer"/>
2686*912701f9SAndroid Build Coastguard Worker  <ins>
2687*912701f9SAndroid Build Coastguard Worker    <xsl:copy-of select="@*[namespace-uri()='']"/>
2688*912701f9SAndroid Build Coastguard Worker    <xsl:if test="not(@title) and ancestor-or-self::*[@ed:entered-by] and @datetime">
2689*912701f9SAndroid Build Coastguard Worker      <xsl:attribute name="title"><xsl:value-of select="concat(@datetime,', ',ancestor-or-self::*[@ed:entered-by][1]/@ed:entered-by)"/></xsl:attribute>
2690*912701f9SAndroid Build Coastguard Worker    </xsl:if>
2691*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
2692*912701f9SAndroid Build Coastguard Worker  </ins>
2693*912701f9SAndroid Build Coastguard Worker</xsl:template>
2694*912701f9SAndroid Build Coastguard Worker
2695*912701f9SAndroid Build Coastguard Worker<xsl:template name="insert-issue-pointer">
2696*912701f9SAndroid Build Coastguard Worker  <xsl:if test="@ed:resolves">
2697*912701f9SAndroid Build Coastguard Worker    <xsl:variable name="resolves" select="@ed:resolves"/>
2698*912701f9SAndroid Build Coastguard Worker    <xsl:choose>
2699*912701f9SAndroid Build Coastguard Worker      <xsl:when test="not(ancestor::t)">
2700*912701f9SAndroid Build Coastguard Worker        <div><a class="open-issue" href="#{$anchor-prefix}.issue.{$resolves}" title="resolves: {$resolves}">
2701*912701f9SAndroid Build Coastguard Worker          <xsl:choose>
2702*912701f9SAndroid Build Coastguard Worker            <xsl:when test="//ed:issue[@name=$resolves and @status='closed']">
2703*912701f9SAndroid Build Coastguard Worker              <xsl:attribute name="class">closed-issue</xsl:attribute>
2704*912701f9SAndroid Build Coastguard Worker            </xsl:when>
2705*912701f9SAndroid Build Coastguard Worker            <xsl:when test="//ed:issue[@name=$resolves and @status='editor']">
2706*912701f9SAndroid Build Coastguard Worker              <xsl:attribute name="class">editor-issue</xsl:attribute>
2707*912701f9SAndroid Build Coastguard Worker            </xsl:when>
2708*912701f9SAndroid Build Coastguard Worker            <xsl:otherwise>
2709*912701f9SAndroid Build Coastguard Worker              <xsl:attribute name="class">open-issue</xsl:attribute>
2710*912701f9SAndroid Build Coastguard Worker            </xsl:otherwise>
2711*912701f9SAndroid Build Coastguard Worker          </xsl:choose>
2712*912701f9SAndroid Build Coastguard Worker          <xsl:text>&#160;i&#160;</xsl:text>
2713*912701f9SAndroid Build Coastguard Worker        </a></div>
2714*912701f9SAndroid Build Coastguard Worker      </xsl:when>
2715*912701f9SAndroid Build Coastguard Worker      <xsl:otherwise>
2716*912701f9SAndroid Build Coastguard Worker        <a class="open-issue" href="#{$anchor-prefix}.issue.{$resolves}" title="resolves: {$resolves}">
2717*912701f9SAndroid Build Coastguard Worker          <xsl:choose>
2718*912701f9SAndroid Build Coastguard Worker            <xsl:when test="//ed:issue[@name=$resolves and @status='closed']">
2719*912701f9SAndroid Build Coastguard Worker              <xsl:attribute name="class">closed-issue</xsl:attribute>
2720*912701f9SAndroid Build Coastguard Worker            </xsl:when>
2721*912701f9SAndroid Build Coastguard Worker            <xsl:when test="//ed:issue[@name=$resolves and @status='editor']">
2722*912701f9SAndroid Build Coastguard Worker              <xsl:attribute name="class">editor-issue</xsl:attribute>
2723*912701f9SAndroid Build Coastguard Worker            </xsl:when>
2724*912701f9SAndroid Build Coastguard Worker            <xsl:otherwise>
2725*912701f9SAndroid Build Coastguard Worker              <xsl:attribute name="class">open-issue</xsl:attribute>
2726*912701f9SAndroid Build Coastguard Worker            </xsl:otherwise>
2727*912701f9SAndroid Build Coastguard Worker          </xsl:choose>
2728*912701f9SAndroid Build Coastguard Worker          <xsl:text>&#160;i&#160;</xsl:text>
2729*912701f9SAndroid Build Coastguard Worker        </a>
2730*912701f9SAndroid Build Coastguard Worker      </xsl:otherwise>
2731*912701f9SAndroid Build Coastguard Worker    </xsl:choose>
2732*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2733*912701f9SAndroid Build Coastguard Worker</xsl:template>
2734*912701f9SAndroid Build Coastguard Worker
2735*912701f9SAndroid Build Coastguard Worker<xsl:template match="ed:replace">
2736*912701f9SAndroid Build Coastguard Worker  <xsl:if test="@cite">
2737*912701f9SAndroid Build Coastguard Worker    <a class="editor-issue" href="{@cite}" target="_blank" title="see {@cite}">
2738*912701f9SAndroid Build Coastguard Worker      <xsl:text>&#160;i&#160;</xsl:text>
2739*912701f9SAndroid Build Coastguard Worker    </a>
2740*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2741*912701f9SAndroid Build Coastguard Worker  <xsl:call-template name="insert-issue-pointer"/>
2742*912701f9SAndroid Build Coastguard Worker  <xsl:if test="ed:del">
2743*912701f9SAndroid Build Coastguard Worker    <del>
2744*912701f9SAndroid Build Coastguard Worker      <xsl:copy-of select="@*[namespace-uri()='']"/>
2745*912701f9SAndroid Build Coastguard Worker      <xsl:if test="not(@title) and ancestor-or-self::*[@ed:entered-by] and @datetime">
2746*912701f9SAndroid Build Coastguard Worker        <xsl:attribute name="title"><xsl:value-of select="concat(@datetime,', ',ancestor-or-self::*[@ed:entered-by][1]/@ed:entered-by)"/></xsl:attribute>
2747*912701f9SAndroid Build Coastguard Worker      </xsl:if>
2748*912701f9SAndroid Build Coastguard Worker      <xsl:apply-templates select="ed:del/node()" />
2749*912701f9SAndroid Build Coastguard Worker    </del>
2750*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2751*912701f9SAndroid Build Coastguard Worker  <xsl:if test="ed:ins">
2752*912701f9SAndroid Build Coastguard Worker    <ins>
2753*912701f9SAndroid Build Coastguard Worker      <xsl:copy-of select="@*[namespace-uri()='']"/>
2754*912701f9SAndroid Build Coastguard Worker      <xsl:if test="not(@title) and ancestor-or-self::*[@ed:entered-by] and @datetime">
2755*912701f9SAndroid Build Coastguard Worker        <xsl:attribute name="title"><xsl:value-of select="concat(@datetime,', ',ancestor-or-self::*[@ed:entered-by][1]/@ed:entered-by)"/></xsl:attribute>
2756*912701f9SAndroid Build Coastguard Worker      </xsl:if>
2757*912701f9SAndroid Build Coastguard Worker      <xsl:apply-templates select="ed:ins/node()" />
2758*912701f9SAndroid Build Coastguard Worker    </ins>
2759*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2760*912701f9SAndroid Build Coastguard Worker</xsl:template>
2761*912701f9SAndroid Build Coastguard Worker
2762*912701f9SAndroid Build Coastguard Worker<!-- convenience template for helping Mozilla (pre/ins inheritance problem) -->
2763*912701f9SAndroid Build Coastguard Worker<xsl:template name="insertInsDelClass">
2764*912701f9SAndroid Build Coastguard Worker  <xsl:if test="ancestor::ed:del">
2765*912701f9SAndroid Build Coastguard Worker    <xsl:attribute name="class">del</xsl:attribute>
2766*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2767*912701f9SAndroid Build Coastguard Worker  <xsl:if test="ancestor::ed:ins">
2768*912701f9SAndroid Build Coastguard Worker    <xsl:attribute name="class">ins</xsl:attribute>
2769*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2770*912701f9SAndroid Build Coastguard Worker</xsl:template>
2771*912701f9SAndroid Build Coastguard Worker
2772*912701f9SAndroid Build Coastguard Worker
2773*912701f9SAndroid Build Coastguard Worker<xsl:template name="sectionnumberAndEdits">
2774*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2775*912701f9SAndroid Build Coastguard Worker    <xsl:when test="ancestor::ed:del">del-<xsl:number count="ed:del//section" level="any"/></xsl:when>
2776*912701f9SAndroid Build Coastguard Worker    <xsl:when test="self::section and parent::ed:ins and local-name(../..)='replace'">
2777*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="../.."><xsl:call-template name="sectionnumberAndEdits" /></xsl:for-each>
2778*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="..">
2779*912701f9SAndroid Build Coastguard Worker        <xsl:if test="parent::ed:replace">
2780*912701f9SAndroid Build Coastguard Worker          <xsl:for-each select="..">
2781*912701f9SAndroid Build Coastguard Worker            <xsl:if test="parent::section">.</xsl:if><xsl:value-of select="1+count(preceding-sibling::section|preceding-sibling::ed:ins/section|preceding-sibling::ed:replace/ed:ins/section)" />
2782*912701f9SAndroid Build Coastguard Worker          </xsl:for-each>
2783*912701f9SAndroid Build Coastguard Worker        </xsl:if>
2784*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
2785*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2786*912701f9SAndroid Build Coastguard Worker    <xsl:when test="self::section[parent::ed:ins]">
2787*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="../.."><xsl:call-template name="sectionnumberAndEdits" /></xsl:for-each>
2788*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="..">
2789*912701f9SAndroid Build Coastguard Worker        <xsl:if test="parent::section">.</xsl:if><xsl:value-of select="1+count(preceding-sibling::section|preceding-sibling::ed:ins/section|preceding-sibling::ed:replace/ed:ins/section)" />
2790*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
2791*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2792*912701f9SAndroid Build Coastguard Worker    <xsl:when test="self::section">
2793*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select=".."><xsl:call-template name="sectionnumberAndEdits" /></xsl:for-each>
2794*912701f9SAndroid Build Coastguard Worker      <xsl:if test="parent::section">.</xsl:if>
2795*912701f9SAndroid Build Coastguard Worker      <xsl:choose>
2796*912701f9SAndroid Build Coastguard Worker        <xsl:when test="parent::back">
2797*912701f9SAndroid Build Coastguard Worker          <xsl:number format="A" value="1+count(preceding-sibling::section|preceding-sibling::ed:ins/section|preceding-sibling::ed:replace/ed:ins/section)" />
2798*912701f9SAndroid Build Coastguard Worker        </xsl:when>
2799*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise>
2800*912701f9SAndroid Build Coastguard Worker          <xsl:number value="1+count(preceding-sibling::section|preceding-sibling::ed:ins/section|preceding-sibling::ed:replace/ed:ins/section)" />
2801*912701f9SAndroid Build Coastguard Worker        </xsl:otherwise>
2802*912701f9SAndroid Build Coastguard Worker      </xsl:choose>
2803*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2804*912701f9SAndroid Build Coastguard Worker    <xsl:when test="self::middle or self::back"><!-- done --></xsl:when>
2805*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>
2806*912701f9SAndroid Build Coastguard Worker      <!-- go up one level -->
2807*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select=".."><xsl:call-template name="sectionnumberAndEdits" /></xsl:for-each>
2808*912701f9SAndroid Build Coastguard Worker    </xsl:otherwise>
2809*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2810*912701f9SAndroid Build Coastguard Worker</xsl:template>
2811*912701f9SAndroid Build Coastguard Worker
2812*912701f9SAndroid Build Coastguard Worker<!-- experimental table formatting -->
2813*912701f9SAndroid Build Coastguard Worker
2814*912701f9SAndroid Build Coastguard Worker<xsl:template match="texttable">
2815*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="preamble" />
2816*912701f9SAndroid Build Coastguard Worker  <table summary="{preamble}" border="1" cellpadding="3" cellspacing="0">
2817*912701f9SAndroid Build Coastguard Worker    <thead>
2818*912701f9SAndroid Build Coastguard Worker      <tr>
2819*912701f9SAndroid Build Coastguard Worker        <xsl:apply-templates select="ttcol" />
2820*912701f9SAndroid Build Coastguard Worker      </tr>
2821*912701f9SAndroid Build Coastguard Worker    </thead>
2822*912701f9SAndroid Build Coastguard Worker    <tbody>
2823*912701f9SAndroid Build Coastguard Worker      <xsl:variable name="columns" select="count(ttcol)" />
2824*912701f9SAndroid Build Coastguard Worker      <xsl:for-each select="c[(position() mod $columns) = 1]">
2825*912701f9SAndroid Build Coastguard Worker        <tr>
2826*912701f9SAndroid Build Coastguard Worker          <xsl:for-each select=". | following-sibling::c[position() &lt; $columns]">
2827*912701f9SAndroid Build Coastguard Worker            <td class="top">
2828*912701f9SAndroid Build Coastguard Worker              <xsl:variable name="pos" select="position()" />
2829*912701f9SAndroid Build Coastguard Worker              <xsl:variable name="col" select="../ttcol[position() = $pos]" />
2830*912701f9SAndroid Build Coastguard Worker              <xsl:if test="$col/@align">
2831*912701f9SAndroid Build Coastguard Worker                <xsl:attribute name="style">text-align: <xsl:value-of select="$col/@align" />;</xsl:attribute>
2832*912701f9SAndroid Build Coastguard Worker              </xsl:if>
2833*912701f9SAndroid Build Coastguard Worker              <xsl:apply-templates select="node()" />
2834*912701f9SAndroid Build Coastguard Worker              &#0160;
2835*912701f9SAndroid Build Coastguard Worker            </td>
2836*912701f9SAndroid Build Coastguard Worker          </xsl:for-each>
2837*912701f9SAndroid Build Coastguard Worker        </tr>
2838*912701f9SAndroid Build Coastguard Worker      </xsl:for-each>
2839*912701f9SAndroid Build Coastguard Worker    </tbody>
2840*912701f9SAndroid Build Coastguard Worker  </table>
2841*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates select="postamble" />
2842*912701f9SAndroid Build Coastguard Worker</xsl:template>
2843*912701f9SAndroid Build Coastguard Worker
2844*912701f9SAndroid Build Coastguard Worker<xsl:template match="ttcol">
2845*912701f9SAndroid Build Coastguard Worker  <th valign="top">
2846*912701f9SAndroid Build Coastguard Worker    <xsl:variable name="width">
2847*912701f9SAndroid Build Coastguard Worker      <xsl:if test="@width">width: <xsl:value-of select="@width" />; </xsl:if>
2848*912701f9SAndroid Build Coastguard Worker    </xsl:variable>
2849*912701f9SAndroid Build Coastguard Worker    <xsl:variable name="align">
2850*912701f9SAndroid Build Coastguard Worker      <xsl:choose>
2851*912701f9SAndroid Build Coastguard Worker        <xsl:when test="@align">text-align: <xsl:value-of select="@align" />;</xsl:when>
2852*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise>text-align: left;</xsl:otherwise>
2853*912701f9SAndroid Build Coastguard Worker      </xsl:choose>
2854*912701f9SAndroid Build Coastguard Worker    </xsl:variable>
2855*912701f9SAndroid Build Coastguard Worker    <xsl:attribute name="style"><xsl:value-of select="concat($width,$align)" /></xsl:attribute>
2856*912701f9SAndroid Build Coastguard Worker    <xsl:apply-templates />
2857*912701f9SAndroid Build Coastguard Worker  </th>
2858*912701f9SAndroid Build Coastguard Worker</xsl:template>
2859*912701f9SAndroid Build Coastguard Worker
2860*912701f9SAndroid Build Coastguard Worker<!-- Chapter Link Generation -->
2861*912701f9SAndroid Build Coastguard Worker
2862*912701f9SAndroid Build Coastguard Worker<xsl:template match="*" mode="links"><xsl:apply-templates mode="links"/></xsl:template>
2863*912701f9SAndroid Build Coastguard Worker<xsl:template match="text()" mode="links" />
2864*912701f9SAndroid Build Coastguard Worker
2865*912701f9SAndroid Build Coastguard Worker<xsl:template match="/*/middle//section[not(myns:unnumbered) and not(ancestor::section)]" mode="links">
2866*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="sectionNumber"><xsl:call-template name="get-section-number" /></xsl:variable>
2867*912701f9SAndroid Build Coastguard Worker  <link rel="Chapter" title="{$sectionNumber} {@title}" href="#{$anchor-prefix}.section.{$sectionNumber}" />
2868*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates mode="links" />
2869*912701f9SAndroid Build Coastguard Worker</xsl:template>
2870*912701f9SAndroid Build Coastguard Worker
2871*912701f9SAndroid Build Coastguard Worker<xsl:template match="/*/back//section[not(myns:unnumbered) and not(ancestor::section)]" mode="links">
2872*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="sectionNumber"><xsl:call-template name="get-section-number" /></xsl:variable>
2873*912701f9SAndroid Build Coastguard Worker  <link rel="Appendix" title="{$sectionNumber} {@title}" href="#{$anchor-prefix}.section.{$sectionNumber}" />
2874*912701f9SAndroid Build Coastguard Worker  <xsl:apply-templates mode="links" />
2875*912701f9SAndroid Build Coastguard Worker</xsl:template>
2876*912701f9SAndroid Build Coastguard Worker
2877*912701f9SAndroid Build Coastguard Worker<!-- convenience templates -->
2878*912701f9SAndroid Build Coastguard Worker
2879*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-author-summary">
2880*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2881*912701f9SAndroid Build Coastguard Worker    <xsl:when test="count(/rfc/front/author)=1">
2882*912701f9SAndroid Build Coastguard Worker      <xsl:value-of select="/rfc/front/author[1]/@surname" />
2883*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2884*912701f9SAndroid Build Coastguard Worker    <xsl:when test="count(/rfc/front/author)=2">
2885*912701f9SAndroid Build Coastguard Worker      <xsl:value-of select="concat(/rfc/front/author[1]/@surname,' &amp; ',/rfc/front/author[2]/@surname)" />
2886*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2887*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>
2888*912701f9SAndroid Build Coastguard Worker      <xsl:value-of select="concat(/rfc/front/author[1]/@surname,', et al.')" />
2889*912701f9SAndroid Build Coastguard Worker    </xsl:otherwise>
2890*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2891*912701f9SAndroid Build Coastguard Worker</xsl:template>
2892*912701f9SAndroid Build Coastguard Worker
2893*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-authors">
2894*912701f9SAndroid Build Coastguard Worker  <xsl:for-each select="/rfc/front/author">
2895*912701f9SAndroid Build Coastguard Worker    <xsl:value-of select="@fullname" />
2896*912701f9SAndroid Build Coastguard Worker    <xsl:if test="position()!=last()">, </xsl:if>
2897*912701f9SAndroid Build Coastguard Worker  </xsl:for-each>
2898*912701f9SAndroid Build Coastguard Worker</xsl:template>
2899*912701f9SAndroid Build Coastguard Worker
2900*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-category-long">
2901*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2902*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$xml2rfc-footer"><xsl:value-of select="$xml2rfc-footer" /></xsl:when>
2903*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$xml2rfc-private"/> <!-- private draft, footer not set -->
2904*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@category='bcp'">Best Current Practice</xsl:when>
2905*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@category='historic'">Historic</xsl:when>
2906*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@category='info' or not(/rfc/@category)">Informational</xsl:when>
2907*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@category='std'">Standards Track</xsl:when>
2908*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@category='exp'">Experimental</xsl:when>
2909*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>(category unknown)</xsl:otherwise>
2910*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2911*912701f9SAndroid Build Coastguard Worker</xsl:template>
2912*912701f9SAndroid Build Coastguard Worker
2913*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-header-center">
2914*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2915*912701f9SAndroid Build Coastguard Worker    <xsl:when test="string-length(/rfc/front/title/@abbrev) &gt; 0">
2916*912701f9SAndroid Build Coastguard Worker      <xsl:value-of select="/rfc/front/title/@abbrev" />
2917*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2918*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>
2919*912701f9SAndroid Build Coastguard Worker      <xsl:value-of select="/rfc/front/title" />
2920*912701f9SAndroid Build Coastguard Worker    </xsl:otherwise>
2921*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2922*912701f9SAndroid Build Coastguard Worker</xsl:template>
2923*912701f9SAndroid Build Coastguard Worker
2924*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-header-left">
2925*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2926*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$xml2rfc-header"><xsl:value-of select="$xml2rfc-header" /></xsl:when>
2927*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$xml2rfc-private"/> <!-- private draft, header not set -->
2928*912701f9SAndroid Build Coastguard Worker    <xsl:when test="/rfc/@ipr">INTERNET DRAFT</xsl:when>
2929*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>RFC <xsl:value-of select="/rfc/@number"/></xsl:otherwise>
2930*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2931*912701f9SAndroid Build Coastguard Worker</xsl:template>
2932*912701f9SAndroid Build Coastguard Worker
2933*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-generator">
2934*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="gen">
2935*912701f9SAndroid Build Coastguard Worker    <xsl:text>http://greenbytes.de/tech/webdav/rfc2629.xslt, </xsl:text>
2936*912701f9SAndroid Build Coastguard Worker    <!-- when RCS keyword substitution in place, add version info -->
2937*912701f9SAndroid Build Coastguard Worker    <xsl:if test="contains('$Revision: 1.149 $',':')">
2938*912701f9SAndroid Build Coastguard Worker      <xsl:value-of select="concat('Revision ',normalize-space(translate(substring-after('$Revision: 1.149 $', 'Revision: '),'$','')),', ')" />
2939*912701f9SAndroid Build Coastguard Worker    </xsl:if>
2940*912701f9SAndroid Build Coastguard Worker    <xsl:value-of select="concat('XSLT vendor: ',system-property('xsl:vendor'),' ',system-property('xsl:vendor-url'))" />
2941*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
2942*912701f9SAndroid Build Coastguard Worker  <xsl:value-of select="$gen" />
2943*912701f9SAndroid Build Coastguard Worker</xsl:template>
2944*912701f9SAndroid Build Coastguard Worker
2945*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-header-right">
2946*912701f9SAndroid Build Coastguard Worker  <xsl:value-of select="concat(/rfc/front/date/@month,' ',/rfc/front/date/@year)" />
2947*912701f9SAndroid Build Coastguard Worker</xsl:template>
2948*912701f9SAndroid Build Coastguard Worker
2949*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-keywords">
2950*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="keyw">
2951*912701f9SAndroid Build Coastguard Worker    <xsl:for-each select="/rfc/front/keyword">
2952*912701f9SAndroid Build Coastguard Worker      <xsl:value-of select="translate(.,',',' ')" />
2953*912701f9SAndroid Build Coastguard Worker      <xsl:if test="position()!=last()">, </xsl:if>
2954*912701f9SAndroid Build Coastguard Worker    </xsl:for-each>
2955*912701f9SAndroid Build Coastguard Worker  </xsl:variable>
2956*912701f9SAndroid Build Coastguard Worker  <xsl:value-of select="normalize-space($keyw)" />
2957*912701f9SAndroid Build Coastguard Worker</xsl:template>
2958*912701f9SAndroid Build Coastguard Worker
2959*912701f9SAndroid Build Coastguard Worker<!-- get language from context node. nearest ancestor or return the default of "en" -->
2960*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-lang">
2961*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2962*912701f9SAndroid Build Coastguard Worker    <xsl:when test="ancestor-or-self::*[@xml:lang]"><xsl:value-of select="ancestor-or-self::*/@xml:lang" /></xsl:when>
2963*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>en</xsl:otherwise>
2964*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2965*912701f9SAndroid Build Coastguard Worker</xsl:template>
2966*912701f9SAndroid Build Coastguard Worker
2967*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-section-number">
2968*912701f9SAndroid Build Coastguard Worker  <xsl:variable name="hasEdits" select="count(//ed:del|//ed:ins)!=0" />
2969*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2970*912701f9SAndroid Build Coastguard Worker    <xsl:when test="$hasEdits">
2971*912701f9SAndroid Build Coastguard Worker      <xsl:call-template name="sectionnumberAndEdits" />
2972*912701f9SAndroid Build Coastguard Worker    </xsl:when>
2973*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>
2974*912701f9SAndroid Build Coastguard Worker      <xsl:choose>
2975*912701f9SAndroid Build Coastguard Worker        <xsl:when test="ancestor::back"><xsl:number count="ed:del|ed:ins|section|appendix" level="multiple" format="A.1.1.1.1.1.1.1" /></xsl:when>
2976*912701f9SAndroid Build Coastguard Worker        <xsl:when test="self::appendix"><xsl:number count="ed:del|ed:ins|appendix" level="multiple" format="A.1.1.1.1.1.1.1" /></xsl:when>
2977*912701f9SAndroid Build Coastguard Worker        <xsl:otherwise><xsl:number count="ed:del|ed:ins|section" level="multiple"/></xsl:otherwise>
2978*912701f9SAndroid Build Coastguard Worker      </xsl:choose>
2979*912701f9SAndroid Build Coastguard Worker    </xsl:otherwise>
2980*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2981*912701f9SAndroid Build Coastguard Worker</xsl:template>
2982*912701f9SAndroid Build Coastguard Worker
2983*912701f9SAndroid Build Coastguard Worker<xsl:template name="get-section-type">
2984*912701f9SAndroid Build Coastguard Worker  <xsl:param name="prec" />
2985*912701f9SAndroid Build Coastguard Worker  <xsl:choose>
2986*912701f9SAndroid Build Coastguard Worker    <xsl:when test="ancestor::back">Appendix</xsl:when>
2987*912701f9SAndroid Build Coastguard Worker    <xsl:otherwise>Section</xsl:otherwise>
2988*912701f9SAndroid Build Coastguard Worker  </xsl:choose>
2989*912701f9SAndroid Build Coastguard Worker</xsl:template>
2990*912701f9SAndroid Build Coastguard Worker
2991*912701f9SAndroid Build Coastguard Worker<xsl:template name="insert-conditional-pagebreak">
2992*912701f9SAndroid Build Coastguard Worker  <xsl:if test="$xml2rfc-compact!='yes'">
2993*912701f9SAndroid Build Coastguard Worker    <xsl:attribute name="class">np</xsl:attribute>
2994*912701f9SAndroid Build Coastguard Worker  </xsl:if>
2995*912701f9SAndroid Build Coastguard Worker</xsl:template>
2996*912701f9SAndroid Build Coastguard Worker
2997*912701f9SAndroid Build Coastguard Worker
2998*912701f9SAndroid Build Coastguard Worker</xsl:stylesheet>
2999