metanorma-nist 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,24 +1,8 @@
1
1
  <script>
2
- //TOC generation
3
- $('#toc').toc({
4
- 'selectors': toclevel(), //elements to use as headings
5
- 'container': 'body', //element to find all selectors in
6
- 'smoothScrolling': true, //enable or disable smooth scrolling on click
7
- 'prefix': 'toc', //prefix for anchor tags and class names
8
- 'onHighlight': function(el) {}, //called when a new section is highlighted
9
- 'highlightOnScroll': true, //add class to heading that is currently in focus
10
- 'highlightOffset': 100, //offset to trigger the next headline
11
- 'anchorName': function(i, heading, prefix) { //custom function for anchor name
12
- return prefix+i;
13
- },
14
- 'headerText': function(i, heading, $heading) { //custom function building the header-item text
15
- return $heading.text();
16
- },
17
- 'itemClass': function(i, heading, $heading, prefix) { // custom function for item class
18
- return $heading[0].tagName.toLowerCase();
19
- }
20
- });
21
-
2
+ $("#toc").on('click', 'li', function(e) {
3
+ $(this).parent().find('li.toc-active').removeClass('toc-active');
4
+ $(this).addClass('toc-active');
5
+ });
22
6
  </script>
23
7
 
24
8
  <script>
@@ -0,0 +1,3804 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xalan="http://xml.apache.org/xalan" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" version="1.0">
2
+
3
+ <xsl:output version="1.0" method="xml" encoding="UTF-8" indent="no"/>
4
+
5
+
6
+
7
+
8
+
9
+ <xsl:variable name="pageWidth" select="'8.5in'"/>
10
+ <xsl:variable name="pageHeight" select="'11in'"/>
11
+
12
+ <xsl:variable name="title" select="/nist:nist-standard/nist:bibdata/nist:title[@language = 'en' and @type = 'main']"/>
13
+
14
+ <xsl:variable name="date">
15
+ <xsl:choose>
16
+ <xsl:when test="/nist:nist-standard/nist:bibdata/nist:date[@type='issued']">
17
+ <xsl:call-template name="formatDate">
18
+ <xsl:with-param name="date" select="/nist:nist-standard/nist:bibdata/nist:date[@type='issued']/nist:on"/>
19
+ </xsl:call-template>
20
+ </xsl:when>
21
+ <xsl:otherwise>
22
+ <xsl:call-template name="formatDate">
23
+ <xsl:with-param name="date" select="/nist:nist-standard/nist:bibdata/nist:date/nist:on"/>
24
+ </xsl:call-template>
25
+ </xsl:otherwise>
26
+ </xsl:choose>
27
+ </xsl:variable>
28
+ <xsl:variable name="color">rgb(36, 64, 97)</xsl:variable>
29
+ <xsl:variable name="seriestitle" select="/nist:nist-standard/nist:bibdata/nist:series[@type = 'main']/nist:title"/>
30
+ <!-- Example:
31
+ <item level="1" id="Foreword" display="true">Foreword</item>
32
+ <item id="term-script" display="false">3.2</item>
33
+ -->
34
+ <xsl:variable name="contents">
35
+ <contents>
36
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:executivesummary" mode="contents"/>
37
+ <xsl:apply-templates select="/nist:nist-standard/nist:sections/*" mode="contents"/> <!-- /* Main sections -->
38
+ <xsl:apply-templates select="/nist:nist-standard/nist:annex" mode="contents"/>
39
+ <xsl:apply-templates select="/nist:nist-standard/nist:bibliography/nist:references" mode="contents"/>
40
+ </contents>
41
+ </xsl:variable>
42
+
43
+ <xsl:variable name="lang">
44
+ <xsl:call-template name="getLang"/>
45
+ </xsl:variable>
46
+
47
+ <xsl:template match="/">
48
+ <fo:root font-family="Times New Roman, STIX2Math" font-size="12pt" xml:lang="{$lang}">
49
+ <fo:layout-master-set>
50
+ <!-- Cover pages -->
51
+ <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
52
+ <fo:region-body margin-top="1.75in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
53
+ <fo:region-before region-name="header-cover" extent="1.75in"/>
54
+ <fo:region-after extent="1in"/>
55
+ <fo:region-start extent="1in"/>
56
+ <fo:region-end extent="1in"/>
57
+ </fo:simple-page-master>
58
+
59
+ <!-- Preface page(s) -->
60
+ <fo:simple-page-master master-name="preface" page-width="{$pageWidth}" page-height="{$pageHeight}">
61
+ <fo:region-body margin-top="1.15in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
62
+ <fo:region-before region-name="header-preface" extent="1.15in"/>
63
+ <fo:region-after region-name="footer" extent="1in"/>
64
+ <fo:region-start region-name="left" extent="1in"/>
65
+ <fo:region-end region-name="right" extent="1in"/>
66
+ </fo:simple-page-master>
67
+
68
+ <!-- Document pages -->
69
+ <fo:simple-page-master master-name="document" page-width="{$pageWidth}" page-height="{$pageHeight}">
70
+ <fo:region-body margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
71
+ <fo:region-before region-name="header" extent="1in"/>
72
+ <fo:region-after region-name="footer" extent="1in"/>
73
+ <fo:region-start region-name="left" extent="1in"/>
74
+ <fo:region-end region-name="right" extent="1in"/>
75
+ </fo:simple-page-master>
76
+
77
+ </fo:layout-master-set>
78
+
79
+ <fo:declarations>
80
+ <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
81
+ <pdf:dictionary type="normal" key="ViewerPreferences">
82
+ <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
83
+ </pdf:dictionary>
84
+ </pdf:catalog>
85
+ <x:xmpmeta xmlns:x="adobe:ns:meta/">
86
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
87
+ <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
88
+ <!-- Dublin Core properties go here -->
89
+ <dc:title><xsl:value-of select="$title"/></dc:title>
90
+ <dc:creator>
91
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata/nist:contributor[nist:role/@type = 'author']">
92
+ <xsl:value-of select="nist:person/nist:name/nist:completename"/>
93
+ <xsl:if test="position() != last()">; </xsl:if>
94
+ </xsl:for-each>
95
+ </dc:creator>
96
+ <dc:description>
97
+ <xsl:variable name="abstract">
98
+ <xsl:copy-of select="/nist:nist-standard/nist:preface/nist:abstract//text()"/>
99
+ </xsl:variable>
100
+ <xsl:value-of select="normalize-space($abstract)"/>
101
+ </dc:description>
102
+ <pdf:Keywords>
103
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata//nist:keyword">
104
+ <xsl:sort data-type="text" order="ascending"/>
105
+ <xsl:apply-templates/>
106
+ <xsl:if test="position() != last()">, </xsl:if>
107
+ </xsl:for-each>
108
+ </pdf:Keywords>
109
+ </rdf:Description>
110
+ <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
111
+ <!-- XMP properties go here -->
112
+ <xmp:CreatorTool/>
113
+ </rdf:Description>
114
+ </rdf:RDF>
115
+ </x:xmpmeta>
116
+ </fo:declarations>
117
+
118
+ <!-- cover page -->
119
+ <fo:page-sequence master-reference="cover-page" force-page-count="no-force">
120
+ <!-- header -->
121
+ <fo:static-content flow-name="header-cover" font-family="Times New Roman" font-size="11pt" font-weight="bold" font-style="italic">
122
+ <fo:block-container color="white" background-color="{$color}" margin-left="-1mm" margin-right="-1mm" margin-top="1in" display-align="after" height="5mm">
123
+ <fo:block text-align-last="justify" margin-left="1mm" margin-right="1mm" padding-left="0.5mm" padding-top="0.5mm">
124
+ <fo:inline padding-left="0.5mm"> <!-- font-size="7.5pt" -->
125
+ <!-- <xsl:call-template name="recursiveSmallCaps">
126
+ <xsl:with-param name="text" select="$seriestitle"/>
127
+ </xsl:call-template> -->
128
+ <xsl:value-of select="$seriestitle"/>
129
+ </fo:inline>
130
+ <fo:inline keep-together.within-line="always">
131
+ <fo:leader leader-pattern="space"/>
132
+ <xsl:text>csrc.nist.gov  </xsl:text>
133
+ <!-- <xsl:call-template name="recursiveSmallCaps">
134
+ <xsl:with-param name="text" select="'csrc.nist.gov&#xA0;&#xA0;'"/>
135
+ </xsl:call-template> -->
136
+ </fo:inline>
137
+ </fo:block>
138
+ </fo:block-container>
139
+ </fo:static-content>
140
+
141
+ <fo:flow flow-name="xsl-region-body" color="rgb(36, 64, 97)">
142
+ <!-- logo -->
143
+ <fo:block-container absolute-position="fixed" left="25.4mm" top="229mm">
144
+ <fo:block>
145
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-NIST-Logo))}" width="57mm" content-height="25.4mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image"/>
146
+ </fo:block>
147
+ </fo:block-container>
148
+
149
+ <xsl:if test="contains(/nist:nist-standard/nist:bibdata/nist:status/nist:stage, 'draft')">
150
+ <!-- <fo:block-container absolute-position="fixed" left="20mm" top="170mm" fox:transform="rotate(-45)">
151
+ <fo:block font-family="Calibri" font-size="180pt" color="rgb(223, 223, 223)">DRAFT</fo:block>
152
+ </fo:block-container> -->
153
+ <fo:block-container absolute-position="fixed" left="0mm" top="0mm">
154
+ <fo:block line-height="0">
155
+ <fo:instream-foreign-object fox:alt-text="DRAFT">
156
+ <svg:svg xmlns:svg="http://www.w3.org/2000/svg" width="200mm" height="250mm">
157
+ <svg:g transform="rotate(-45) scale(0.6, 1)">
158
+ <svg:text x="-175mm" y="205mm" style="font-family:Calibri;font-size:260pt;font-weight:normal;fill:rgb(223, 223, 223);">
159
+ DRAFT
160
+ </svg:text>
161
+ </svg:g>
162
+ </svg:svg>
163
+ </fo:instream-foreign-object>
164
+ </fo:block>
165
+ </fo:block-container>
166
+ </xsl:if>
167
+
168
+
169
+ <fo:block>
170
+ <fo:block font-family="Arial" font-size="24pt" font-weight="bold" margin-top="12pt" margin-bottom="18pt" letter-spacing="-0.5pt" margin-right="-2mm">
171
+ <xsl:value-of select="$title"/>
172
+ </fo:block>
173
+ <fo:block margin-bottom="12pt"> </fo:block>
174
+ <fo:block margin-bottom="20pt"> </fo:block>
175
+
176
+ <!-- Authors list -->
177
+ <fo:block line-height="116%">
178
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata/nist:contributor[nist:role/@type = 'author']">
179
+ <xsl:value-of select="nist:person/nist:name/nist:completename"/>
180
+ <xsl:variable name="org-name" select="nist:person/nist:affiliation/nist:organization/nist:name"/>
181
+ <xsl:variable name="org-address" select="nist:person/nist:affiliation/nist:organization/nist:address/nist:formattedAddress"/>
182
+ <xsl:if test="concat(following-sibling::nist:contributor[nist:role/@type = 'author'][1]/nist:person/nist:affiliation/nist:organization/nist:name, following-sibling::nist:contributor[nist:role/@type = 'author'][1]/nist:person/nist:affiliation/nist:organization/nist:address/nist:formattedAddress) != concat($org-name, $org-address)">
183
+
184
+ <xsl:for-each select="xalan:tokenize($org-name, ',')">
185
+ <fo:block>
186
+ <fo:inline font-style="italic">
187
+ <xsl:value-of select="."/>
188
+ <!-- <xsl:if test="normalize-space($org-address) != ''">
189
+ <fo:inline>, <xsl:value-of select="$org-address"/></fo:inline>
190
+ </xsl:if> -->
191
+ </fo:inline>
192
+ </fo:block>
193
+ </xsl:for-each>
194
+
195
+ <xsl:if test="normalize-space($org-address) != ''">
196
+ <fo:block>
197
+ <fo:inline font-style="italic">
198
+ <xsl:value-of select="$org-address"/>
199
+ </fo:inline>
200
+ </fo:block>
201
+ </xsl:if>
202
+ </xsl:if>
203
+ <xsl:value-of select="$linebreak"/>
204
+ </xsl:for-each>
205
+ </fo:block>
206
+ <fo:block margin-bottom="22pt"> </fo:block>
207
+ <fo:block margin-bottom="12pt"> <!-- font-size="14pt" -->
208
+ <xsl:value-of select="$date"/>
209
+ </fo:block>
210
+ <fo:block margin-bottom="12pt"> </fo:block>
211
+
212
+ <!-- <xsl:if test="/nist:nist-standard/nist:bibdata/nist:uri[@type = 'doi']">
213
+ <fo:block>
214
+ <xsl:text>This publication is available free of charge from:</xsl:text>
215
+ <xsl:value-of select="$linebreak"/>
216
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:uri[@type = 'doi']"/>
217
+ </fo:block>
218
+ </xsl:if> -->
219
+
220
+ </fo:block>
221
+ </fo:flow>
222
+ </fo:page-sequence>
223
+
224
+
225
+ <fo:page-sequence master-reference="preface" initial-page-number="2" format="i" force-page-count="no-force" line-height="116%">
226
+
227
+ <fo:static-content flow-name="xsl-footnote-separator">
228
+ <fo:block margin-bottom="4mm">
229
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
230
+ </fo:block>
231
+ </fo:static-content>
232
+ <xsl:call-template name="insertFooter"/>
233
+
234
+ <fo:flow flow-name="xsl-region-body">
235
+ <fo:block margin-top="18pt">
236
+
237
+ <!-- Abstract -->
238
+ <xsl:if test="/nist:nist-standard/nist:preface/nist:abstract">
239
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-bottom="12pt">Abstract</fo:block>
240
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:abstract"/>
241
+ </xsl:if>
242
+
243
+ <!-- Keywords -->
244
+ <xsl:if test="/nist:nist-standard/nist:bibdata/nist:keyword">
245
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-bottom="12pt">
246
+ <xsl:text>Keywords</xsl:text>
247
+ </fo:block>
248
+ <fo:block margin-bottom="12pt" text-align="justify">
249
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata//nist:keyword">
250
+ <xsl:sort data-type="text" order="ascending"/>
251
+ <xsl:apply-templates/>
252
+ <xsl:choose>
253
+ <xsl:when test="position() != last()">; </xsl:when>
254
+ <xsl:otherwise/>
255
+ </xsl:choose>
256
+ </xsl:for-each>
257
+ </fo:block>
258
+ </xsl:if>
259
+
260
+ <xsl:if test="/nist:nist-standard/nist:preface/nist:acknowledgements">
261
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-top="18pt" margin-bottom="12pt">Acknowledgements</fo:block>
262
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:acknowledgements"/>
263
+ </xsl:if>
264
+
265
+
266
+ <!-- Disclaimer -->
267
+ <!-- Additional Information -->
268
+ <!-- Comments on this publication may be submitted to -->
269
+ <xsl:if test="/nist:nist-standard/nist:boilerplate/nist:legal-statement">
270
+ <xsl:apply-templates select="/nist:nist-standard/nist:boilerplate/nist:legal-statement"/>
271
+ </xsl:if>
272
+
273
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-bottom="12pt">Feedback</fo:block>
274
+ <xsl:text>Feedback on this publication is welcome, and can be sent to: code-signing@nist.gov.</xsl:text>
275
+
276
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:clause"/>
277
+
278
+ <fo:block break-after="page"/>
279
+
280
+ <!-- <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:foreword"/> -->
281
+
282
+ <!-- Executive summary -->
283
+ <!-- <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:executivesummary"/> -->
284
+
285
+ <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
286
+ DEBUG
287
+ contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
288
+ <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
289
+
290
+ <!-- CONTENTS -->
291
+ <!-- <fo:block break-after="page"/>
292
+ <fo:block-container font-family="Arial">
293
+ <fo:block font-family="Arial Black" font-size="12pt" margin-top="4pt" margin-bottom="12pt" text-align="center">Table of Contents</fo:block>
294
+ <xsl:for-each select="xalan:nodeset($contents)//item[not(@type = 'table') and not(@type = 'figure')]">
295
+ <xsl:if test="@display = 'true'">
296
+ <fo:block color="{$color}">
297
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
298
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
299
+ <xsl:if test="@level = 1">
300
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
301
+ </xsl:if>
302
+ <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
303
+ <xsl:if test="@level &gt;= 2 and @section != ''">
304
+ <xsl:attribute name="margin-left">21.5mm</xsl:attribute>
305
+ </xsl:if>
306
+ <xsl:if test="@type = 'annex'">
307
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
308
+ </xsl:if>
309
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
310
+ <xsl:if test="@section != '' and not(@display-section = 'false')">
311
+ <fo:inline>
312
+ <xsl:if test="not(@type = 'annex')">
313
+ <xsl:attribute name="padding-right">
314
+ <xsl:choose>
315
+ <xsl:when test="@level = 1">6mm</xsl:when>
316
+ <xsl:otherwise>5mm</xsl:otherwise>
317
+ </xsl:choose>
318
+ </xsl:attribute>
319
+ </xsl:if>
320
+ <xsl:value-of select="@section"/>
321
+ <xsl:choose>
322
+ <xsl:when test="@type = 'annex'">
323
+ <xsl:text> — </xsl:text>
324
+ </xsl:when>
325
+ <xsl:otherwise>
326
+ <xsl:text>. </xsl:text>
327
+ </xsl:otherwise>
328
+ </xsl:choose>
329
+ </fo:inline>
330
+ </xsl:if>
331
+ <xsl:value-of select="text()"/><xsl:text> </xsl:text>
332
+ <fo:inline keep-together.within-line="always">
333
+ <fo:leader leader-pattern="dots"/>
334
+ <fo:page-number-citation ref-id="{@id}"/>
335
+ </fo:inline>
336
+ </fo:basic-link>
337
+ </fo:block>
338
+ </fo:block>
339
+ </xsl:if>
340
+ </xsl:for-each>
341
+
342
+ <xsl:if test="xalan:nodeset($contents)//item[@type = 'figure']">
343
+ <fo:block font-size="12pt">&#xA0;</fo:block>
344
+ <fo:block font-size="12pt">&#xA0;</fo:block>
345
+ <fo:block font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt">List of Figures</fo:block>
346
+ <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'figure']">
347
+ <fo:block text-align-last="justify" margin-top="6pt" margin-bottom="6pt">
348
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
349
+ <xsl:value-of select="@section"/>
350
+ <xsl:if test="text() != ''">
351
+ <xsl:text> — </xsl:text>
352
+ <xsl:value-of select="text()"/>
353
+ </xsl:if>
354
+ <fo:inline keep-together.within-line="always">
355
+ <fo:leader leader-pattern="dots"/>
356
+ <fo:page-number-citation ref-id="{@id}"/>
357
+ </fo:inline>
358
+ </fo:basic-link>
359
+ </fo:block>
360
+ </xsl:for-each>
361
+ </xsl:if>
362
+
363
+ <xsl:if test="xalan:nodeset($contents)//item[@type = 'table']">
364
+ <fo:block font-size="12pt">&#xA0;</fo:block>
365
+ <fo:block font-size="12pt">&#xA0;</fo:block>
366
+ <fo:block font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt">List of Tables</fo:block>
367
+ <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'table']">
368
+ <fo:block text-align-last="justify" margin-top="6pt" margin-bottom="6pt">
369
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
370
+ <xsl:value-of select="@section"/>
371
+ <xsl:if test="text() != ''">
372
+ <xsl:text> — </xsl:text>
373
+ <xsl:value-of select="text()"/>
374
+ </xsl:if>
375
+ <fo:inline keep-together.within-line="always">
376
+ <fo:leader leader-pattern="dots"/>
377
+ <fo:page-number-citation ref-id="{@id}"/>
378
+ </fo:inline>
379
+ </fo:basic-link>
380
+ </fo:block>
381
+ </xsl:for-each>
382
+ </xsl:if>
383
+ </fo:block-container> -->
384
+ </fo:block>
385
+ </fo:flow>
386
+ </fo:page-sequence>
387
+
388
+ <!-- BODY -->
389
+ <fo:page-sequence master-reference="document" initial-page-number="1" force-page-count="no-force" line-height="116%">
390
+ <fo:static-content flow-name="xsl-footnote-separator">
391
+ <fo:block margin-bottom="4mm">
392
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
393
+ </fo:block>
394
+ </fo:static-content>
395
+
396
+ <xsl:call-template name="insertHeaderFooter"/>
397
+
398
+ <fo:flow flow-name="xsl-region-body">
399
+ <!-- Clause(s) -->
400
+ <fo:block>
401
+ <xsl:apply-templates select="/nist:nist-standard/nist:sections/*"/>
402
+
403
+ <xsl:apply-templates select="/nist:nist-standard/nist:annex"/>
404
+
405
+ <!-- Bibliography -->
406
+ <xsl:apply-templates select="/nist:nist-standard/nist:bibliography/nist:references"/>
407
+
408
+ </fo:block>
409
+
410
+ </fo:flow>
411
+ </fo:page-sequence>
412
+
413
+
414
+ </fo:root>
415
+ </xsl:template>
416
+
417
+ <!-- for pass the paremeter 'sectionNum' over templates, like 'tunnel' parameter in XSLT 2.0 -->
418
+ <xsl:template match="node()">
419
+ <xsl:param name="sectionNum"/>
420
+ <xsl:param name="sectionNumSkew"/>
421
+ <xsl:apply-templates>
422
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
423
+ <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
424
+ </xsl:apply-templates>
425
+ </xsl:template>
426
+
427
+ <!-- ============================= -->
428
+ <!-- CONTENTS -->
429
+ <!-- ============================= -->
430
+ <xsl:template match="node()" mode="contents">
431
+ <xsl:param name="sectionNum"/>
432
+ <xsl:param name="sectionNumSkew"/>
433
+ <xsl:apply-templates mode="contents">
434
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
435
+ <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
436
+ </xsl:apply-templates>
437
+ </xsl:template>
438
+
439
+ <!-- calculate main section number (1,2,3) and pass it deep into templates -->
440
+ <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
441
+ <xsl:template match="nist:nist-standard/nist:sections/*" mode="contents">
442
+ <xsl:param name="sectionNum"/>
443
+ <xsl:param name="sectionNumSkew" select="0"/>
444
+ <xsl:variable name="sectionNum_">
445
+ <xsl:choose>
446
+ <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
447
+ <xsl:when test="$sectionNumSkew != 0">
448
+ <xsl:variable name="number"><xsl:number count="*"/></xsl:variable>
449
+ <xsl:value-of select="$number + $sectionNumSkew"/>
450
+ </xsl:when>
451
+ <xsl:otherwise>
452
+ <xsl:number count="*"/>
453
+ </xsl:otherwise>
454
+ </xsl:choose>
455
+ </xsl:variable>
456
+ <xsl:apply-templates mode="contents">
457
+ <xsl:with-param name="sectionNum" select="$sectionNum_"/>
458
+ </xsl:apply-templates>
459
+ </xsl:template>
460
+
461
+ <!-- Any node with title element - clause, definition, annex,... -->
462
+ <xsl:template match="nist:title | nist:preferred" mode="contents">
463
+ <xsl:param name="sectionNum"/>
464
+
465
+ <xsl:variable name="id">
466
+ <xsl:choose>
467
+ <xsl:when test="../@id">
468
+ <xsl:value-of select="../@id"/>
469
+ </xsl:when>
470
+ <xsl:otherwise>
471
+ <xsl:value-of select="text()"/>
472
+ </xsl:otherwise>
473
+ </xsl:choose>
474
+ </xsl:variable>
475
+
476
+ <xsl:variable name="level">
477
+ <xsl:call-template name="getLevel"/>
478
+ </xsl:variable>
479
+
480
+ <xsl:variable name="section">
481
+ <xsl:call-template name="getSection">
482
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
483
+ </xsl:call-template>
484
+ </xsl:variable>
485
+
486
+ <xsl:variable name="display">
487
+ <xsl:choose>
488
+ <!-- <xsl:when test="ancestor::itu:annex">true</xsl:when> -->
489
+ <xsl:when test="ancestor::nist:annex and $level &gt;= 2">false</xsl:when>
490
+ <xsl:when test="$level &lt;= 2">true</xsl:when>
491
+ <xsl:otherwise>false</xsl:otherwise>
492
+ </xsl:choose>
493
+ </xsl:variable>
494
+
495
+ <xsl:variable name="type">
496
+ <xsl:value-of select="local-name(..)"/>
497
+ </xsl:variable>
498
+
499
+ <item id="{$id}" level="{$level}" section="{$section}" display="{$display}" type="{$type}">
500
+ <xsl:value-of select="."/>
501
+ </item>
502
+
503
+ <xsl:apply-templates mode="contents">
504
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
505
+ </xsl:apply-templates>
506
+ </xsl:template>
507
+
508
+ <xsl:template match="nist:bibitem" mode="contents"/>
509
+
510
+ <xsl:template match="nist:figure" mode="contents">
511
+ <xsl:param name="sectionNum"/>
512
+ <item level="" id="{@id}" type="figure">
513
+ <xsl:attribute name="section">
514
+ <xsl:text>Figure </xsl:text>
515
+ <xsl:choose>
516
+ <xsl:when test="ancestor::nist:annex">
517
+ <xsl:choose>
518
+ <xsl:when test="count(//nist:annex) = 1">
519
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/><xsl:number format="-1" level="any" count="nist:annex//nist:figure"/>
520
+ </xsl:when>
521
+ <xsl:otherwise>
522
+ <xsl:number format="A.1-1" level="multiple" count="nist:annex | nist:figure"/>
523
+ </xsl:otherwise>
524
+ </xsl:choose>
525
+ </xsl:when>
526
+ <xsl:when test="ancestor::nist:figure">
527
+ <xsl:for-each select="parent::*[1]">
528
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
529
+ </xsl:for-each>
530
+ <xsl:number format="-a" count="nist:figure"/>
531
+ </xsl:when>
532
+ <xsl:otherwise>
533
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
534
+ <!-- <xsl:number format="1.1-1" level="multiple" count="nist:annex | nist:figure"/> -->
535
+ </xsl:otherwise>
536
+ </xsl:choose>
537
+ </xsl:attribute>
538
+ <xsl:value-of select="nist:name"/>
539
+ </item>
540
+ </xsl:template>
541
+
542
+ <xsl:template match="nist:table" mode="contents">
543
+ <xsl:param name="sectionNum"/>
544
+ <xsl:variable name="annex-id" select="ancestor::nist:annex/@id"/>
545
+ <item level="" id="{@id}" display="false" type="table">
546
+ <xsl:attribute name="section">
547
+ <xsl:text>Table </xsl:text>
548
+ <xsl:choose>
549
+ <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
550
+ <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table']"/>
551
+ </xsl:when>
552
+ <xsl:when test="ancestor::*[local-name()='annex']">
553
+ <xsl:number format="A-" count="nist:annex"/>
554
+ <xsl:number format="1" level="any" count="nist:table[ancestor::nist:annex[@id = $annex-id]]"/>
555
+ </xsl:when>
556
+ <xsl:otherwise>
557
+ <!-- <xsl:number format="1"/> -->
558
+ <xsl:number format="1" level="any" count="*[local-name()='sections']//*[local-name()='table']"/>
559
+ </xsl:otherwise>
560
+ </xsl:choose>
561
+ </xsl:attribute>
562
+ <xsl:value-of select="nist:name/text()"/>
563
+ </item>
564
+ </xsl:template>
565
+
566
+ <xsl:template match="nist:formula" mode="contents">
567
+ <xsl:param name="sectionNum"/>
568
+ <item level="" id="{@id}" display="false">
569
+ <xsl:attribute name="section">
570
+ <xsl:text>Formula (</xsl:text><xsl:number format="A.1" level="multiple" count="nist:annex | nist:formula"/><xsl:text>)</xsl:text>
571
+ </xsl:attribute>
572
+ </item>
573
+ </xsl:template>
574
+
575
+ <xsl:template match="nist:example" mode="contents">
576
+ <xsl:param name="sectionNum"/>
577
+ <xsl:variable name="level">
578
+ <xsl:call-template name="getLevel"/>
579
+ </xsl:variable>
580
+ <xsl:variable name="section">
581
+ <xsl:call-template name="getSection">
582
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
583
+ </xsl:call-template>
584
+ </xsl:variable>
585
+
586
+ <xsl:variable name="parent-element" select="local-name(..)"/>
587
+ <item level="" id="{@id}" display="false" type="Example" section="{$section}">
588
+ <xsl:attribute name="parent">
589
+ <xsl:choose>
590
+ <xsl:when test="$parent-element = 'clause'">Clause</xsl:when>
591
+ <xsl:otherwise/>
592
+ </xsl:choose>
593
+ </xsl:attribute>
594
+ </item>
595
+ <xsl:apply-templates mode="contents">
596
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
597
+ </xsl:apply-templates>
598
+ </xsl:template>
599
+
600
+ <xsl:template match="nist:terms" mode="contents">
601
+ <item level="" id="{@id}" display="false" type="Terms">
602
+ <xsl:if test="ancestor::nist:annex">
603
+ <xsl:attribute name="section">
604
+ <xsl:text>Appendix </xsl:text><xsl:number format="A" count="nist:annex"/>
605
+ </xsl:attribute>
606
+ </xsl:if>
607
+ </item>
608
+ </xsl:template>
609
+
610
+ <xsl:template match="nist:references" mode="contents">
611
+ <item level="" id="{@id}" display="false" type="References">
612
+ <xsl:choose>
613
+ <xsl:when test="ancestor::nist:annex">
614
+ <xsl:attribute name="section">
615
+ <xsl:text>Appendix </xsl:text><xsl:number format="A" count="nist:annex"/>
616
+ </xsl:attribute>
617
+ </xsl:when>
618
+ <xsl:otherwise>
619
+ <xsl:attribute name="level">1</xsl:attribute>
620
+ <xsl:attribute name="display">true</xsl:attribute>
621
+ <xsl:text>References</xsl:text>
622
+ </xsl:otherwise>
623
+ </xsl:choose>
624
+ </item>
625
+ </xsl:template>
626
+
627
+ <!-- ============================= -->
628
+ <!-- ============================= -->
629
+
630
+
631
+
632
+ <!-- ============================= -->
633
+ <!-- Authority -->
634
+ <!-- ============================= -->
635
+ <xsl:template match="/nist:nist-standard/nist:boilerplate/nist:feedback-statement/nist:clause">
636
+ <fo:block font-family="Arial" font-size="12pt" space-before="6pt">
637
+ <xsl:apply-templates>
638
+ <xsl:with-param name="margin">12pt</xsl:with-param>
639
+ </xsl:apply-templates>
640
+ </fo:block>
641
+ </xsl:template>
642
+ <!-- ============================= -->
643
+ <!-- ============================= -->
644
+
645
+
646
+
647
+ <!-- ============================= -->
648
+ <!-- PARAGRAPHS -->
649
+ <!-- ============================= -->
650
+ <xsl:template match="nist:p">
651
+ <xsl:param name="margin"/>
652
+ <fo:block>
653
+ <xsl:attribute name="margin-bottom">
654
+ <xsl:choose>
655
+ <xsl:when test="(local-name(..) = 'td' or local-name(..) = 'th') and ancestor::nist:annex">0</xsl:when>
656
+ <xsl:when test="$margin != ''"><xsl:value-of select="$margin"/></xsl:when>
657
+ <xsl:otherwise>12pt</xsl:otherwise>
658
+ </xsl:choose>
659
+ </xsl:attribute>
660
+ <xsl:attribute name="text-align">
661
+ <xsl:choose>
662
+ <xsl:when test="@align"><xsl:value-of select="@align"/></xsl:when>
663
+ <xsl:when test="ancestor::nist:preface or ancestor::nist:boilerplate">justify</xsl:when>
664
+ <xsl:otherwise>left</xsl:otherwise>
665
+ </xsl:choose>
666
+ </xsl:attribute>
667
+ <xsl:apply-templates/>
668
+ </fo:block>
669
+ </xsl:template>
670
+
671
+ <xsl:template match="nist:note/nist:p" name="note">
672
+ <fo:block font-size="11pt" space-before="4pt">
673
+ <xsl:text>NOTE </xsl:text>
674
+ <xsl:if test="../following-sibling::nist:note or ../preceding-sibling::nist:note">
675
+ <xsl:number count="nist:note"/><xsl:text> </xsl:text>
676
+ </xsl:if>
677
+ <xsl:text>– </xsl:text>
678
+ <xsl:apply-templates/>
679
+ </fo:block>
680
+ </xsl:template>
681
+
682
+ <xsl:template match="nist:recommendation">
683
+ <fo:block margin-left="20mm">
684
+ <fo:block font-weight="bold">
685
+ <xsl:text>Recommendation </xsl:text>
686
+ <xsl:choose>
687
+ <xsl:when test="ancestor::nist:sections">
688
+ <xsl:number level="any" count="nist:sections//nist:recommendation"/>
689
+ </xsl:when>
690
+ <xsl:when test="ancestor::*[local-name()='annex']">
691
+ <xsl:variable name="annex-id" select="ancestor::*[local-name()='annex']/@id"/>
692
+ <xsl:number format="A-" count="nist:annex"/>
693
+ <xsl:number format="1" level="any" count="nist:recommendation[ancestor::nist:annex[@id = $annex-id]]"/>
694
+ <!-- <xsl:number format="A-1" level="multiple" count="nist:annex | nist:recommendation"/> -->
695
+ </xsl:when>
696
+ </xsl:choose>
697
+ <xsl:text>:</xsl:text>
698
+ </fo:block>
699
+ <xsl:apply-templates/>
700
+ </fo:block>
701
+ </xsl:template>
702
+
703
+ <xsl:template match="nist:admonition">
704
+ <fo:block-container border="1pt solid black" margin-left="-2mm" margin-right="-2mm" padding-top="6mm" padding-bottom="7mm" background-color="rgb(222,222,222)">
705
+ <fo:block margin-left="8mm" margin-right="8mm">
706
+ <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
707
+ <xsl:choose>
708
+ <xsl:when test="@type='important'">IMPORTANT</xsl:when>
709
+ <xsl:when test="@type='tip'">
710
+ <xsl:apply-templates select="nist:name" mode="process"/>
711
+ </xsl:when>
712
+ <xsl:otherwise>
713
+ <xsl:apply-templates select="nist:name" mode="process"/>
714
+ </xsl:otherwise>
715
+ </xsl:choose>
716
+ </fo:block>
717
+ <xsl:apply-templates/>
718
+ </fo:block>
719
+ </fo:block-container>
720
+ <fo:block margin-bottom="6pt"> </fo:block>
721
+ </xsl:template>
722
+
723
+ <xsl:template match="nist:admonition/nist:name"/>
724
+ <xsl:template match="nist:admonition/nist:name" mode="process">
725
+ <xsl:apply-templates/>
726
+ </xsl:template>
727
+
728
+ <xsl:template match="nist:admonition/nist:p">
729
+ <fo:block><xsl:apply-templates/></fo:block>
730
+ </xsl:template>
731
+
732
+ <!-- ============================= -->
733
+ <!-- ============================= -->
734
+
735
+
736
+ <!-- ============================= -->
737
+ <!-- Bibliography -->
738
+ <!-- ============================= -->
739
+
740
+
741
+ <xsl:template match="nist:references">
742
+ <fo:block break-after="page"/>
743
+ <fo:block>
744
+ <xsl:if test="not(nist:title)">
745
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
746
+ </xsl:if>
747
+ <xsl:apply-templates/>
748
+ </fo:block>
749
+ </xsl:template>
750
+
751
+
752
+ <!-- Example: [ITU-T A.23] ITU-T A.23, Recommendation ITU-T A.23, Annex A (2014), Guide for ITU-T and ISO/IEC JTC 1 cooperation. -->
753
+ <xsl:template match="nist:bibitem">
754
+
755
+ <fo:list-block margin-bottom="12pt" provisional-distance-between-starts="12mm">
756
+ <fo:list-item>
757
+ <fo:list-item-label end-indent="label-end()">
758
+ <fo:block>
759
+ <fo:inline id="{@id}">
760
+ <!-- <xsl:number format="[1]"/> -->
761
+ <xsl:value-of select="nist:docidentifier"/>
762
+ </fo:inline>
763
+ </fo:block>
764
+ </fo:list-item-label>
765
+ <fo:list-item-body start-indent="body-start()">
766
+ <fo:block>
767
+ <xsl:choose>
768
+ <xsl:when test="nist:title[@type = 'main' and @language = 'en']">
769
+ <xsl:apply-templates select="nist:title[@type = 'main' and @language = 'en']"/>
770
+ </xsl:when>
771
+ <xsl:otherwise>
772
+ <xsl:apply-templates select="nist:title"/>
773
+ </xsl:otherwise>
774
+ </xsl:choose>
775
+ <xsl:apply-templates select="nist:formattedref"/>
776
+ </fo:block>
777
+ </fo:list-item-body>
778
+ </fo:list-item>
779
+ </fo:list-block>
780
+ </xsl:template>
781
+
782
+ <!-- ============================= -->
783
+ <!-- ============================= -->
784
+
785
+
786
+ <xsl:template match="text()">
787
+ <xsl:value-of select="."/>
788
+ </xsl:template>
789
+
790
+
791
+ <!-- calculate main section number (1,2,3) and pass it deep into templates -->
792
+ <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
793
+ <xsl:template match="nist:nist-standard/nist:sections/*">
794
+ <xsl:param name="sectionNum"/>
795
+ <xsl:param name="sectionNumSkew" select="0"/>
796
+ <fo:block>
797
+ <xsl:variable name="sectionNum_">
798
+ <xsl:choose>
799
+ <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
800
+ <xsl:when test="$sectionNumSkew != 0">
801
+ <xsl:variable name="number"><xsl:number count="*"/></xsl:variable>
802
+ <xsl:value-of select="$number + $sectionNumSkew"/>
803
+ </xsl:when>
804
+ <xsl:otherwise>
805
+ <xsl:number count="*"/>
806
+ </xsl:otherwise>
807
+ </xsl:choose>
808
+ </xsl:variable>
809
+ <xsl:apply-templates>
810
+ <xsl:with-param name="sectionNum" select="$sectionNum_"/>
811
+ </xsl:apply-templates>
812
+ </fo:block>
813
+ <xsl:if test="position() != last()">
814
+ <fo:block break-after="page"/>
815
+ </xsl:if>
816
+ </xsl:template>
817
+
818
+
819
+ <xsl:template match="nist:title">
820
+ <xsl:param name="sectionNum"/>
821
+ <xsl:variable name="id">
822
+ <xsl:choose>
823
+ <xsl:when test="../@id">
824
+ <xsl:value-of select="../@id"/>
825
+ </xsl:when>
826
+ <xsl:otherwise>
827
+ <xsl:value-of select="text()"/>
828
+ </xsl:otherwise>
829
+ </xsl:choose>
830
+ </xsl:variable>
831
+
832
+ <xsl:variable name="parent-name" select="local-name(..)"/>
833
+ <xsl:variable name="references_num_current">
834
+ <xsl:number level="any" count="nist:references"/>
835
+ </xsl:variable>
836
+
837
+ <xsl:variable name="level">
838
+ <xsl:call-template name="getLevel"/>
839
+ </xsl:variable>
840
+
841
+ <xsl:variable name="font-size">
842
+ <xsl:choose>
843
+ <xsl:when test="$level = 1">12pt</xsl:when>
844
+ <xsl:when test="$level &gt;= 2">11pt</xsl:when>
845
+ <xsl:otherwise>11pt</xsl:otherwise>
846
+ </xsl:choose>
847
+ </xsl:variable>
848
+
849
+ <xsl:variable name="space-after">
850
+ <xsl:choose>
851
+ <xsl:when test="$level = 2">12pt</xsl:when>
852
+ <xsl:otherwise>6pt</xsl:otherwise>
853
+ </xsl:choose>
854
+ </xsl:variable>
855
+
856
+ <xsl:variable name="section">
857
+ <xsl:call-template name="getSection">
858
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
859
+ </xsl:call-template>
860
+ </xsl:variable>
861
+
862
+ <xsl:choose>
863
+ <xsl:when test="ancestor::nist:legal-statement">
864
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt" color="{$color}">
865
+ <xsl:apply-templates/>
866
+ </fo:block>
867
+ </xsl:when>
868
+ <xsl:when test="ancestor::nist:executivesummary">
869
+ <fo:block-container color="white" background-color="black" margin-bottom="12pt">
870
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="left" margin-left="4mm" padding-top="1mm">
871
+ <xsl:apply-templates/>
872
+ </fo:block>
873
+ </fo:block-container>
874
+ </xsl:when>
875
+ <xsl:when test="ancestor::nist:preface">
876
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" space-before="12pt" margin-bottom="12pt" color="{$color}">
877
+ <xsl:apply-templates/>
878
+ </fo:block>
879
+ </xsl:when>
880
+ <xsl:when test="$parent-name = 'references'"> <!-- and $references_num_current != 1 -->
881
+ <fo:block-container color="white" background-color="{$color}" margin-bottom="12pt" keep-with-next="always" height="5mm" margin-left="-0.5mm" margin-right="-0.5mm">
882
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" margin-left="1mm" padding-top="0.3mm">
883
+ <!-- <xsl:apply-templates /> -->
884
+ <xsl:text>References</xsl:text>
885
+ </fo:block>
886
+ </fo:block-container>
887
+ </xsl:when>
888
+ <xsl:when test="ancestor::nist:annex and $level &gt;= 3">
889
+ <fo:block id="{$id}" font-family="Arial" font-size="11pt" font-weight="bold" margin-top="3pt" margin-bottom="12pt">
890
+ <xsl:if test="$parent-name != 'references'">
891
+ <xsl:value-of select="$section"/><xsl:text>. </xsl:text>
892
+ </xsl:if>
893
+ <xsl:apply-templates/>
894
+ </fo:block>
895
+ </xsl:when>
896
+ <xsl:when test="ancestor::nist:annex and $level &gt;= 2">
897
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" margin-top="3pt" margin-bottom="12pt">
898
+ <xsl:if test="$parent-name != 'references'">
899
+ <xsl:value-of select="$section"/><xsl:text>. </xsl:text>
900
+ </xsl:if>
901
+ <xsl:apply-templates/>
902
+ </fo:block>
903
+ </xsl:when>
904
+ <xsl:when test="$level = 1">
905
+ <fo:block-container color="white" background-color="{$color}" margin-bottom="12pt" keep-with-next="always" height="6mm" margin-left="-2mm" margin-right="-2mm">
906
+ <fo:block id="{$id}" font-family="Arial" font-size="{$font-size}" font-weight="bold" text-align="left" keep-with-next="always" margin-left="4mm" padding-top="1mm">
907
+ <xsl:choose>
908
+ <xsl:when test="$parent-name != 'annex'">
909
+ <fo:inline padding-right="7.5mm"><xsl:value-of select="$section"/></fo:inline> <!-- . -->
910
+ </xsl:when>
911
+ <xsl:otherwise>
912
+ <fo:inline><xsl:value-of select="$section"/> — </fo:inline>
913
+ </xsl:otherwise>
914
+ </xsl:choose>
915
+ <xsl:apply-templates/>
916
+ </fo:block>
917
+ </fo:block-container>
918
+ </xsl:when>
919
+ <xsl:otherwise>
920
+ <fo:block id="{$id}" font-family="Arial" font-size="{$font-size}" color="{$color}" font-weight="bold" text-align="left" space-after="{$space-after}" keep-with-next="always">
921
+ <fo:inline padding-right="4mm"><xsl:value-of select="$section"/>.</fo:inline>
922
+ <xsl:apply-templates/>
923
+ </fo:block>
924
+ </xsl:otherwise>
925
+ </xsl:choose>
926
+ </xsl:template>
927
+
928
+
929
+ <xsl:template match="nist:preferred2">
930
+ <xsl:param name="sectionNum"/>
931
+ <!-- DEBUG need -->
932
+ <fo:block space-before="6pt" text-align="justify">
933
+ <fo:inline id="{../@id}" padding-right="5mm" font-weight="bold">
934
+ <!-- <xsl:value-of select="$sectionNum"/><xsl:number format=".1" level="multiple" count="itu:clause/itu:clause | itu:clause/itu:terms | itu:terms/itu:term"/> -->
935
+ <xsl:variable name="section">
936
+ <xsl:call-template name="getSection">
937
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
938
+ </xsl:call-template>
939
+ </xsl:variable>
940
+ <xsl:value-of select="$section"/>
941
+ </fo:inline>
942
+ <fo:inline font-weight="bold">
943
+ <xsl:apply-templates/>
944
+ </fo:inline>
945
+ <xsl:if test="../nist:termsource/nist:origin">
946
+ <xsl:text> [</xsl:text><xsl:value-of select="../nist:termsource/nist:origin/@citeas"/><xsl:text>]</xsl:text>
947
+ </xsl:if>
948
+ <xsl:text>: </xsl:text>
949
+ <xsl:apply-templates select="following-sibling::nist:definition/node()" mode="process"/> <!-- -->
950
+ </fo:block>
951
+ </xsl:template>
952
+
953
+
954
+ <xsl:template match="nist:p//nist:fn[not(ancestor::nist:table)] | nist:title/nist:fn | nist:table/nist:name/nist:fn" priority="2">
955
+ <fo:footnote>
956
+ <xsl:variable name="number">
957
+ <xsl:number level="any" count="nist:p//nist:fn[not(ancestor::nist:table)] | nist:title/nist:fn | nist:table/nist:name/nist:fn"/>
958
+ </xsl:variable>
959
+ <fo:inline font-size="60%" keep-with-previous.within-line="always" vertical-align="super">
960
+ <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
961
+ <xsl:value-of select="$number + count(//nist:bibitem/nist:note)"/>
962
+ </fo:basic-link>
963
+ </fo:inline>
964
+ <fo:footnote-body>
965
+ <fo:block-container margin-left="3mm">
966
+ <fo:block font-size="9pt" font-family="Times New Roman" font-style="normal" font-weight="normal" margin-left="-3mm" margin-top="6pt" margin-bottom="12pt" start-indent="0mm" text-indent="-2mm" line-height="10pt" page-break-inside="avoid">
967
+ <fo:inline id="footnote_{@reference}_{$number}" font-size="75%" keep-with-next.within-line="always" vertical-align="super" padding-right="1mm"> <!-- alignment-baseline="hanging" -->
968
+ <xsl:value-of select="$number + count(//nist:bibitem/nist:note)"/>
969
+ </fo:inline>
970
+ <xsl:for-each select="nist:p">
971
+ <xsl:apply-templates/>
972
+ </xsl:for-each>
973
+ </fo:block>
974
+ </fo:block-container>
975
+ </fo:footnote-body>
976
+ </fo:footnote>
977
+ </xsl:template>
978
+
979
+
980
+ <xsl:template match="*[local-name()='tt']" priority="2">
981
+ <xsl:variable name="element-name">
982
+ <xsl:choose>
983
+ <xsl:when test="normalize-space(ancestor::nist:p[1]//text()[not(parent::nist:tt)]) != ''">fo:inline</xsl:when>
984
+ <xsl:otherwise>fo:block</xsl:otherwise>
985
+ </xsl:choose>
986
+ </xsl:variable>
987
+ <xsl:element name="{$element-name}">
988
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
989
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
990
+ <xsl:attribute name="text-align">center</xsl:attribute>
991
+ <xsl:apply-templates/>
992
+ </xsl:element>
993
+ </xsl:template>
994
+
995
+
996
+ <xsl:template match="nist:figure">
997
+ <fo:block-container id="{@id}">
998
+ <fo:block>
999
+ <xsl:apply-templates/>
1000
+ </fo:block>
1001
+ <xsl:call-template name="fn_display_figure"/>
1002
+ <xsl:for-each select="nist:note//nist:p">
1003
+ <xsl:call-template name="note"/>
1004
+ </xsl:for-each>
1005
+ <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-previous="always">
1006
+ <xsl:text>Figure </xsl:text>
1007
+ <xsl:choose>
1008
+ <xsl:when test="ancestor::nist:annex">
1009
+ <xsl:choose>
1010
+ <xsl:when test="count(//nist:annex) = 1">
1011
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/><xsl:number format="-1" level="any" count="nist:annex//nist:figure"/>
1012
+ </xsl:when>
1013
+ <xsl:otherwise>
1014
+ <xsl:number format="A-1-1" level="multiple" count="nist:annex | nist:figure"/>
1015
+ </xsl:otherwise>
1016
+ </xsl:choose>
1017
+ </xsl:when>
1018
+ <xsl:when test="ancestor::nist:figure">
1019
+ <xsl:for-each select="parent::*[1]">
1020
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
1021
+ </xsl:for-each>
1022
+ <xsl:number format="-a" count="nist:figure"/>
1023
+ </xsl:when>
1024
+ <xsl:otherwise>
1025
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
1026
+ </xsl:otherwise>
1027
+ </xsl:choose>
1028
+ <xsl:if test="nist:name">
1029
+ <xsl:text> — </xsl:text>
1030
+ <xsl:value-of select="nist:name"/>
1031
+ </xsl:if>
1032
+ </fo:block>
1033
+ </fo:block-container>
1034
+ </xsl:template>
1035
+
1036
+ <xsl:template match="nist:figure/nist:name"/>
1037
+ <xsl:template match="nist:figure/nist:fn" priority="2"/>
1038
+ <xsl:template match="nist:figure/nist:note"/>
1039
+
1040
+
1041
+ <xsl:template match="nist:figure2[@class = 'pseudocode']">
1042
+ <fo:block>
1043
+ <xsl:apply-templates/>
1044
+ </fo:block>
1045
+ </xsl:template>
1046
+
1047
+ <xsl:template match="nist:figure2[@class = 'pseudocode']//nist:p">
1048
+ <fo:block font-size="10pt" margin-top="6pt" margin-bottom="6pt">
1049
+ <xsl:apply-templates/>
1050
+ </fo:block>
1051
+ </xsl:template>
1052
+
1053
+
1054
+ <xsl:template match="nist:image">
1055
+ <fo:block text-align="center">
1056
+ <!-- <fo:external-graphic src="{@src}" content-width="75%" content-height="scale-to-fit" scaling="uniform"/> -->
1057
+ <fo:external-graphic src="{@src}" width="75%" content-height="100%" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image"/>
1058
+ </fo:block>
1059
+ </xsl:template>
1060
+
1061
+
1062
+ <!-- Examples:
1063
+ [b-ASM] b-ASM, http://www.eecs.umich.edu/gasm/ (accessed 20 March 2018).
1064
+ [b-Börger & Stärk] b-Börger & Stärk, Börger, E., and Stärk, R. S. (2003), Abstract State Machines: A Method for High-Level System Design and Analysis, Springer-Verlag.
1065
+ -->
1066
+ <xsl:template match="nist:annex//nist:bibitem">
1067
+ <fo:block id="{@id}" margin-top="6pt" margin-left="12mm" text-indent="-12mm">
1068
+ <xsl:if test="nist:formattedref">
1069
+ <xsl:choose>
1070
+ <xsl:when test="nist:docidentifier[@type = 'metanorma']">
1071
+ <xsl:attribute name="margin-left">0</xsl:attribute>
1072
+ <xsl:attribute name="text-indent">0</xsl:attribute>
1073
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1074
+ <!-- create list -->
1075
+ <fo:list-block>
1076
+ <fo:list-item>
1077
+ <fo:list-item-label end-indent="label-end()">
1078
+ <fo:block>
1079
+ <xsl:apply-templates select="nist:docidentifier[@type = 'metanorma']" mode="process"/>
1080
+ </fo:block>
1081
+ </fo:list-item-label>
1082
+ <fo:list-item-body start-indent="body-start()">
1083
+ <fo:block margin-left="3mm">
1084
+ <xsl:apply-templates select="nist:formattedref"/>
1085
+ </fo:block>
1086
+ </fo:list-item-body>
1087
+ </fo:list-item>
1088
+ </fo:list-block>
1089
+ </xsl:when>
1090
+ <xsl:otherwise>
1091
+ <xsl:apply-templates select="nist:formattedref"/>
1092
+ <xsl:apply-templates select="nist:docidentifier[@type != 'metanorma' or not(@type)]" mode="process"/>
1093
+ </xsl:otherwise>
1094
+ </xsl:choose>
1095
+
1096
+
1097
+ </xsl:if>
1098
+ <xsl:if test="nist:title">
1099
+ <xsl:for-each select="nist:contributor">
1100
+ <xsl:value-of select="nist:organization/nist:name"/>
1101
+ <xsl:if test="position() != last()">, </xsl:if>
1102
+ </xsl:for-each>
1103
+ <xsl:text> (</xsl:text>
1104
+
1105
+ <xsl:value-of select="$date"/>
1106
+ <xsl:text>) </xsl:text>
1107
+ <fo:inline font-style="italic"><xsl:value-of select="nist:title"/></fo:inline>
1108
+ <xsl:if test="nist:contributor[nist:role/@type='publisher']/nist:organization/nist:name">
1109
+ <xsl:text> (</xsl:text><xsl:value-of select="nist:contributor[nist:role/@type='publisher']/nist:organization/nist:name"/><xsl:text>)</xsl:text>
1110
+ </xsl:if>
1111
+ <xsl:text>, </xsl:text>
1112
+ <xsl:value-of select="$date"/>
1113
+ <xsl:text>. </xsl:text>
1114
+ <xsl:value-of select="nist:docidentifier"/>
1115
+ <xsl:value-of select="$linebreak"/>
1116
+ <xsl:value-of select="nist:uri"/>
1117
+ </xsl:if>
1118
+ </fo:block>
1119
+ </xsl:template>
1120
+
1121
+ <xsl:template match="nist:annex//nist:bibitem//nist:formattedref">
1122
+ <xsl:apply-templates/>
1123
+ </xsl:template>
1124
+
1125
+ <xsl:template match="nist:docidentifier[@type = 'metanorma']" mode="process">
1126
+ <xsl:apply-templates/>
1127
+ </xsl:template>
1128
+ <xsl:template match="nist:docidentifier[@type != 'metanorma' or not(@type)]" mode="process">
1129
+ <xsl:text> [</xsl:text><xsl:apply-templates/><xsl:text>]</xsl:text>
1130
+ </xsl:template>
1131
+ <xsl:template match="nist:docidentifier"/>
1132
+
1133
+
1134
+
1135
+ <xsl:template match="nist:annex//nist:note/nist:p">
1136
+ <fo:block font-size="11pt" margin-top="4pt">
1137
+ <xsl:text>NOTE </xsl:text>
1138
+ <xsl:if test="../following-sibling::nist:note or ../preceding-sibling::nist:note">
1139
+ <xsl:number count="nist:note"/><xsl:text> </xsl:text>
1140
+ </xsl:if>
1141
+ <xsl:text>– </xsl:text>
1142
+ <xsl:apply-templates/>
1143
+ </fo:block>
1144
+ </xsl:template>
1145
+
1146
+ <xsl:template match="nist:ul | nist:ol">
1147
+ <fo:list-block>
1148
+ <xsl:apply-templates/>
1149
+ </fo:list-block>
1150
+ <xsl:apply-templates select="./nist:note" mode="process"/>
1151
+ </xsl:template>
1152
+
1153
+ <xsl:template match="nist:ul//nist:note | nist:ol//nist:note"/>
1154
+ <xsl:template match="nist:ul//nist:note/nist:p | nist:ol//nist:note/nist:p" mode="process">
1155
+ <fo:block font-size="11pt" margin-top="4pt">
1156
+ <xsl:text>NOTE </xsl:text>
1157
+ <xsl:if test="../following-sibling::nist:note or ../preceding-sibling::nist:note">
1158
+ <xsl:number count="nist:note"/><xsl:text> </xsl:text>
1159
+ </xsl:if>
1160
+ <xsl:text>– </xsl:text>
1161
+ <xsl:apply-templates/>
1162
+ </fo:block>
1163
+ </xsl:template>
1164
+
1165
+ <xsl:template match="nist:li">
1166
+ <xsl:variable name="level">
1167
+ <xsl:variable name="numtmp">
1168
+ <xsl:number level="multiple" count="nist:ol"/>
1169
+ </xsl:variable>
1170
+ <!-- level example: 1.1
1171
+ calculate counts of '.' in numtmp value - level of nested lists
1172
+ -->
1173
+ <xsl:value-of select="string-length($numtmp) - string-length(translate($numtmp, '.', '')) + 1"/>
1174
+ </xsl:variable>
1175
+ <fo:list-item>
1176
+ <fo:list-item-label end-indent="label-end()">
1177
+ <fo:block>
1178
+ <xsl:choose>
1179
+ <!-- <xsl:when test="local-name(..) = 'ul'">&#x2014;</xsl:when>--> <!-- dash -->
1180
+ <xsl:when test="local-name(..) = 'ul'">•</xsl:when>
1181
+ <xsl:otherwise> <!-- for ordered lists -->
1182
+ <xsl:choose>
1183
+ <xsl:when test="../@type = 'arabic'">
1184
+ <xsl:number format="a)"/>
1185
+ </xsl:when>
1186
+ <xsl:when test="../@type = 'alphabet'">
1187
+ <xsl:number format="1)"/>
1188
+ </xsl:when>
1189
+ <xsl:when test="ancestor::*[nist:annex]">
1190
+ <xsl:choose>
1191
+ <xsl:when test="$level = 1">
1192
+ <xsl:number format="a)"/>
1193
+ </xsl:when>
1194
+ <xsl:when test="$level = 2">
1195
+ <xsl:number format="i)"/>
1196
+ </xsl:when>
1197
+ <xsl:otherwise>
1198
+ <xsl:number format="1.)"/>
1199
+ </xsl:otherwise>
1200
+ </xsl:choose>
1201
+ </xsl:when>
1202
+ <xsl:otherwise>
1203
+ <xsl:number format="1."/>
1204
+ </xsl:otherwise>
1205
+ </xsl:choose>
1206
+ </xsl:otherwise>
1207
+ </xsl:choose>
1208
+ </fo:block>
1209
+ </fo:list-item-label>
1210
+ <fo:list-item-body start-indent="body-start()">
1211
+ <xsl:apply-templates/>
1212
+ <xsl:apply-templates select=".//nist:note" mode="process"/>
1213
+ </fo:list-item-body>
1214
+ </fo:list-item>
1215
+ </xsl:template>
1216
+
1217
+ <xsl:template match="nist:li//nist:p">
1218
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
1219
+ <fo:block margin-bottom="6pt">
1220
+ <xsl:if test="$num &gt;= 2">
1221
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1222
+ </xsl:if>
1223
+ <xsl:apply-templates/>
1224
+ </fo:block>
1225
+ </xsl:template>
1226
+
1227
+ <xsl:template match="nist:link">
1228
+ <xsl:if test="ancestor::nist:formattedref">
1229
+ <xsl:value-of select="$linebreak"/>
1230
+ </xsl:if>
1231
+ <fo:basic-link external-destination="{@target}" color="blue" text-decoration="underline" fox:alt-text="link {@target}">
1232
+ <xsl:choose>
1233
+ <xsl:when test="normalize-space(.) = ''">
1234
+ <xsl:choose>
1235
+ <xsl:when test="starts-with(@target, 'mailto:')">
1236
+ <xsl:value-of select="substring-after(@target, 'mailto:')"/>
1237
+ </xsl:when>
1238
+ <xsl:otherwise>
1239
+ <xsl:value-of select="@target"/>
1240
+ </xsl:otherwise>
1241
+ </xsl:choose>
1242
+ </xsl:when>
1243
+ <xsl:otherwise>
1244
+ <xsl:apply-templates/>
1245
+ </xsl:otherwise>
1246
+ </xsl:choose>
1247
+ </fo:basic-link>
1248
+ <!-- </fo:inline> -->
1249
+ </xsl:template>
1250
+
1251
+
1252
+ <xsl:template match="nist:termnote">
1253
+ <fo:block margin-top="4pt">
1254
+ <xsl:text>NOTE </xsl:text>
1255
+ <xsl:if test="following-sibling::nist:termnote or preceding-sibling::nist:termnote">
1256
+ <xsl:number/><xsl:text> </xsl:text>
1257
+ </xsl:if>
1258
+ <xsl:text>– </xsl:text>
1259
+ <xsl:apply-templates/>
1260
+ </fo:block>
1261
+ </xsl:template>
1262
+ <xsl:template match="nist:termnote/nist:p">
1263
+ <xsl:apply-templates/>
1264
+ </xsl:template>
1265
+
1266
+
1267
+ <xsl:template match="nist:annex">
1268
+ <fo:block break-after="page"/>
1269
+ <xsl:apply-templates/>
1270
+ </xsl:template>
1271
+
1272
+ <xsl:template match="nist:formula" name="formula">
1273
+ <fo:block id="{@id}" margin-top="6pt"> <!-- text-align="center" -->
1274
+ <fo:table table-layout="fixed" width="100%">
1275
+ <fo:table-column column-width="95%"/>
1276
+ <fo:table-column column-width="5%"/>
1277
+ <fo:table-body>
1278
+ <fo:table-row>
1279
+ <fo:table-cell>
1280
+ <fo:block text-align="center">
1281
+ <xsl:if test="ancestor::nist:annex">
1282
+ <xsl:attribute name="text-align">left</xsl:attribute>
1283
+ <xsl:attribute name="margin-left">7mm</xsl:attribute>
1284
+ </xsl:if>
1285
+ <xsl:apply-templates/>
1286
+ </fo:block>
1287
+ </fo:table-cell>
1288
+ <fo:table-cell> <!-- display-align="center" -->
1289
+ <fo:block text-align="right">
1290
+ <xsl:if test="not(ancestor::nist:annex)">
1291
+ <xsl:text>(</xsl:text><xsl:number level="any"/><xsl:text>)</xsl:text>
1292
+ </xsl:if>
1293
+ <xsl:if test="ancestor::nist:annex">
1294
+ <xsl:variable name="annex-id" select="ancestor::nist:annex/@id"/>
1295
+ <xsl:text>(</xsl:text>
1296
+ <xsl:number format="A-" count="nist:annex"/>
1297
+ <xsl:number format="1" level="any" count="nist:formula[ancestor::nist:annex[@id = $annex-id]]"/>
1298
+ <xsl:text>)</xsl:text>
1299
+ </xsl:if>
1300
+ </fo:block>
1301
+ </fo:table-cell>
1302
+ </fo:table-row>
1303
+ </fo:table-body>
1304
+ </fo:table>
1305
+ <fo:inline keep-together.within-line="always">
1306
+ </fo:inline>
1307
+ </fo:block>
1308
+ </xsl:template>
1309
+
1310
+ <xsl:template match="nist:formula" mode="process">
1311
+ <xsl:call-template name="formula"/>
1312
+ </xsl:template>
1313
+
1314
+ <xsl:template match="nist:xref">
1315
+ <xsl:param name="sectionNum"/>
1316
+
1317
+ <xsl:variable name="section" select="xalan:nodeset($contents)//item[@id = current()/@target]/@section"/>
1318
+
1319
+ <fo:basic-link internal-destination="{@target}" text-decoration="underline" color="blue" fox:alt-text="{@target}">
1320
+ <xsl:variable name="type" select="xalan:nodeset($contents)//item[@id = current()/@target]/@type"/>
1321
+ <xsl:choose>
1322
+ <xsl:when test="$type = 'clause'">Section </xsl:when><!-- and not (ancestor::annex) -->
1323
+ <xsl:when test="$type = 'Example'">Example </xsl:when>
1324
+ <xsl:otherwise/> <!-- <xsl:value-of select="$type"/> -->
1325
+ </xsl:choose>
1326
+
1327
+ <xsl:choose>
1328
+ <xsl:when test="$type = 'Example'">
1329
+ <xsl:variable name="currentSection">
1330
+ <xsl:call-template name="getSection"/>
1331
+ </xsl:variable>
1332
+ <xsl:if test="not(contains($section, $currentSection))">
1333
+ <xsl:text>in </xsl:text>
1334
+ <xsl:value-of select="xalan:nodeset($contents)//item[@id = current()/@target]/@parent"/>
1335
+ <xsl:text> </xsl:text>
1336
+ <xsl:value-of select="$section"/>
1337
+ </xsl:if>
1338
+ </xsl:when>
1339
+ <xsl:otherwise>
1340
+ <xsl:choose>
1341
+ <xsl:when test="$section != ''"><xsl:value-of select="$section"/></xsl:when>
1342
+ <xsl:otherwise>???</xsl:otherwise>
1343
+ </xsl:choose>
1344
+ </xsl:otherwise>
1345
+ </xsl:choose>
1346
+
1347
+ </fo:basic-link>
1348
+ </xsl:template>
1349
+
1350
+
1351
+ <xsl:template match="nist:example">
1352
+ <fo:block id="{@id}" font-size="10pt" font-weight="bold" margin-bottom="12pt">EXAMPLE</fo:block>
1353
+ <fo:block font-size="11pt" margin-top="12pt" margin-bottom="12pt" margin-left="15mm">
1354
+ <xsl:apply-templates/>
1355
+ </fo:block>
1356
+ </xsl:template>
1357
+ <xsl:template match="nist:example/nist:p">
1358
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
1359
+ <fo:block margin-bottom="12pt">
1360
+ <xsl:if test="$num = 1">
1361
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
1362
+ </xsl:if>
1363
+ <xsl:apply-templates/>
1364
+ </fo:block>
1365
+ </xsl:template>
1366
+
1367
+ <!-- <xsl:template match="itu:example/itu:name">
1368
+ <fo:block font-weight="bold">
1369
+ <xsl:text>EXAMPLE</xsl:text>
1370
+ <xsl:if test="count(ancestor::itu:clause[1]/itu:example) &gt; 1">
1371
+ <xsl:text> </xsl:text><xsl:number count="itu:example"/>
1372
+ </xsl:if>
1373
+ <xsl:text> — </xsl:text>
1374
+ <xsl:apply-templates />
1375
+ </fo:block>
1376
+ </xsl:template> -->
1377
+
1378
+
1379
+
1380
+
1381
+ <xsl:template match="nist:eref">
1382
+ <!-- <fo:inline color="blue"> -->
1383
+ <fo:basic-link internal-destination="{@bibitemid}" color="blue" fox:alt-text="{@citeas}">
1384
+ <xsl:if test="@type = 'footnote'">
1385
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
1386
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1387
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1388
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1389
+ </xsl:if>
1390
+ <xsl:if test="@type = 'inline'">
1391
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1392
+ </xsl:if>
1393
+ <!-- <xsl:text>[</xsl:text> --><xsl:value-of select="@citeas" disable-output-escaping="yes"/><!-- <xsl:text>]</xsl:text> -->
1394
+ <xsl:if test="nist:locality">
1395
+ <xsl:text>, </xsl:text>
1396
+ <xsl:choose>
1397
+ <xsl:when test="nist:locality/@type = 'section'">Section </xsl:when>
1398
+ <xsl:when test="nist:locality/@type = 'clause'">Clause </xsl:when>
1399
+ <xsl:otherwise/>
1400
+ </xsl:choose>
1401
+ <xsl:apply-templates select="nist:locality"/>
1402
+ </xsl:if>
1403
+ </fo:basic-link>
1404
+ <!-- </fo:inline> -->
1405
+ </xsl:template>
1406
+
1407
+
1408
+ <xsl:template match="nist:terms[nist:term[nist:preferred and nist:definition]]">
1409
+ <fo:block id="{@id}">
1410
+ <fo:table width="100%" table-layout="fixed">
1411
+ <fo:table-column column-width="22%"/>
1412
+ <fo:table-column column-width="78%"/>
1413
+ <fo:table-body>
1414
+ <xsl:apply-templates mode="table"/>
1415
+ </fo:table-body>
1416
+ </fo:table>
1417
+ </fo:block>
1418
+ </xsl:template>
1419
+ <xsl:template match="nist:term" mode="table">
1420
+ <fo:table-row>
1421
+ <fo:table-cell padding-right="1mm">
1422
+ <fo:block margin-bottom="12pt">
1423
+ <xsl:apply-templates select="nist:preferred"/>
1424
+ </fo:block>
1425
+ </fo:table-cell>
1426
+ <fo:table-cell>
1427
+ <fo:block margin-bottom="12pt">
1428
+ <xsl:apply-templates select="nist:*[local-name(.) != 'preferred']"/>
1429
+ </fo:block>
1430
+ </fo:table-cell>
1431
+ </fo:table-row>
1432
+ </xsl:template>
1433
+ <xsl:template match="nist:preferred">
1434
+ <fo:inline id="{../@id}">
1435
+ <xsl:apply-templates/>
1436
+ </fo:inline>
1437
+ </xsl:template>
1438
+ <xsl:template match="nist:definition/nist:p">
1439
+ <fo:block>
1440
+ <xsl:apply-templates/>
1441
+ </fo:block>
1442
+ </xsl:template>
1443
+
1444
+ <xsl:template match="nist:errata">
1445
+ <!-- <row>
1446
+ <date>05-07-2013</date>
1447
+ <type>Editorial</type>
1448
+ <change>Changed CA-9 Priority Code from P1 to P2 in <xref target="tabled2"/>.</change>
1449
+ <pages>D-3</pages>
1450
+ </row>
1451
+ -->
1452
+ <fo:table table-layout="fixed" width="100%" font-size="10pt" border="1pt solid black">
1453
+ <fo:table-column column-width="20mm"/>
1454
+ <fo:table-column column-width="23mm"/>
1455
+ <fo:table-column column-width="107mm"/>
1456
+ <fo:table-column column-width="15mm"/>
1457
+ <fo:table-body>
1458
+ <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
1459
+ <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
1460
+ <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
1461
+ <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
1462
+ <fo:table-cell border="1pt solid black"><fo:block>Pages</fo:block></fo:table-cell>
1463
+ </fo:table-row>
1464
+ <xsl:apply-templates/>
1465
+ </fo:table-body>
1466
+ </fo:table>
1467
+ </xsl:template>
1468
+
1469
+ <xsl:template match="nist:errata/nist:row">
1470
+ <fo:table-row>
1471
+ <xsl:apply-templates/>
1472
+ </fo:table-row>
1473
+ </xsl:template>
1474
+
1475
+ <xsl:template match="nist:errata/nist:row/*">
1476
+ <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
1477
+ <fo:block><xsl:apply-templates/></fo:block>
1478
+ </fo:table-cell>
1479
+ </xsl:template>
1480
+
1481
+ <xsl:template match="nist:quote">
1482
+ <fo:block-container margin-left="7mm" margin-right="7mm">
1483
+ <xsl:apply-templates/>
1484
+ <xsl:apply-templates select="nist:author" mode="process"/>
1485
+ </fo:block-container>
1486
+ </xsl:template>
1487
+
1488
+ <xsl:template match="nist:quote/nist:author"/>
1489
+ <xsl:template match="nist:quote/nist:p">
1490
+ <fo:block text-align="justify" margin-bottom="12pt">
1491
+ <xsl:apply-templates/>
1492
+ </fo:block>
1493
+ </xsl:template>
1494
+ <xsl:template match="nist:quote/nist:author" mode="process">
1495
+ <fo:block text-align="right" margin-left="0.5in" margin-right="0.5in">
1496
+ <fo:inline>— </fo:inline>
1497
+ <xsl:apply-templates/>
1498
+ </fo:block>
1499
+ </xsl:template>
1500
+
1501
+ <xsl:template match="nist:sourcecode">
1502
+ <fo:block font-family="Courier" font-size="10pt" margin-top="6pt" margin-bottom="6pt">
1503
+ <!-- <xsl:choose>
1504
+ <xsl:when test="@lang = 'en'"></xsl:when>
1505
+ <xsl:otherwise> -->
1506
+ <xsl:attribute name="white-space">pre</xsl:attribute>
1507
+ <xsl:attribute name="wrap-option">wrap</xsl:attribute>
1508
+ <!-- </xsl:otherwise>
1509
+ </xsl:choose> -->
1510
+ <xsl:apply-templates/>
1511
+ </fo:block>
1512
+ </xsl:template>
1513
+
1514
+ <!-- <xsl:template match="nist:dt//nist:stem">
1515
+ <xsl:apply-templates />
1516
+ <xsl:value-of select="$linebreak"/>
1517
+ </xsl:template> -->
1518
+
1519
+
1520
+
1521
+ <xsl:template name="insertHeaderFooter">
1522
+ <xsl:call-template name="insertHeader"/>
1523
+ <xsl:call-template name="insertFooter"/>
1524
+ </xsl:template>
1525
+
1526
+ <xsl:template name="insertHeader">
1527
+ <fo:static-content flow-name="header" font-family="Arial" font-size="7.5pt">
1528
+ <fo:block-container height="1in" display-align="before" color="{$color}">
1529
+ <fo:block padding-top="0.5in" margin-bottom="7pt" line-height="115%"> <!-- text-align-last="justify" -->
1530
+ <fo:table table-layout="fixed" width="100%">
1531
+ <fo:table-column column-width="70%"/>
1532
+ <fo:table-column column-width="30%"/>
1533
+ <fo:table-body>
1534
+ <fo:table-row>
1535
+ <fo:table-cell>
1536
+ <fo:block>
1537
+ <xsl:call-template name="recursiveSmallCaps">
1538
+ <xsl:with-param name="text" select="$seriestitle"/>
1539
+ </xsl:call-template>
1540
+ </fo:block>
1541
+ </fo:table-cell>
1542
+ <fo:table-cell>
1543
+ <fo:block text-align="right">
1544
+ <xsl:call-template name="recursiveSmallCaps">
1545
+ <xsl:with-param name="text" select="$title"/>
1546
+ </xsl:call-template>
1547
+ </fo:block>
1548
+ </fo:table-cell>
1549
+ </fo:table-row>
1550
+ </fo:table-body>
1551
+ </fo:table>
1552
+ <!-- <xsl:call-template name="recursiveSmallCaps">
1553
+ <xsl:with-param name="text" select="$seriestitle"/>
1554
+ </xsl:call-template>
1555
+ <fo:inline keep-together.within-line="always">
1556
+ <fo:leader leader-pattern="space"/>
1557
+ <xsl:call-template name="recursiveSmallCaps">
1558
+ <xsl:with-param name="text" select="$title"/>
1559
+ </xsl:call-template>
1560
+ </fo:inline> -->
1561
+ </fo:block>
1562
+ <!-- <fo:block>
1563
+ <xsl:call-template name="recursiveSmallCaps">
1564
+ <xsl:with-param name="text" select="$date"/>
1565
+ </xsl:call-template>
1566
+ </fo:block> -->
1567
+ </fo:block-container>
1568
+ </fo:static-content>
1569
+ </xsl:template>
1570
+
1571
+ <xsl:template name="insertFooter">
1572
+ <fo:static-content flow-name="footer" font-size="11pt">
1573
+ <fo:block-container height="1in" display-align="after" color="{$color}">
1574
+ <fo:block text-align="center" padding-bottom="0.65in"><fo:page-number/></fo:block>
1575
+ </fo:block-container>
1576
+ </fo:static-content>
1577
+ </xsl:template>
1578
+
1579
+ <xsl:variable name="Image-NIST-Logo">
1580
+ <xsl:text>iVBORw0KGgoAAAANSUhEUgAAAewAAADcCAYAAACyJ5J5AAAAAXNSR0IArs4c6QAAAHhlWElm
1581
+ TU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAAB
1582
+ AAAATgAAAAAAAADcAAAAAQAAANwAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAeygAwAE
1583
+ AAAAAQAAANwAAAAAx9V0RQAAAAlwSFlzAAAh1QAAIdUBBJy0nQAAQABJREFUeAHsXQVgnMXW
1584
+ vfGk7u7UaKGlQKHFi7u7Ow8eD+chjx93KO6uRQvFCgUKpUpL3d3dNS7/OXd2dr/dbJLdjTXJ
1585
+ TJv9bPSM3Dt37tyJE7iCgoJEXOJ4y2fnHAIOAYeAQ8Ah4BDYvRCIA7FuhCy9j7/WJWUNfiUu
1586
+ jnQ94Ejh9U1BQTxu4kD94wNf4xggH8/4g88CfOYrEyLgrVreeXmfYMwiKy7xgk8ELQBuIbCH
1587
+ RFHg47RiRRbhkZZJI5a8hmSnqEcLSTkmUVTS7v3uhQBbrA4Xmq2aMibsXnXgclP1ECDBboFs
1588
+ T8RfiQS7uOLl5RfI5m07JT0jC13REJvk5ERpWLeOpKUmFRfUfXMIOAQcAg4Bh4BDoAQEKArn
1589
+ vCe7BH9hPy9fvV7GTZ4jf0+dJwuXrJQNm7fJjvQMitjhP05SUpKlcf260qFNc+nbq4sc2ndv
1590
+ 6b5HG4mP90zCw8ZcPV5u3b5Llq5cJ/GcUUY5q8zPz5cWzRpJiyYNSwy8cu0G2Qjs4zlFLn4q
1591
+ HgQsq4l5a9+6udSrWzvoW3k/bAFzt3nrdtmVCQYPzF4U2S7vrLn4KwgB1ntqaop0bt9KEhJq
1592
+ xphQQdC6ZKopApxhN0fZxuGvY6RlnDxzoXwyZLgMHztNNmzZqqKtxIQEEOI40W6H0RdSXAjC
1593
+ CySvIF/ycvMlH/d169SSg/frIZeceZQcsv9ekpSYAE+GuEeadlXy9/OIf+Rf97wg8Ungi4hH
1594
+ FC4zK1vuuvZcueXKM0oMdf/zH8nbn/0sqWkp8Es8S3YUR1IqkoK8vfbIjXL0wX0QqPzqgszc
1595
+ zHlL5Z/p82X63MWycs0GWb9pm2SgnOqixKfkEjofuzcCcZKTnSO9u7SXQa/eJ/Xr1tq9s+ty
1596
+ 5xDYDRDgDLtY5123Xr56gwx852v55a9JsjM9XZKTk6QWOORwTsffBBLweBBm4yM3N1d+HTVJ
1597
+ RoyfroT7tqvOlD49O4cLXj3eAYQCMjE6xY6uSFHNlpGOMktMJwJ6zbrhH3/iECaw8q1vo8to
1598
+ Mb4pbRk5fob8OPxvmTp7sazbuFWysnI0Tc6o+BeQtkSQ8WLScp+qFgLUhclD28urIdK2qlU7
1599
+ Lre7KwIlEmyrZPb7mCny6CuDZN6iFSDSaVIrLdUn+o68aByc00DgyQQMHztVZsxbIrdccaZc
1600
+ fPqRkqiz7cjjqio+iZ/FMJo8RxNGSW4U6ViCjSAx5a2kcmzfmS4//jFeBn0/QmZgNp2bk6fM
1601
+ Heu4Vq0UZRZIno3iEa7MiKPXJcFarb7bfhFNO69WALjCOARiQKAIgs3RMzDb+mLoSLl/4IeS
1602
+ kZktdWvX1oFWl6mjTNBqhnJ8rg2Cv21Huvzfcx9BWW273HrlmeVCPKLMovNeCgTYJoaPmSwv
1603
+ ffidTJqxUJmwpMREiN2N0qEuk8BTvi6ccPOAj07H0phKkU8X1CHgEHAIVEUEwhBsjLoeev3j
1604
+ 8PFKrLOw3pSckohlaTPQxlpY1SDXwAWSCJEoiferH/8g9bC+ffV5J8QarQtX4Qh4GgnS3oD1
1605
+ 6IHvfiNf/viX5GDpgzNp+uB+sXw7fdYXfFm6NsQYnHMIOAQcAjUNgTAEGxQUe6Xpps1ZLA+/
1606
+ 9KlkZpJYJ2HsLduBlqkkQFktNzdPnnnra6ldK00uOOUIJu1clUCANRgnc7FMcs/T78m4KXNR
1607
+ hynQ/E02uXcz5ypRiy6TDgGHQNVAIAzBNoMwt9s8/963smrdJgzCWK+2s6SyLBem11zP5tpm
1608
+ dk6uPPjCJ1IXRPvkow4sy1RcXOWCgFky4Rr1Dfe/KotXrJV6tdlOzPtySdJF6hBwCDgEajAC
1609
+ RW5+/OWvifLnuGmYLSWpGJyEtcydL07GnYSZdha2+Dzw/McycsKMMk/KRVj2CCxatkZuevgN
1610
+ WYK95rXSklXQTcaO9Vku7aXsi+BidAg4BBwCVQaBMAQ7TqjlO2jIn0qoK0aL08zfk2AZbePW
1611
+ bXL7Y2/K2EmzqwyINTGj3Ff93yffkfmLV0sqDOSUBz9XE3F1ZXYIOAQcAkUhEIZgi/wzbZ5M
1612
+ x5YrGtWoGOcztIJJfAr2dq/bsFXuffZDmbNwecUk71KJAgEYw8nLk9c+/lHGT5mjM+soAjuv
1613
+ DgGHgEPAIRAjAoUINi2Scc91ekYmrXHEGG0MwXSKBo1iXGnSdOHSVZhpvy2Llq+NITIXpPwQ
1614
+ iJM/xk1VS3esJ+PKYbmk/ArgYnYIOAQcAlUSgUIUeduOXTJ51kK1QFXR6kPeYT8Na6I0YXnr
1615
+ I2/Iaii+Gef1USXxrvKZTs/MlI8GD9dDXuKxLY+nrznnEHAIOAQcAuWPQCGCvX7TVt1Tyz3S
1616
+ lbcuCSKA/zR7OnnWAvnfwA9k6/adQKOiWYjyr4CqlsLYiXNkPJZM0rB1SxXL1BpKVSuFy69D
1617
+ wCHgEKh6CBQi2KvXbZadEIcnRCkOJym1f6WHAWvaiISqaFRo+m3UZLn76fdlVzrE9M5VGgLc
1618
+ ejf4lzFmuaSMeCfTZsooskpDpvISpuGh0qJn4jA1UXElcRsAKw5rl1J1QaCQVtmWbTvUkIke
1619
+ PhFhKQOHR5jBg0dD8pSuhLgEEH4OBLR2ZYeVkkWoRmdcJ9maA87maHGtEY7qfODmi1QxLcKs
1620
+ OW9liMCiZathHGU27IJz7drUa6CWSk7IhrAtgSFy8/J1D77bBlYyfuF8EEsytWSwLZMbzl9R
1621
+ 76izQiuGdEaiVnL/LCquaN5zzMjOydGtnNG0oWjScH4dAtUNgUIEO8N3PjGoLcoaaecN+MvG
1622
+ UZoN6tWWBiCum7D1ZzvWxJOxXSua2AqDzENDkuTT7/5QG+R3/eucantYSOGy7z5vJkAUvnnL
1623
+ DigFwupdxG0jkP9AKxHJwYEgJBBtWzaRDm1b6I4ER7QDWEVyxy2XrIdZC5bJxk07JJ6n1Ubh
1624
+ eB51/Tq1Ze/uHdVMcIWugSHvObBw2KlVM7XBEEW2nVeHQI1FoBDB9s+c0KEMkfUOs8XhFIeZ
1625
+ ea707dVVHrntMmndoomswHGcL38wRH78c4KkclbGCKN0JgjzEKdE+q3Ph0o9nJ37n8tOjTIm
1626
+ 5700CNA++KSZC2Ii1DZdtigqqWXiiM32rZrLvy48UY49bD9p2qiB2pS3/tw1cgQozbr23hfl
1627
+ Zxg6qpUQ2Xno7FOsi6y8XGnXuqm88tANass/8lSdT4eAQ6AyEChMsNGb9bjDqIZmDMSgqUk4
1628
+ lenKc46X7nu01bL06NJOnrn3GsQUJz/8MQ5KZMZ0pQ7ceBvJDN6wC+aX0nUqw730wbd64P2l
1629
+ Zx5dGZjVyDS342S1BUtWY/dAlNM4D1qcD2bALn3fXt3kufuulY5tmnu+uttYEKBIm390kUo9
1630
+ TM8zvjnLtuFjSd+FcQg4BCoOgUJKZ7Ekza5PcWYyDK3Uq5sWFEWd2mnyxH8vl8MP6KXHc5oZ
1631
+ c5CXqB4SQDDy8grk8Vc/05OhTGAzBEUVkfMcFQKbtm4XWjcDv+Rz0ddkVnau7NtjD3nlwesd
1632
+ sbYwlvJq1p1LF4lbiigdfi60Q6CiEPAPv6VJkDOnOIg6STbzfNy+N76GWM9+6u6rZJ+ee+j+
1633
+ XWqlRjK79sZh75lKAqgGB/8HX/xUfhs9GZ+iJx42PneNDIFt23epydr4uNiaDEW39erVkXv+
1634
+ fYEul0SWqvPlEHAIOAQcAhaB2EZfG9p3pcibf/Y35LM+tm3ZVAZCPN6za3sc15klOAk7nLdi
1635
+ 3xmWwIj/EpMSJB3x3PvM+zLqn5kIF318xSbmPgYhsBn74HNhkhQV53OmHuxTcVe2jOzsPDlk
1636
+ /55yQO+uxXl13xwCDgGHgEOgCAT8w28R3yN+TdEch3AS7aJct05t5Nl7rpFWLRpLJraSRH+w
1637
+ iImdhNuI4BNk3UYeQvEuDKws0mS9RL2ofLj30SOwFTPsPMySWbsG48jiUDYOgbhT4Ih+vXz7
1638
+ +4tuI5HF6nw5BBwCDoGah0CZEexIoeu1Z0d57n/XSeOG9SQL+zCjJ9qBlMgkpIIQrFqzXu56
1639
+ 6l1ZgjOZSSDcbDuAUVnd0bY8FZRMg4lOmlFQkCd1ocvQHQybcdGFL6syuHgcAg4Bh0BVRqDC
1640
+ CTbBOmi/HvIMZtr1atfGftxcQ7TNwnbUWHKulpKSIvNwstfND78uy1etizoOFyACBNQEKRc+
1641
+ ImeHDFk2Ibj2zZPYnHMIOAQcAg6B2BCoFILNrB598D7Yr32papbzuMZY5lwqGlcBrTnha9LM
1642
+ hXLTw2/I2g1bYkPDhSoSgdq1UvRAGDJIAUJcpHf9QL+0cUcyn5GdJavXb/YF4BfnHAIOAYeA
1643
+ QyAaBCqNYDOTZxx7kDx866UwqhaPrVr5oASxkO1AcXlYyKQZC3As55uyeeuOwAd3V2oEmmAJ
1644
+ g9r5Vlchci3/OBD6ONm1K1NGjJtW6ny4CBwCDgGHQE1FoFIJNkE/7+TD5barz1JTlTBAXoo1
1645
+ bTNro0W1kRNmyn0DP5QdO9Nrar2WebkbNagHkTZP6Io+arJhSYkJ8vPISTJtzmI8lY4xiz4H
1646
+ LoRDwCHgEKj6CFQ6wabS2VXnHQ9To6dACS1Xtb+N4lh04BrxK4Tk2A/OtdLvfx8nD730KbYT
1647
+ 5foiMj6ii9X5tgg0b9JAmjVuIPnc2hWVMwsXnJ1v2LhF7nj8bZg4XRgSQwxcQEgMu9Nj9SrN
1648
+ 7oSsy4tDoGYjUOkEm/DTQtotV5wpl591DPZo52DNk9JxzMJiFJEzbCoOqPhq6Eh55u2vjbhd
1649
+ Z3VuZhdrc2/UoK5069hacrG1K1bHep63eKVcddfzMC/7nazxr2lXr3qpXqWJtbZdOIeAQ6Cs
1650
+ EShsS7ysU4gwPu7TveeG82Qzjvcc8tsYqZWWGmHI8N7isC6elBgnPCykPg4LufFSd1hIeKQi
1651
+ e0upBbX7h/71T2QBQnyZWSfPN0/ECW475ek3v5RB3/0p/ffdU/bv1UU6tG6uh7sos1YFp6jM
1652
+ Mu3c16tTS5o0qqen1UVzRG0IXO7RIeAQcAgUQmC3IdhUYqqVliKP33EZzJdmyLBRU6QOns05
1653
+ 2tGN4NawByfoiTgn+IX3vlUx+TXnnwAAvHG5uVChFlHMi0MP2EtaNm0Mm+JboYDGQ0C8WBYT
1654
+ 0PeJvrkGTvF4WkKyrNu0Rb6EFIR/yYloirY6oou25IQrwAezzPaWBFwaQUGvS4fWMgCGYo48
1655
+ qLd0aNMiJAe2gLbAIZ/do0PAIeAQCIPAbkSwzeBVH/amH7/zStmV/oaMnjRTuJ0oFkUnlpXD
1656
+ IjWUqYE+8O3BOKe7jpxz4qEKA4m6Gy4Vioh/OAs+9tB95b2vfgVzFfupXZZcWcJt6gFW7GxF
1657
+ V9WKQcFyC/Ih6t8CYz4b5a+/p8krH30vZHQuP+tY6QNb+sGOSFTVwgaXxD05BBwC5Y/AbrGG
1658
+ HVrMls0ayZN3XSG99uwkGRk5oZ+jeuaQSFElrao9DCW0X3BuMF0sim0asAb/xENaceGpR0gr
1659
+ 1I/aFS9TLLhDAAwW/kjCqtofO5LJP5ZikuIlNTUJBn2SZRuOJaUuxcW3PgW79x/IslXrQ0pX
1660
+ piC6yBwCDoFqjMBuSbCJd6d2LeWF+66Tju1aSGZWju+wEA7j0TtDtBP0tCkOmqP1sBAbD786
1661
+ FykCPbq0VylFVmZ2pEFK9McaqOp/AVU8055MeWDKFT2sdlqaZGRlyfuDh8klINzDsL3NOYeA
1662
+ Q8AhEC0Cuy3BZkG679FWnrvvWszoGhu749GWzuffDp5JOOFr05btcicOC5kxb6l+LfCZ3Iwx
1663
+ 6hoVzJAikcugzd+3dzfJLiUjFQ48m0a4b7v7u3B5t22P0ok6tdJk2er18p8HXpU3Bv2EJYAA
1664
+ mY9WH2B3x8LlzyHgECh7BHZTgo1hzree2XfvrvLUXVdC+xZ2x3Oj3QNcGDBqO69au0FugzW0
1665
+ RctWx7pzrHDENeCNlW+0aNpQ7r/pIhzgUh91wn3u4UhVDQAkyiKaE+YSdWvcE699LgPf+UZ4
1666
+ TrjfORj9ULgbh4BDoDACuynBBmmw1AF5HtC/tzx6x+VYG8RgV0qiTdvWtNg1B4eF3PLImyDe
1667
+ G5ECE3OjZeHmEfomgNH+e3eRB2+5WOIwc6RSH3UCPFUWGtA9+xAgggnALDEhEQppP8ibmGkb
1668
+ F9zmfS/dxSHgEHAI+BHYTQk28xc8/J92dD+594bzzV5dHPMIC9X+QkRzwwGTGuKpUAiaMnuh
1669
+ 3P74O9imtM2TnvERTZw1x29wnZyKOrnn+vN8mvj2AJdgPzUHm8hLqjsU0HyppPbC+0Pkxz/G
1670
+ Rx7Y+XQIOARqLAKxUb0Khsvuq77i7GPkzmvO0Vl2Ps5YLq1Lw7Gco6CARkW07X674yQ4juiU
1671
+ hC1XLGhRjnvbH7vjCjBAKVCsKt355iWlWd2+c/dCZla2bjk0kp7qVkJXHoeAQ6AsEagSBNtL
1672
+ QK869zi55oITJQs2wv37dmNGBMZaUpPll5ET5f7nP4LBlixfTJxlO1csArDZbpcRzscBLlQO
1673
+ bNe6GfbPZ2i9OJanWPT0IxFMTkqShdCleHPQUMm3+9BLDup8OAQcAjUQgSpBsL2DfyJOfbrj
1674
+ mrPkktOPkgzYHY+DlrcxAen1FVlNWrKcAu3xr34aJU++/oVPiSoQV+mZgsjyUtV8mRXrAE7H
1675
+ H76/DHrhbjnlqH6SjUNc+Ec/8frrVriLq1/uXhj8y2j5Z9o8nzfbMosL5b45BBwCNQ2BKkGw
1676
+ gyslX9ef/3fj+XLuiYdIemYmZiacg8c4yIHmUHEqDYYuPvzmd3kOmrt5Hs1dPYQkOAPuKRwC
1677
+ gL89ZtivPHiDPH3X1bIH9tGnZ2RKtmqRI0CAtocLXWPfsdUmQAFtx650+fyHv3xa4w6sGtsg
1678
+ XMEdAsUgUAUJNrNcoHtaH771MjkGpjIzQLRLSxB4WEgi7EC//ulP8hIUgZyLBgHlmDQANfkv
1679
+ gDW0wa//n9wNhbRWzRtjbTtbsrK4hAEvjhYFAauMJoCh1vjYSbNl8fK1Qd/dg0PAIeAQsAhU
1680
+ QYLNrJtRvx5O4Xryv1fhxKcesjM9S5WgbMEivVLkrX9gAjDR1r9XP/5ePsNJUs5FikBhKtyw
1681
+ fl2ccX6aDHnjAXn4lkvVjjZx3rEzU2glLTc336eDwLCFw0eacmX605xD8c6UwCf2j7Io5GGo
1682
+ VBmfECdrN26W0RNnVWaRXNoOAYfAbozAbnT4R/QocbCjEY9n77lGboT1qCmzF+mJXzqTwyAY
1683
+ i+MpVLST/fDLgyQB6+XnnnRYLNG4MD4EmjVpIFeee6ycf+rhMmv+Uvl7yjyZMmuRzF28QjZs
1684
+ 2qqKfnYXQNUDjdQ5XxLiEiQZ2wRpB90wH7G1vXys7YycMEMuPG2AnhFf9fBwOXYIOATKE4Eq
1685
+ TbDtunWHNs1hDe0q+df/vSxLV6zBwQuxnfClw6yKJxMkHbafH3zxU+FM8ZhD+pRnHVTzuIlq
1686
+ HLTxU6Rvr276R8K0ccs2WYkTrdZt3IIljewqaXGOc+o1GzbJuClz5e+pc3WLVjKWBLQwhmuM
1687
+ qm6TwCDOW7JSMWnbsmlUYZ1nh4BDoPojUKUJtleU2rNrexl479Ww0/w6BtHNOCkpCbLG2OZu
1688
+ FN1y4N2Fc7nvfeY9rJffALH7ntW/NZR7CQ3x5pGnzRo30L9yT7ICErjuwpPlrwnT5VFIZUhw
1689
+ yTBG61SsjjWZLdt2ynLYG3cEO1oEnX+HQPVHoIquYYevmAN6d5dnsR+4Yf06koN92nZTUXjf
1690
+ xb9Voo0ZzzqIbW9//C2ZNmdx8QHc1yIQ8C7qeu+L8F4FX5MBGdCvt7z39G1Yq++CNfrYjoRl
1691
+ Z8yCgt4Sp3hWBVuBy7JDoPwRqFYEm3Adun9PefT2y9ReOA+miJVEcDtXAf54WMgKzHjuwglf
1692
+ S1auK/8acSlUWQTat24uD958sTRpWDfq88Ipe+DBcbnYUrhy3aYqi4HLuEPAIVB+CFQvgq2L
1693
+ 0KLGOx669RK1IpWLgylidhSp448mTGctWCY3P/SaiitNfL7EYo7cBax+CBTIfnt1lkvOPFq1
1694
+ 4Fm+aBhGronno71u3rqj+kHjSuQQcAiUGoHqRbA9o+P5pxwud1x7Foyg5EkBZi38ZDbgRIYZ
1695
+ CbV1XAnnYSGTZi6Qe55+3zegMsaAH+vXXR0CxxyyrzRr1EAK8qJvHxDqqHlXnoDmnEPAIeAQ
1696
+ 8CJQvQi2t2S4v/Kc4+Q62B3XPb8k2aSxMTvYHU9LhXLRDLkHh4Vs27ELMZUqwphz4gLurgiY
1697
+ 9tARuxY6tm1hxOKkwFG0E55DR0t7salL7q64uHw5BBwCZYFAtSbYCTgN6c5rz5WLzzhaMmAm
1698
+ UyfEMdBYDqJ2dp6Ks7SH4jjE+579EDMhxOmcQyAEgWToPdSrkyZ5KqWJvMEpkWYY/I88VEji
1699
+ 7tEh4BCotghUa4LNWuPBCvdcf46ccfwhsgsmTHlYiP0Xea0WwDyGWc+OwylVKbA7PuTXMTLw
1700
+ ncESEF1GL/6MPP0SfPoGeD1AqwSv9jNz6ycK/hv71V1jQ8C0gRwcfLILJ7/Fw9wttxZG6gxT
1701
+ iPZFIyw0u+ecQ8Ah4BDwIFAjRoU6tWvJo7ddJice3heHhfAIzdJRKGqQp2Cm/d5Xw2Tgu4Mr
1702
+ /cAGnmAWTZEsCaFWsu5Vj4KoeNqOuy2EgGlXy1atl0U4MjMx0XQva+CnkPcwL7gVsXZaSkxm
1703
+ dsNE5145BBwC1QiBGkGwSZQa1Kstj91xufTvsyfMYWb4CFz0hFtnpvmYC2HvLUXur33yg55l
1704
+ XJltgudQJyZGZwNHywHGIysrR1avtduILCmvzNJU/bSHjZok67F/P0FnyZGTa4rE49GmGmFb
1705
+ mHMOAYeAQyAUgZpBsFXxR6R5k4by1N1XSa/uHZVQ0fZz9OJxTEpV9ozBFSJPnvf8Ik73+uKn
1706
+ kaHYep6jZww8gUu87dSmhaTAMlt+lDNlSgry8nNlzKRZvn3D5ZvPEgtSDTzQTvqgIX8qM4f1
1707
+ F5QoCiYIXhPQKFs1aVwNkHBFcAg4BMoagZpBsD2o8Zzml3BmMzV51Ya151ukt5wJmaGYxyIm
1708
+ SFZ2jjz43McyZNjYoCi4ncyM11EM2p4YIiWfLZs3kvp162D7WnTpcOtaUlKSDB87VT746jdP
1709
+ yu42FgRmL1wudz31rtoCp11w8k+mpUQaG0ziYqmlbatmkQZw/hwCDoEahECNI9is2y4dWsuT
1710
+ OCykdfMmkgUFIc40o1oE9jUQQ1DjhINzRnaW3P/CR/LV0JG6T5snUf34xwQdsCMlvL5o/ZdI
1711
+ B/smDesJT8XidqBoHcvOmfnTb34ptz/2Fs5kngOCsxVb4XKjjarG+ucWv2+HjZFr731R5oJo
1712
+ p0IpMTrWyUDHQ1HqQ7u8dYtGNRZLV3CHgEOgaASiW/gsOp4q94WHeTx9z1U4lvM1nNG8S9eA
1713
+ A4MsSWzgqbjC5UN/nJJPEu2duzLkjsffkc4dWmrwRcvXqHJapIQ3NJ1INYXr1aktndq2lMmz
1714
+ FsK6G2Z2oRGV8My1eBL7z34YId/8MkbatGyCwyeaSKMG9aROnVoq9i8hihr7OSc3B8eGLpMZ
1715
+ 85aqGJyHzniN7kQDDHcctMEpXTwy1jmHgEPAIRCKQI0l2ATisAP2lsfuvEzueOxtyc7Jg3jb
1716
+ CBwiJXjWn2pbIz6enx0Hwrdw6WpM2M3MOxpi7Z2JU5xat1ZaaH2FfebhE726d5DBw0ZFTawZ
1717
+ IQkMZ9rUTuZse/ma9bJ05VqfSDdsku6lDwEKZ6hclgxCHTmbFx6+fLSdXt06qoGe8D7cW4eA
1718
+ Q6AmI1CjCTYr/pQj+8n2HenywPMfw45znsST6IJYWmIcTeMg4YvHCE7DGRqeVDcKR98c9LkU
1719
+ nYy15RZNIxeN9unZWRrWqyM7YSDGaCdHkbDPq6avjEaixKFl8PATUm0lRKWlRtFnp0aFYNuh
1720
+ Jb1D++7lrY0ahYErrEPAIVA8AjVyDTsAiSGoF512pPz32nNwUhIMpJTShjNjVJFolMTa5onk
1721
+ kTOtJg3qSpeOrezrEq9dOrSCKL4V1p7zSvQbiQdLrAN+SbGdKy8EWG/t2zaXXj06+ZJweJcX
1722
+ 1i5eh0BVRaCGE+zAoHj1BSfIvy85RXJAsJXgVlKNcnZP5aP99u4iHbC/OjJXIHWx1nz0QX3g
1723
+ HRvVODPGynOpnIfhULbG81yqeF3gIATstkJq+B/Zfx9pDEYtNvlOULTuwSHgEKiGCJRyVK8+
1724
+ iFCUfdtVZ8rlZx4lmTAmooSPxVPiV1HlpJENnAyWnCinHN0/CmMohvE47diDpDO2rWVn8xxw
1725
+ Iz2oqJy7dGJFoEDyMLvm1rwzjz/YF0mAkYw1VhfOIeAQqH4IOILtqVOa+LzrX+fJOSceYkyY
1726
+ glhX5NDJtLinm+vRA/r38uQsktsCadOiidwAKQGV0KI1ohJJCs5POSAAjcUc6E6cfuzB0hXb
1727
+ DZ1zCDgEHAJFIeAIdggytWulygM3XyzHH7YfTJjC7jgnquVItZUl8DEG3FrFLVo3Xnaa1EpN
1728
+ CclZSY8mk5ylXYsjRTNoMx15NyLXksK67xWFAGvJ/KFmUO/Z2O/erVNbufzsYyoqCy4dh4BD
1729
+ oIoi4Ah2mIprAG3rJ+68Ug7GXm0eFlK+82yomWGWxSXibMyuzz/lcDl4vx5hchXZK2qIcy3+
1730
+ tGMOkoysbN9yqCUTkcXhfJUjArpSYZgrKjjSdjilIi2j2BFQjrlzUTsEHAK7MQKOYBdROc1h
1731
+ OezZ/10n+0Brl+delx/R5uBdoOvmx+E0sZsvP11nXtHs3w4tQj0ooD1+5+VyJsSsZDhKE1do
1732
+ 3O65lAgorSaDli85WLu+5vzjwVz1K2WkLrhDwCFQExBwBLuYWm7Xqqm8+tCNMqBfbyV8XBcu
1733
+ CxFzKPGn6P2gfXvI4zhNrF7dWpqjUD/FZDPok07g8IZ7sp+860q59IyjJDsrV7ermXlduUr4
1734
+ g/LiHrwIBNAnsc6CYuC5Jx8mt191Vsz75r2xu3uHgEOg+iPgCHYJddwBh4S88dhNctU5xynR
1735
+ o9iaJI+ndMVKVJkk1y+5lWcXDJ0c2b+3PP9/1+E0sQYl5Kbkz5Ys0CfX4x+5/TK56/rz9JAS
1736
+ ar+zwplv5r9iNeBLznt19WFbCus8DwpmWViquPDUAfLwLZfCdG1SdS22K5dDwCFQxgjUeEtn
1737
+ keBZt3aaPHTbpXJ4v73lhfeGyOSZC9V2eCKOtIzFcZ93ZmYOCGqK3HzBaVhzPlXqII3y0HCj
1738
+ 5vu/LzkZmued5Ll3Bsv4KfNwljdMacLmuCPYsdRejGEg+uDpcDzr+ubLz5DLsH2QdeOcQ8Ah
1739
+ 4BCIFIHYKE6RsXvnd0V6qpIfWLKjYJiEBk0GfTdCPv3uD1m+eoMaWSHx8x7UQb9WNK2zcLzI
1740
+ hxiU1qzycvJ1VkXFspsuO1UOriBTlBS57zOwkwz+eYx8/O1wmb90leRALEv76TwilFvBCqD8
1741
+ ZvJuc18lq2q3yDRxpMuF5n8uToRLSkzWrXrc689te8YRZ+vT98pdHAIOAYdAEQgUJtiY/eXn
1742
+ QU2JJreicJw1UsSLS7V2DXDu9A0XnyznQZt7+KjJ8u1v42TqrMWybcdOHXvj4yBsptzZhwOt
1743
+ ltHUKE9xateyOWxF95STYb+8b++uOksPgFX+AzdtVV+Cmd0Zxx8kUyAl+GXkJBynOQuHfWzE
1744
+ SWOZOuNOhNiWzAcNycSBiKvkHJkkKa/mVRuoihjvFB90gDz0n7z8PO0PDWC57LDD9oYI/AjV
1745
+ U+DJaAFXBnWOKPLADLKNsYIitdLHA2t4Xjuap3MOAYdAFUGgEMFOgpiXImAOLBEPJ+z86Pip
1746
+ WI9LSPQOSFUEhRiy2bh+XSgNHS5nnnCILF62VqbOWSRzF62QpavWqeiTg2diYqI0b1QfNsFb
1747
+ S89u7aVn5/bSsEGdGFIr2yB1cArYoTipjH/bd6bLouWrZdaC5bJ0+VpZgvxv27ZTtuOoUBLx
1748
+ HOwTzsW6qyUIZZuT6hUbT2urjf3zPJa0fZtm0rdXN+nfp5t0bg+DKP7ORArpfygDAAokLSVZ
1749
+ +2yt1NSoCHYODpjhfn/wZurKOmdlUDgXhUPAIeBBIA4ceXM8j8NfR77nTHHdxm3+Tsx3JTr2
1750
+ dDh2/FbNG9eQ4wGLHt7sLMfY9DbYhP5yqxX3X5fp2B2aSIzPJNA0b5oJ5Sjep2PtNYfKdr6B
1751
+ PcZoq3cwNIc0EL86UPSjsh8Z34pwbEer121S5opSkYjrSPtsASQ/ydIaFvLMCW9Ft+mKKItL
1752
+ wyHgECgegUIEu3jv7qtDwCHgEHAIOAQcApWBQM2QX1cGsi5Nh4BDwCHgEHAIlCECjmCXIZgu
1753
+ KoeAQ8Ah4BBwCJQXAo5glxeyLl6HgEPAIeAQcAiUIQKOYJchmC4qh4BDwCHgEHAIlBcCjmCX
1754
+ F7IuXoeAQ8Ah4BBwCJQhAo5glyGYLiqHgEPAIeAQcAiUFwKOYJcXsi5eh4BDwCHgEHAIlCEC
1755
+ jmCXIZguKoeAQ8Ah4BBwCJQXAo5glxeyLl6HgEPAIeAQcAiUIQKOYJchmC4qh4BDwCHgEHAI
1756
+ lBcCjmCXF7IuXoeAQ8Ah4BBwCJQhAo5glyGYLiqHgEPAIeAQcAiUFwIVc6RQeeW+0uLVo458
1757
+ qbsjrIqrhvSMLFm7YVNhrHCyVPMmDaQ2zuh2rrQIFHXKlm2nro2WFuGKDx9cdxk4OW/xstU4
1758
+ CneNrMdpiikpSTi2taX07NpB6tWpZc435mltzlVrBBzBLqJ6eUQmj8fMy8uXMRNny+xFy/To
1759
+ xEP67i0dWjfjcdc4ydB2qiIica/ln+nz5fr/vSgFwNIOJ8Q2ISFBXn7oBhnQrzdQMmg6uGJF
1760
+ IE7PNB/9zyzJwrGovbp3lAP36Yr2SwEasXX4xops5YbDCIO+8sMf4+XNT3+UBUtX48jbHN+Z
1761
+ 5/m4xsu1F5wg9990ke9YVVfPlVtf5Z+6I9hFYExivSs9Ux5+eZB88eNfejY0Cc4e7VvJo7df
1762
+ KkcoobEkqIhI3GvJy8+XDBARL/NfkE+CnS/5uDpXegR++H28PPjiJ7Jq/UacsS44jztNrjjn
1763
+ GLnz2nMkWc/ldjiXHuWKjiFOMnAO/TNvfSXvff2r5ObmSmpyCv6SwH6hPtGhMjJzZBckWMa5
1764
+ saiia6gy0gsi2Ju37ZRhf01EQ8iS+PjA8jaYPElKjJdjD99fmjWqH3E+p89dojOsBE9cDJyL
1765
+ WWvv7h2kb+9uEcdVGR4/HvKHfPzt75KWmiJ1a6dpFpauWiv3DfxIPn3hLmmPmbZzxSPAYSQh
1766
+ nr/4IzWB42883/G1Ov+NfRHRdc7C5TJ20hwQf4YPxJGblyd7dm4nB+/XI6J4qo4nIhcoJ/M9
1767
+ d9EKEOuPZcPmbVKvdi3MuvKVSXrzs6HSsU1zufC0I33F84UtHIXvu7vsHgiYCsrJzZPHXvlM
1768
+ 3v96mKSmJksSxiBULvqOr/7hjV0owcsJa88Kbh+7R5lcLsoKgSCCvXbDZnkUM8qNW7ZJQmIC
1769
+ 0jCVT4Kdl58nF81cKE/ffZUkKddechb++nu6PITBJCU52Xj2tSVyhjddcVolEeyiRqzg9+kZ
1770
+ mfLH2MkgNgk6O1SuFqVIRVlWrt0gE6bNcwS75Cbg9+EZavzvSnvz95S5ctdT70pycqLlBTRK
1771
+ zkyuOu+4qkmwtRnyh847+JoW6H1DH2Mnz5YN6K9slxSfFsBDQkI8ROM5MnzsVDn3pMMlUfuy
1772
+ L04f0xQatz4HdwFGX0EuNGHzzHEniB5VUG4qNxlTwz/8/rd8MmS4pKWkSBwoM+uWjl8VHTBm
1773
+ JOBBTST4Qf27n+qFQBDBjkfvqJWWIrWzUtHJE7U9mObBtlEgQ34bK7337CSXn31MRCiQsFM8
1774
+ lwIxjnVsbJy9JycF3tlv5Xc1jd207tAhz6Ya/D4XHC4VPUKEA/4RhN+cq1wEkpIS0L5S0ZbA
1775
+ VHkGK21flkms3CxGn7o2w+C2aCLxljAQLZX66NsylHaSRQlGBtY7uSSRKGS+6XSoN7dBv770
1776
+ wiUb5K+8HkITtvkpKr/llY/dI94duzJk0Hd/YMkoX+IxhnLs5RIdXW5OLuoUS0oYmDgGZWO5
1777
+ ybiaiZWv8DXmEkSwWWpWOzu/GQD8w4CPk4vDmsrX0qFdCznigL0jAqkAHL2NJbhJ8akiXZxM
1778
+ mrFA5ixarswIU2YXYKeoV6e2HHVwH0mF5qV1dSBe7NW1k0yctgAzOKwbaadBhwEhrwXxVI89
1779
+ 2lmv7lpJCBRwOulzto2ZR9OK7beqdF23YYuMmDBD1/f9s0tfxzlo3x7SrlXToOJQwSwpMUny
1780
+ 0T5JpA1ZL9B2ym8BZjlOsnNyZMS46ZCgbZd4zMKty8MSQrtWzeSQ/XuAMATe2+/ldd2ZniF/
1781
+ Ij87dqUrE2/ToaJnzy5tZZ8ene2rGnI1Fb1w6SqZjz9OeDCPNgwZ6pdLPZ0w9t546WnSslkj
1782
+ mT5niYrLzahdQyCq4cUsRLDtEBiOnHIdm53s4Rc+lfZP3iId0XiK5toNst6h08bto/4VCL1J
1783
+ +dtfx8prn/yoszKbeB4IcOeOreXAPt2DCDYHv8vPOVbGTJ4lsxeukFRIBDgoco3wynOPw2DS
1784
+ yUbhrpWIQIAdDGTCQ8cDL6vIHTWB737qPcnOzcEapSGeZBZ5/+oj/y5EsA/cp5ucfcIh8sHg
1785
+ 33TWxZlXFgjz/nt3wfr1AF+pDSFIz8iWF94fIhNnLvAQcpFMLCGcenQ/XULwMwkVgNemzTvk
1786
+ yde/lMUrVvuZaCabDcnAjZedWgMJthmnVqzZaJTJ+MglDN8gmoA2cMMlp8iZxx2stdO/z556
1787
+ dT81B4FCBLu4omPcUK3T+YtXyOOvfS4vPPCvKrWPlgwHZ9GpWPOkYz/Iw0wjBcTYdBV9rT8k
1788
+ BF06tJK3n7hVxVOTZy2S+tjveNKR/eSM4/r51gUD/t2dQ6AsEOASTAraJ69coqJTgo0XiXwZ
1789
+ 4qgf8sDNF8leXdvLz1AYTc/IkL69usnFZxwl7VoGz8YZHeNOQx8w2uM+1hkdOwlLYBXtKOal
1790
+ /gGlAEm6zm76JEtpdGgqOke7R3pbtu0wSxmUgnCQgsvHRKFe7drSpX1r88L91kgEYuilcZKG
1791
+ de5fR0+WVz74Xu66/lwAx1YVSvJ2Pzwp7iPDyj91GDD0lpxIiPMNlUq0H7j5YhUnJmLvsNWe
1792
+ J0EPv6oYEpF7dAhEgYBtidpOfeH0nY94F46qQHcxkEBfeOoAyYVyqNUPIaGn1pa3naqWMV/7
1793
+ EzK9l+25wp1vyPD2SVNMb44rPFeVnmA2pH5ad8wJMdKqASaQ+tnxp9Iz6TJQKQgUZtmLyYYR
1794
+ P3JVhfto4+XdL3+RIRAzm1ZlAlZoty8xsVAPINDoAPm+P3YG9gdy+rrNyBTB88uvxnEQDO4s
1795
+ gW/WT6zX0FwGxROGmQj6rg/FxuDz7vMTidfCCXjelDoCT1zV6zaATOCupBKaPhXwb8Xgto3y
1796
+ ql/xE55mB9oh16UtsWa6VlHJ5sHM2JEigtj4vXGH9oFArmwModeSfRQXgvlh7r35MaML4w2U
1797
+ KzSO2J4rhSUJk9WSMQsaZ+DdoGGwAs0u5EqOsVAQ96KKIhDDDNs0IO6tzcZm/sde/Rwm8lrJ
1798
+ Xt066Ifwg0ps6Gzaul1mzlsmVMLIxDYViu1oZawX1o9bNGmofZpbePIxqwjt4GQojBJZgVp/
1799
+ orJYDvIb5NDS2f7zIG7aCW1bKpeBtVVxN8V0OdDIzMJfaB/hQMi4yfGGpsvwdmTNhBbnspXr
1800
+ ZN6SVbJm/Sa1msb069WtJZ3atpDOHVpLs8YNCsVPP36HJLhFh/kPdcxHGvZo8roLugWTZy2W
1801
+ eViuyKYGO941Rdz79txDOqF+fEOjP2+hcXmf12/cKtPmLZEly9agjjFjg7iSBmO4bt+4YT31
1802
+ mo69+jSA4nV8omgzoOjk/VqJ96gT6h+oZn9wlpEpiIMhlk2G4hYd15AnY413ExSz6ChN2rNT
1803
+ O9kLdgPqQCM9Moe+gTpbsGy1zJ6/TDZu3o5UjKZvg3p1pCPqvlO75qj7hqZekCdum6SVMoaj
1804
+ C2pzvjzzu8WdbY9buZh/tjM2O6/jI8Xe/ONsjRaydmKrYiFjNfDItPLzCqCfYjTOGQ/bNxkA
1805
+ bsGkpnlQfvA9EctLWs9MGG3NOipxBqxx2bfmSvF3YkKi9rcs5Ica7qH51pgQX35eoKxMPC0l
1806
+ OYRhNnEyveWrN8i8RStl2er1vj5eAD2VWpCOtZRuHdtIE7UdYXpAcI7K9mkj9sLPR19fCPOh
1807
+ O3aka7+Mh42A1i2aqKSuY5sW/r6h7UGTD2DHfk6FuxzoIHgdc07dGdYpsTW48clTD4VqSD+7
1808
+ n2qGQEwEWzFAeyEBXbtxizzwwsfy1uM3+wfz0mLENZz3Yd3nm5/HgNBtVqJhGzjF0s1gg/os
1809
+ KNpcfPqR8hSUViZOhxINBhjThEUJ7YB+veShWy/RTv7K+9/J17+MkczcbCVwgfxBmQeD0pp1
1810
+ m+SSW57Sew4kZx57kNx+7dny1c+j5NWPftBOZuPOR4dqUr+OvACzmm1D1gg1Xgw27LiDh42V
1811
+ H38fB4WatWoxjYOeDk7on5xZcEtSUwwk/fv0kPNPORymJLsHshV0FydvDhoqn/8wAmX07WfH
1812
+ 93xojDL95//vXzJzwTJ5FhaRqAGfkwNxGsMjMXLqDerWlgEH7SP/ve4cad28Mb6FE+UzRBzq
1813
+ citMIP6EtdB/ZB3qlcYb1OEzNVZbN2+k+3pPO6afPATFw4UgSGaPr/FGYnPKMf3lLqS1Wzng
1814
+ vQBM320Pv6mMmZ1JUhRLzdubLj9NLdc99cYX8gvWgbftTNc1Q5aBgyUJE5mrm684XU6A8aCi
1815
+ HIdealx///sE+ejb30BEVkB5KFO34WilaN2DkII5aNyonvSFYthtV58F4t0SBoYWyH3PfgiC
1816
+ TKIKAok8W2f34T75+hfy0gffqdWrViACL0KHJBOKZDc9+Jps3bHLT9BYm3lgNK+/9BS54JQj
1817
+ ZMOmbXLbY28p80jjSEHr1UiGfWf81Dly6tUPQis5T5LiEuSxOy4Dk9JRbrz/VZmPek7mNk9f
1818
+ hljPJw3YX+7994WG2tuM4rpq3Wa57dE3Ye96C6RwCSYMArJMt111ppx2bH9ZBKJ2+yNvypad
1819
+ mbJp67agNsQ0yCCy/1CDnPVTC4zSwHuvUWM4NikyYL+NmiyfYPvT9NmLZTvqjAaZwJrBC2oN
1820
+ +KWgzZIhPgrtn1tRyXSWh6M9gM9++EsmAEMasCGTX+CrQ/Y3jlm10tLAPLSSEwccCKWxgwqN
1821
+ lcz7Y69+hr3z05RgJyGMMkI6aGB7F8apdFhevOXhN1SKwpLmoB5Ox1h1B8Yq52oGAiUSbDNs
1822
+ mI37HIwSVDkF3Uo/FKgCF42IPPHGl+jkl2snKQ10U2YvwsD1AWaLC3WgJEFI5eyHPRlpcraw
1823
+ DoTlhXe/lTGwnbwNA9VycNYJScyjyS0HlB6wdGXdehiW4Gynft0036zYfPFFqQR+2ap1SlAz
1824
+ s7PVEAV9bN+erjaavYQyD7P0bQ0bhMx4bUyCwXqcvPDetyCeK3UWwhkOiZ1hJ5BH/DMcsynH
1825
+ 5z+OkB9hK/iMYw+W264500gObMZ9V27DWbR8ta5V2k/kxDlbGfzLaHnxg2+xNSZTZyEJKfEm
1826
+ BcVKdFZF06pLVq6VVx/8t7TVbUHML53Bi9fR/8yUB2DechaIP5WSONgmYpCwfpjvFWs3ypMg
1827
+ aiPGT5dVazeBmdroJxKUa2ZlZ8lGEIfd0VHzeDGkHTvS01WbWvOogyFn1auEOwh+HzNZ7QZY
1828
+ 849q/xx+6G3m/CVy80Ovy67bL5OzTzosbBG3gBg+/NInMvjn0VoHVPAyImribDE3QVcBS74i
1829
+ znQZmG0ugrY023cQQTXe8VugzDEJFXc2cC9uHmbFlHItQdvdvHWHLlPZVLiFa9v2nRo6Jzdf
1830
+ VqzZoG0gFUyfhxfQXPGZEqZtO036FMvvVMlVAYwEbZIlaHuJHrsJWZjRryuinimV4kx3Ncqn
1831
+ thyQAstEgr1t5y7NDyUFC1AXJEDsH0zf5ls94Hnr9h0g5ttVIlAXWyw5+7SOEqBHXvlUfhg+
1832
+ XsvP2Tdn/Kq4xrjQFtleGesaGIN6G0t3Q0dMlFuvOkMugua8lxmyccZyZdwD3xosQ9Dnd2Lv
1833
+ NC2SUTHQKrUGCK7pGxOxrfTvqfNg6niEMi8nDjjAnywx4uRnEdoibQuo9A7vjGN5jCRwxboN
1834
+ iif7JethPRgE52oOAiUSbDaMPIin2rVqrhzqr6MmKWEwAhoDFAemr376Cxxka7nm/BMC6LHB
1835
+ 2TYXeFvkHU1N3vTg65iVrtGBk4Ft5/LRYg3L2Sk76LQ5i3WQYkcxyfh+aVhAiY1JivcMwxmn
1836
+ 6ciBLGgIdHKdKeIhLz/BH5YzMQ46VoOVoUjCOKD684VnBFeR69swB/n0m1+rWK5O7VRfx7IQ
1837
+ 0BeJNX+REG6Yr7owLEMx5affDVczky88cB3E5S1NIHqGoz/mw85m+ZrP6zZtkZc+/A4dN1f3
1838
+ hrMsWh7grlc8swx1kZdJ0+br7Oypu6/0EVn4YP1gtBw/da78B8SIkgGaYOXgQcdfM1Too+LA
1839
+ snM/u4pEOeP3+SXBzsuHiQ4P7ibU7vHL+iJ+rEtrKpc48v3nYGh2YIbG/fgkHr7q0aIpBsCQ
1840
+ 5mmzwMw99fZX0rtnJ4g421iAtICURjwNpvWz70dIHWBIomdrQc2FgsFiWqwPpkEcr8HBDda8
1841
+ LRUi+Y6icRvOixzzQWzV/iDCc9Zm88/ZGMvFWZh1rEO7Fsr0WF+qec1AIU7LqH4QO8Nhhq3r
1842
+ 3QjIdJgv2/YYND+v6Ho2ZUP/BCFmWILEvOTlx3vyAwkTvmmcYfLDNJh3/Ne+wbLZ/eGUFtyK
1843
+ GTytuNWpnYLlDCxTsA2i/eVgQmGWjljX6DOaRqLUQ/43YiZ//8APEZ/IpWceqRiTcY7VLVu1
1844
+ Xme74ybPxVgF08V1QvoNgDD9yKTBuqckA1MGFZvfhP62DKL869AGWFb6IoNsxilvryOCdObX
1845
+ YKovTD0QJOdqDALF1rZqkqIlcamS67sUaXGtmmtmbIDW8Z6D4Guf/ATbzrPta1wDfjwvw95y
1846
+ pvzIK4N0JlmL67L05Wv0bPjahHHVvolOx4xz5qqDFD1HnhRjLjNnko2TIcPGyFNvfqUDDGcx
1847
+ zGfAkfHAE98FveejGVhrY610EtZO733mfdmKmVpJ5SEelAZQmgAagL20WTpj4QxHnXI4JndM
1848
+ MhmDxR/jpupgYTzgF5miCI96CBs2bVVGzAwyxgdDF842ZoC0LGbrxh9Z1bvhDJrl3YXZEdtv
1849
+ NrCjLoBaCNN6MgwWS8b65GyQs7uhf/5jCqvwmgql3fzvMOOj+JbEzohmjYicRLoVliMaN6yr
1850
+ eG6D5KYztgyeAXGmc5EhwPZG8fhz7wxGO54GAkl9AuCMsQBg6y6ORg3qyX57dZH9e3XBclMD
1851
+ 3Y9OZikOlcdlCHp99u0v5R8wr6Uh1pRm3PvMB8ro1quTom3H22+0REiTLSPQA/Ut3hUo4eYS
1852
+ 2TMYL777bZz54H4dAhEgUOIMO8438OdCrNYOCl+PQiR41X+f0zUzcr5muALBBjdLRZ3/DfxA
1853
+ Pnr2DohecTCGHfEjyMgPw/+W0RNn6b5uEyd+8Z8dleJfin9IoDlopkO8yU5IUXVge4oJFS4p
1854
+ EjWevEVRZ2ISZj4hXrnexEGajkpsXvFbuPhC3y2CctazGEiYT+bPdN5AIlwXZ2FSYReYMwCu
1855
+ cVEqYUTO/EK/cSh7MkTTs+WdL4fJHdecFZpMoWcSBs7sqCC0395dlcun0stScP9cv6OVOY0a
1856
+ IUmQKGKcBHvw3fdoq+kxwi+x9sYjMKlQFcixqTrFHeJLinUTMGOhgQ0kqQOOJdiMo6o6tiEt
1857
+ KcpEhcTO2ONKS1JsxzOgLMbyU7lS65MFh3c26XEQa14DETLN+Jo3AkZ1Fmbpu7SOlUjAP9cl
1858
+ WzVvIg/ecrH06dlZ29VSSI+G/TVJ14etAh/x48yabZScKEW84RzbEQd6Ei4q0BUiEuEC4R3z
1859
+ w3ZNsXsiZ/8sk8cvi8b+TcVOfuB3Ln+Vl6N4PANr7/yrVcsoTYamlQtdDIr7jRlOMojEeI58
1860
+ OXSUSpM4ozaNG8sC8HvCEX2hO3Euxp0mqKM4WQ3dl+ff/UZ1V2j0iH4pKeCyxZufD5XeUKBk
1861
+ X43WEfN30T//BPPLmbVh6axSnmEqON4kQyGQ/Tszi6dpGSVVP/uHODhTpr7JC+9/q2cqUL+E
1862
+ 9cs2EI9vHFsLOdQNmXSrOMhxKmCatJBv96IaIlBsi9U+wR6sAxvNHeYoB3vPDRfI/7DOzI5n
1863
+ xW7EJiUlQRWRHsWM7eUHrjdiNe/IUASAW7DWxnU/dbYf4oG3JEhUnDrjrGPkcJhDrY97rud+
1864
+ jyMFR8GEI8WEJB7MZqizr445dD8o+dRXwsRZrO0MmhTGpUbQfKbyBmfGXO/rA5GncTaG0JiD
1865
+ n3/8429ZumIdBh92YBOGcfM2Fxgx36cc1U+6dmqNteYMXS/+GuXl4GEMRDCMhtBOTpvtF0AR
1866
+ jdql4RwHJIbgbLo1FM+e/O+VUF7bU7GgstijOOXnO6yrmfVTkx9Gz8Ge6/3WUbz4458TdMbs
1867
+ zzcrHUSDAya1a886/hA1WVkrLRWz85U6I6CSDcWZZpbii99GWqWuJMaspgK58ZLT5OoLjhdq
1868
+ cXP993vMlh98/mMldJBWax/QkqKtrYf5UJrTNASbYluzRszvZJJYk7ynsYtGDeoqcWiMK10r
1869
+ mJQ8aL+eem9+6DMOVgOby+3XnC0rsdb805/jlVnQiHw+GeepR/fHslRLZQQaIp91YchHibzP
1870
+ T+hF84uXFNdefc7xsmbjZvnpjwm6rmuXLhgviTUNcvA0PgLCeu2IZZmyJNpeFqE5dnjw8B/q
1871
+ ZvwE/Q32fzIJdJofMDo8ya//vj01D1T6I36f/fCnEkC2RYMax4d8OezAXvLC/dcrQ66R4IcK
1872
+ mTyoiIwNy2z1Esj0TwKDOmvBUukTg+nT1VCq++7XMabP6LhjULY4NmxQR8454VD0mb0gsmef
1873
+ WaV9ZgyYDZ3gmGIihyDamDwsXr5WvoWC3X9g2e3Uow+Sbp3aIm/LZdTEGWb89GFCRoHHa54L
1874
+ /Qn2Sz6TIdwHZzs4V3MQKJZgh8JgB4BzTjpU5ixcJm9//rNqP+o0Fx/Z1dm5KDLs2aUdOGEo
1875
+ T/gbaGhsgWdu25oDjdokKFGxJ9ogJDAUFZMgHe/Rzu2DrUqnYfDS4+cG/+ojTIH4/He+DB93
1876
+ 2H7CP2phjptiOo71g1OZpVH9enLz5afr2qN9H+mVyiZjIBmghMEQUouSYTbOBMF74r9XKC42
1877
+ zsNAwDnIcB2LgxVncQYns866bv0WPQ3sjCIIthJXEFau611z3vEYHAIEgIPh1TipijOAdMyq
1878
+ 7EBoVsmo3IRZnM9x0OIWFMvA6GuAn4dBsEnD+vLKgzeoyVbrf9+9OivR4AlZHGTSUs1WKPu9
1879
+ 6l2haQum5wBo6N8AjWpDgCE+xYyMjMrvo6bITyPGB9UdmUNurQoilFp5lNz451CAwszoZs5f
1880
+ ih0IT8uR0FQmw7ZX1w66pc8yugii7Z16C7dBKWrijPny84gJkoMPuo7MmKiTgVPjzoB28dGw
1881
+ ee91ZArCu0A75Nr8lWgTnEFTwrJy3UZl7mw4YtAVIvo7rj7TvtLrZuzWKCvnRaZ5UxBsaOav
1882
+ 27BVxkAysQkiZttOmWtuMeOuiduuOt2fPJduJs1YCEbRKKkppwXkGI7E+JNvh6v0yh8AN2RK
1883
+ dK0cV4OGWbojozx+yryYCPbUOQvB+GxFnzFjlU2P0pgG9WrLc/+7Vncc2PeUrJyKnRP3QfL4
1884
+ 1U+jMPMODLkc51jHXKq64uxjhbsvRPrJh4N/h2LnNIn3zLK5LMk1cGq7d8VWtcKOJbQjZ+Gv
1885
+ 7k31QCDQekosD8mRaRBsZNziMm/xShkF7WIq5BgigiaDbxQ1vfPFMGzDaAtOtORBfdnK9VhH
1886
+ hMga8RhnVNrIQZ5y5IEeYm0bJddRE+XaC0+U4WjsyzEr0Q7k65ZFFSV0L7PtxBQxcTCjspAO
1887
+ BDoAFxVL8HtqrFMETUuWbwUAAEAASURBVCUXO0ulD+a9DQjufy49NWjAt6FJZM8/+XBVBEsg
1888
+ 4ePITYSRNk/kmQmR7Bk+m8E2jPfKveMUqQZvBzNxNG5QX7nwJdDEjcdAT8e8mfoLdOr5S1br
1889
+ UoN3EGEMFLmefeLBQcTaxCBK1G5Emf6GohqPYQ1nLlMT3M1/LAocCDmbs8RamxA+8nsXbMOJ
1890
+ G2F9mgIRH4uFeWMG3Y6tm2LwNW9MLZgHLkXMxY6B6djXTsasXt06ujf+8rOOxYEz+2h9a5om
1891
+ kIrN9dabLO45c/frJ9hM2gyEvXojMB6ywMBxW2Ko0zYH5jggMfNlRlEI9R3bc3BuTPxU4rPi
1892
+ 3eBYUVaIw40zfqk7wON/SYS1q/i+EtNfR03ETosJwBJlo4RIE8MPPJIZVfsKipkJxInAEmy3
1893
+ tKX0RRXRhecKZCPfaSmc5Qd6vPYZbDU9ol9vXzyMHQ4XLnHcdNnp2PY1HzstMFaAubeOEjbu
1894
+ GKACaZ3aUDaF03HKFxyF0nLwPZc2wi7XxVIQRuhclUOAwr6YXMP6deXh2y6VPbCH1BgXAbfL
1895
+ noLGwy0Ju2DTeML0eRF1+W07MxgMfvnrIyy4JRE+CKKlgNOeqD75joZBumP7Vh7Et5E4tn0b
1896
+ g/WvykH63vclCmLNODgL2YH82xmTjZfixK5YK26Hgbwod9B+PcDsJKuGuc5AfFlgaWhsI+CI
1897
+ S7Dj9h4yGMpk+D+ZCCjarwO7w5zxWcf4A0/mLc/1psg+yCEMiRfXxEOd1Rfo0KY5RHF7GLEt
1898
+ ETVrJ6Hed+tnYkF4EmDYomG9Wr68oiye+ufe4/DOV1Gej5xBU9HJKGTaGZ2mAuYyXrfqkCHN
1899
+ wOyc+4uvvfcFaJV/ERB9F47SEztuPXVZuBUHe7VPhaLkC/wFyIzxadqF17f33sYW3TUekZYc
1900
+ i/VhchBIwb7nG3O/edt2ZarJXITmnwS5NtbCKSrnshS3RXF9uTZE0mRGlbAiGhPOpMVZfbQi
1901
+ fzIXG8A4sCo4bthcq7gafe5A/2Ec/MJ848/XntpgjXpvKOxy3drr6Iv6BZuxPBDk+IHOX+/M
1902
+ vX1pPvl/9XUR3/ye3E11QCBmgs3Cd4Exif/950JJQ6cgd24aFBsO7tBQObuIxDEsnXfcZ5Pn
1903
+ TJ4a4/rN33D1UX/4nbP5QNcJfKuoOztDMN0l0GmYf+Y9lJB780VRnjVFScxsEakMxdOa/C+8
1904
+ gXBvBgrza4mo1wu1nak1Xrh/mzD0yzsyWr7I/MH5PhGzciqtBTuUzVc8znLU6lcgw8Feq9QT
1905
+ CEAAlqCcexmeoA9hHrqBObvvPxdhrbWeap3T2lxerh1kmYapX/YJHs9Khuutz37Wvd9hotu9
1906
+ XwWaefh8WjxL8hc+dNi37GesJ1snNgl6puSBM0/7R6bJ/2ffQ6HLfEffwHedqXojCZtq8Eum
1907
+ rZMTJcIsXCACVRTz95nCBec4QObc5t/GTJ+01Og3UmQ/uKtDIAwCoaNyGC/FvzoGa2rXX3yK
1908
+ PPfuYIh+2fzwpw0at+xhETiuU1vHIY5xMAqKhqiUIQczSsYd7KgxqWIydAZ+jSy14DhK+8S8
1909
+ J2ObE4lknId6JiC/yyEq53GkNPwQzi2FyJplSER4On8JcUNFOz+O4QIX844YWvapKG9Mqzkk
1910
+ FHbt0Poji5UOzdZVMKVa2JkcUhuain/KjPBVZQBfOHMxvjHtLcbAQcFowWrvru3VCAu3Di1b
1911
+ tUYNjLAd08QpgTJMrTF/S2MuVJ48+pB9I2ZugxKs1AfTFkKzwKM9KerW7lqG7aI2Zs9kJHPx
1912
+ j05Tx/gSh75/zfnH6ezVMs+heQp95sya2+ys4l3o96Ke6Z/KfiS6pvRmts+xKQsM8ioci1mU
1913
+ o8SRZoq9aRIeTlV4WiCVaZ1zCJSEQKkJNhvrvy46CQM4tR1HY2Di/kg0xQiJNTPYollDEHuI
1914
+ rsBFW8Js6ECBfANLXqfgrN6WUFQJdSOhJT4D+191K1Xoxwp6bta0gTRv2ki2Yj0/CQMK888O
1915
+ TS1qrvHT1OU5Jx5WKDdUfKGVMyoNQRbh+25GOK47d4Dd4YALPzgGvgff0XckIWhrmWYgleBq
1916
+ IPzgfy62clGp7MTD+2LNtfBAMvTPicJ9x9ZKV3DqVe2JBS87ytIFxoNoBpZrmmuhPDgPmvVD
1917
+ oYlPa3ZcfmBNq0SISSLpVbBcxX3g4XCufCSRSR8T6kWJuhA0ssOZLXVJAg0ISzmbtmOJKFMJ
1918
+ qc2/9mn0icDskrFF55rCHHGD+rVhRphxMzz6GfJGq28d2zbX87yjizE23zwDgBYGWX3eVkOJ
1919
+ yZdDR8pxUI61OwK8KQyDwalpcxfrWGXfsxRkMhpgebEJTNU65xAoCYHIZNYlxMI103tuOE+5
1920
+ 3AzYQo62O3JLSctmjVVRi2E5D2FnINGbDW30u6GVTCUsirHYwLfBsP632Frx0POfqCiJiifB
1921
+ 3aeEDJfh58bQMO+la1PYG86So+NygCLnz32kT8L6FbdwbYU2OEX/nIlTCem/T7wLTfD5hRTS
1922
+ yLRQ3Ny3V+E15OiyTUz4V7Tr2bUjTKE20j3A6gt5J8tPjp+2pe9+6j3dysV1N+adNt5pyYt7
1923
+ zllGzs69g1bRKVXnLwYBmtKk3flZaKd0VCxq07KJ2rEeSM3h/r0lBzNqu2NXPaF6cqERTQXF
1924
+ 3dFRh4SMhClhoC1RwXIqrAxS49w4841iXTLY6VnYS6xtw85E0RLRH7i2HKujNKg7tKMNViY9
1925
+ 9jfuX/9p+ATVDQiNm9vzyCwN+u5PtcX/OWwO8I8a5VNhAjkWtw+2fHKbHBXXvGMOGZfJsxbJ
1926
+ 3U++qweRMG36Yb/nOQCPvPy5Gd+AQ8BBwRSY9emxh+rjBN67O4dAeARKPcO20XJ/Kdfwbvi/
1927
+ V2Q79qjSaIB2dBKBEhz3G/NQhTcH/cSRDr7ZIU04bhMb8fc0NYdJYyxULlm/YRtsHMOmLnxx
1928
+ YFTyHghSQmpl+5kirpOxx5pWrkjUQMcM0caF29S2QLnlv0+8o3uqueWKh0FQK5QdmWUzpTS/
1929
+ DJqB2e2A/t3B/LQv24yGiY0nnx3Wb2/58JvfwSSgKbCumAm4JFiG4h7t0bBcxz2tXH9bg/3H
1930
+ tBHNGY7Riqd3k3cTqib+GsD+GDtdHn/9c3njs59ApPtg26HZd8+tjTS5O3/RKt1zT7wsYmTO
1931
+ msL6WT3sp94dHcXQXaGnQqMwtj8yn1yHpynXWx55A1uR+qtJ4nQYQaGN+T//nop2bSz9UceE
1932
+ M0/2iwb16soemJ3G6jgpOOzAveTX0ZN8UZBgmlPWxmKrJi2P3QpLjG0xlrB9co/3qx99j90q
1933
+ vxjE2TEBPGf5zP8rD/8bp8/tEXV2unVsK/uBmf4VkjMqtVmpAVsB9T44k+YOCtrsp3b4OlgQ
1934
+ pN191ju3mLGL2frnTo96IP7c+kmsnHMIlIRAmRFsJnQwtJ7vwskx92LPoR6cgEZoG2dxGSE3
1935
+ fi62OH3/+99qAN+KuHXGioDcF5sOQjcLW2PYQeLB4SclUGHLNH5NI5KEistEKb5R25v7wmkP
1936
+ vDZsg9Ox+3Elmds2ODAvX71OT+7i2jbXrLmnkp2XvkxX5XGlOWq+8oZLTo5oOxxDl8ZxDfqC
1937
+ Uweo2H7rjp2SjAGFw6AdOphHHpZBUR4rkswJt8kYu87wiQKwCNZ/afJSlcPa0+XYjrk/+4sf
1938
+ R+ohME0b11fFQ279oyYwJUZ2gDfljVNtfL63zrZ5+xy4RoZyZL4CsRZ3x/Ic2ncv+WTIcNNW
1939
+ EbmNn3mm/sjLsGVPpplEmY0kVW0vwBfaBpo9HKzxQUJDUTKVVEvjTjziAPl66GiZgvZYC8SQ
1940
+ 4iDSOWr6f/XLSN3TrSJrEM6VWE9eunKNbulSETryQr+0rtavT3c5AnYQYnHsE/+++GSZCunC
1941
+ FvYZpGXqlMjA+iKW9rhezaU6vic2aucANhOMXgn9sZZx3Cvycv5JRyA/3WLJigtTAxHwymc8
1942
+ xTcNyr5gQ4/UnXPyYbq/mJqYxhUVOPh9FxhuuB3mOEkUaITAGvpgnydZoM1wmiJNgfnOFMz+
1943
+ yJFSPEaxkxnkPPF5br35NgTS+8bXdfSDji5BH8P5114fFD8NbSTqEXcDsAczQ88UDnhQkoZH
1944
+ isxoaCQ5BQcnYCBkZ6aSGpcISQA5qCUlJst/rz1XzVgGZQTlZ069jmUOfuP9WvjeVDRChATq
1945
+ zSMULz1N8mEshWYgTV0z1/iHPHI2QtOnnGGTcSLuVNrh+GzywAgZr8XPXgvnoezfkNnxpe+J
1946
+ PJIcaCgtbGFs/VHxOz16nUYeSIF3PDVqGgZoNX0LvHgoBYNy7/ASWMDjUo4lyoyOGNJ8Jc+R
1947
+ 5yltXheI2fsWfUDzGvzO/+TJJ8OHbbcBzyhSoNsH0gvc+b3ipj+Y0cNB3DiDDrQ4035ZJm4B
1948
+ 5NYpHsBj7Ciw3ZA0sW6QFzQU6jqce9LhamfdG3e4+1C4vX54rO59N12oypI0VWwhYb54NjiN
1949
+ q4ydPFv+Gj8DthHWAnOcNQBPNK9MvzmQXjWB7QIaSSqNVIPLVVwC5DhE06DBYxXqF22AhF1P
1950
+ 7wJzzt0vxMM67gLZBTOxPAL4ZhiQMbogge9+f7jR9X9FkqU0/+x3d615CAR6rqfsyjGi/WiH
1951
+ w/viBwBPQNxy3evOa8+B9ag91dIWm6rXmTj5Lvg9/dDs3j3/Ok/Xv2hSkH75Z50OAhqMhk6y
1952
+ VFGD2p4kIEFz+cJRaxS2g9v4eFWv3kS8H8Peh4+8BQaTl2CO9dRj+6n5RBpioU8/HQuJy3bE
1953
+ PIBLTfKWULx7/r7r5KLTB/h8hqYT+hxd3jnbMbazQzKCx8vPOhqWp07XWZJud+EgVwgskz6t
1954
+ p7Vu0VgHPqOVy/f4M58LR+7D1gtxUV4LBy75jXcg9PtGAt707HsOd/YL86DtXD8WkaNwDV8j
1955
+ DsS+DcqDg3FuOy3I5QJkjYnpAz8ynyRqJBo2BdAyzMKzYKK0sdoxIJaFXSD+wt+KfmNLx6rj
1956
+ vU0zNEQQZsUmZfQp/nfjBdKzW3ttp5FoYtu2bXVObrniDDn7hGDGJChPnjwUlWfrvx8soL0I
1957
+ M6RcHqOVQTLtmp4Pb+7J5vGWnNnSKQ4AnUd5NoR50ydxWt3BMFpUUjo2vaKu50Ei+PS9V+O8
1958
+ 7YaQQmWYiQPyULjfgIAjErYBOj2wB3osZ8N86cuwJEirb3Th8sN32gT97RA157/XYO6nhiEQ
1959
+ JBJnZ+SWDKMwYZoQmxlnf9QIjbSt0ALXgzddJFfd/byu13K90zjTaDm7UGs+YcDmkYNt0BkH
1960
+ vvWVzFm8Qn1wRmo7As8Azi/Ikx5dOsq9N5wrr338g8yHNjbXi+xAxPN2A5aSAolQKYbls4du
1961
+ 8AvtKLN84ToMZ++0aoTk/Y7+7UDkf+kLTRu/JNpHQsHo7c+HQUt8OQYUMBOYQSunj3hMJ+S6
1962
+ nt5h+1YdXQe8AWI2v8iQQHvSpCYs06SI0hAdKiuxTsAUhKkURs3D7Zn3Ahx5aVwc1sfD406i
1963
+ cgeWMjjje+btwTo7YfoJyDfHGebUGJmIl326d9Jzu5987QtZQQtvkBwYHzzzt3D80AnS91oc
1964
+ X5lY9vxEzMI4TS+FY1vQg1VCMGA+QuufaRIP/lFqYBxmumjXlCyEc9Tq5n5qb8MngWD7tbhT
1965
+ AenhWy+RD775VX4bPQUnre1S/xTD6h8iZvZYVpaWs3CaF6Umec+u7fnVkzQIO/LCNsr+xvqm
1966
+ Y/j4OJ6BXRgvvsrUPca5KJchUuwHzCNNzHod42Gb4XYyL/PG2WouFCS9OTHhTPpsF+8/dSus
1967
+ 8g1RacJ2GjoCJ6rtQ9uk8c3wFI0TG2K8R7vWaiObJlVt/w3KD1LUdor08z1GajhrLWp8YPhD
1968
+ +/aUT1+4S8XxP//1D879TgfW6DLIixJGZMSblzTY4D4O5wncgjXuXpAoGUcfvgbpexPt5XSs
1969
+ 3++FOnzj06HyM/Q9tvrO++YMm1XHFOgsJmQienRuD3PCx8GK4SHK0KkvnwTA+DZ9244xNod6
1970
+ EE8K68jGan27a01CAP22oDn+xqFDdaTFrgnT5mLACAwWBIODHTU8+++7p4p/SwbIdIbZC5ap
1971
+ SJAzDa9jA+4EC2nm1Cjvl8A9tz2NnjhTRk6YKQtgQJ/2m7kW1LYlFKUO3Fs7II8rHAcR2Oat
1972
+ sMftSYPxt4ASHLUvvQMF87MYIko/wUY2ObjUhsWwfvt085kwDOSB53JTYcgOhPxC/xSB94NV
1973
+ o+K0XonltDmL9Ag+mjPkOqbu1QYUDaF5y21b++DEoAOQrp5/HUjWc2dxXK5nhNtZg+YDdcKj
1974
+ HA/o3RXi6sA+dn7jeimtzNHcqx30+Z4DPhXNenbtwMewjmLFUcCcJ6ctWk7cs1VrvCOsm9Ga
1975
+ 11EgNtRiHz1xts5w7MyBYj/i3g7MFi06WbceB4xMhn1spfy+l1oq+N8Xhy9QzBmr45nE3D1A
1976
+ vQDv2EtC2751c90TbYbNOOws2KVa+SRM/jaBjHBbXXeY0A1XBwuWrpIFi1cFnTNNJSoS3QNR
1977
+ b1ZfweafpmCnzloAe+ALZTFOcKNeAGfdPC2qJdrj3t074OCPHsJlCIprwzmeFEZ74iiCHzK2
1978
+ Oea5N9pz6PZG22fZtgIBTLn2hDEX9jOLAZkAnsxGhUfdQ+/LANsF46Xdaz824TKHdzwAhrsb
1979
+ uEa7HOc5b9MyGsYgDbg0xYyzK7a27Qe787SWR/vaRbl07Cj5Z9oC1U/xphvJ+GDjXARb+DyM
1980
+ Zio0tIk/dS6IV2pSMiRBjaQXLPIdhL5KCYG3/9jwZXVdjHxw7/2UWah7iOPVeiPqPgUi8WZQ
1981
+ Nu2BujgA+eiD/PBQkHDO9HbBmMlxZ2VIXRjb9H3R392e7XDo1Yx3SrBR1HH461h2RbZNr2xi
1982
+ 5AyCMyZy7cbmc6TxmnzEkhs7SBafUuQxk4jm5hliQY3X0MGDnLOdPRefZklfS85TyT5MGiq+
1983
+ A/OWBAlJGpSJyscxN3QguuXiYkW2JJSKzzdnRDRDSl9kEEOZKlCVAIH1l7ukNEl6qbMRzAD7
1984
+ g4e50dIjWjJUJbevktP3JkFCT4t6oEvqKElLwxGyleXIkNBwC/sul+bYzyrDUTrAvsMqDlv3
1985
+ xWYqujooNir3sdohUE4EmziVpuFFEJZemAZnV2GdGajVC7/7F5O9/jUSO5oFx4JPHOTCJeGL
1986
+ 2effG19wFCU/mfSVVPO2yKiK+hjuPXNnowofYeB7UTks2UdRIQu/t3HZq9cH31kXPq/2a5FX
1987
+ jop0Qe0AGOC1ztr0xngxOfCmY94Y5kwjMR7113zzvPDc8hudNy4+Fxcmku/0w1iMwlZQ/Iia
1988
+ Ymgm4Z2NFp+mzY9tE1xL5zvG7M27eacfgt6bN4Ff68+GtfEHfER3Z0pqYysU1lRiodf+F/66
1989
+ LTIGn9fQfPtj2O1uikaktFjvdkV1GYoBgfByuRgiKhykpE5UOETgTQRh1Utx/nxDkt+L/yaQ
1990
+ jB2civikr8N8Cx7sPNFFfWsiLyqdQHRhMqEfw70vOXfhQgXS4l3JPoL9F/dk47JXr99w77zf
1991
+ I7gPItTWPzCwUftvwpXKeAomgIE47F3hq4089EtR762/kr4bf2FrEEH1faEoCr2wieFqvwVi
1992
+ NHeWgFmv1p99Luoa6i/0uahwRb0P5CusD0/dxfTdH6i0+fRHVO43RSNSdcpQ7iDV4AQil63V
1993
+ YJBc0R0C1QsBN/hXr/p0pakpCDiCXVNq2pXTIeAQcAg4BKo0Ao5gV+nqc5l3CDgEHAIOgZqC
1994
+ gCPYNaWmXTkdAg4Bh4BDoEoj4Ah2la4+l3mHgEPAIeAQqCkIOIJdU2raldMh4BBwCDgEqjQC
1995
+ jmBX6epzmXcIOAQcAg6BmoKAI9g1paZdOR0CDgGHgEOgSiPgCHaVrj6XeYeAQ8Ah4BCoKQiU
1996
+ aOnM2kQyBwQWYXAhyGpe0ENNwbEU5TR48SCEn/7AyUM70mEzndEZxGmvmQcp7IuDGaqzo93t
1997
+ n/+aKJu37MBBLoF2BpPcOOGoHQ7N2LM6F3+3Ldv0uUtlwtS5gZOlkFMegMKDT04a0Ffq1q4V
1998
+ Y97Z7svKBdpLWcVYmnjm47AiHlrEQ+FMztCXUVweXnTc4fvhSM7YD7wpTb4qO+x0HBjDg1qI
1999
+ gzGpi1/gQjv7Jw44AIeaxNqWKrtkFZd+iQQ70BUCd4WyV8ynQn7dixAEDHg7dmTI8+9+I4tw
2000
+ ylMSTvixjqcw3XHN2dWeYO/EecUvffCdzMbpW8k4z9h26EwcPnL1ucc7gm0bRAVfR02YIQ++
2001
+ +ImkeOqEx9S2ad5UDsLpfdERbBJpO1jYaykL5LcnXsp4yjD45JkL5H/Pvq9noTNast7mxMM0
2002
+ PVK1phLs0f/Mkv8b+IGkpfGAGMOw8ZAcnvDWr093R7AjaIMlEmzGsWXbDpmFYyaX4mjKdRu3
2003
+ KFfUtFEDHBtXH2fettAjFQMn45RRR4wg89XKCw7QTU1JQmNOlmScNGSaM85BxnQ7Sc+crlal
2004
+ LVQYthoeW8nO7GVY4nHGM48zda5yEOBsqBbbJI4ItQeHJIFgs60Wbfe66LzyoBXO0P0NvGiv
2005
+ JX6hqfF4HoS92zjDkCQQM5wUlgDGW82h4xQhljktNVnP7N5tslvBGUnUtpSqOODUdE2dBDst
2006
+ FW3JTzYMhhWctSqTXLEjIc9G/vjb4fLNL6NlxZpNkpPHg+8DZeOhCXVxlnRHEO3D+vaS4w7b
2007
+ DwfEd4D4zM4QIwQ/Qm+BlKvnHWEw8AZ+cZwaXprn6llqb6n8vdbzsqaU3VPk3ehWiTQIjiXW
2008
+ zJq/RsJVV7F5j5Mdu9LlsVc+w1nrkCSpaLTYAEV+5Cz/zOMPkQtPPaJIPxX/wQcIu6xN3Hfk
2009
+ H/Ez7/xfrI8acyU6BocQDIIeo25UNQY/FrRIgv031q3ufeZ9mbtwhc7w2LmSkgJn3caroEf0
2010
+ /NmZ85bJtNlL5P2vhkkfrLU+cvtl0qVDK38DNVVQTEUoF1DM9xpTJT4M2ID9cPhvqj0KQf22
2011
+ 2pe2ChUwXBMM9y6CIvGs6MmzFsrUOYsgZk+KIER4L1lZOTrWhP9a+W/9bZk4+R8qP18uB1Ub
2012
+ gbAEe9KMBXLTg6/J6vUbpXbtVC0hRVlepyINzLApskxN5ow6TjKzsmX+kpUQU5neHHmfjtyn
2013
+ Nw/u3iHgEKhaCFAql5KcrIpGpVnq4BhDEatzDoGahEAhgr0Z69UPvzRIVq3bJLVT0yCNNaIc
2014
+ S4JJti155RpWAWbHlpgX4Pmi046UPdq39GFofHIN/KnXv0KcGwOdDJ9yc/LkhCMOkAtPO6Im
2015
+ Ye7K6hCo4QgEM/+6Fu4bVMy8IPg7wdKxRlGz32JZQa/hsLviV3kEDMFmL/HNin8dOVmmzl2o
2016
+ HHDQegO+01sWZtHaqdjB8guUACclJkluXq507dhaLgizppSVnSOjJs6UeZh9p3gUiLKgAdyx
2017
+ nSXuVR5LVwCHgEOgBASgcqbrmDqI+Ggv3xnyy4U2q45kItL38FdQgP19vjFKv2AQKsD4Yxyv
2018
+ Porve+MuDoHqiIASbNvcSYx/wV7YvLwCaCoHiksxlmp3ooMcvN9eMqBfL0lMipc5C1fqHs0l
2019
+ K9aCYOfJqUcdKK2aNw4E9N2x09WC9m+ttFS/xi+7V2Jirm8LT6Eg7oVDwCFQLRFAz8c4QmJr
2020
+ JXOGEGN5DdI6Pw32l50KbyDWGEP8/vHENwEa7Yg14XCu+iNgyLKPc12zfgtmwSskUS13WDJO
2021
+ 7hZdBur31114ktx61Rm6xcNCQxH610NHyzAQ+lOP6W9fF7qazmY5YqMtiF7LyAv5dS8cAg6B
2022
+ 6olAPRhaeebea2RXRpZf1yUeFkamzV2s2uOhpc7JzZF99txD7vrXuaqkZok2t0m1bNbI5z0w
2023
+ VoWGd88OgeqEgBJs8rBkVzds2SbbYWmLe38NGTW/+bC2Va9uHTn16P4+Yh3oII3q15VrLzhB
2024
+ zjv5MKlXh5ZqAt8sUMnQBuUs3TgTJ++55h3YAub7HPYSiDMHhkQ4m6dLwn7lgOJJwE/YKPCS
2025
+ Iv7IVr4CcXGAyIRGKq/xulc6ORA9mQ1/uQKv7V0gFvtGVDGPRhQKxxXwoztBAo9F3DF26wy2
2026
+ rCcuM7CcCRgEo9LC1cwyJFuCrSsbf9ldqZgYtvyaLlP3lqv4dEPrk3XE5RcO5iwBMWDbK2+n
2027
+ bSQbS0XgPxV37FEub5eNcubSDBwKqjs40BdidTTOwz5FzIL7lIkx8hopOQfsrz26tC/kMSMT
2028
+ +OEtsQyMFZhJo6/UwdbRvr26oK9HWka0A/TZPPZPuERsMy2NgptGgh/uGc7JzS2y/Vp/4a7+
2029
+ HhUCJuPLgS4Pwaf9hcB4xljo2R8yXLTFvsuDRn424mcsCdivnhLULvmWf5HvY+f4ko285qOh
2030
+ M1ccuwvjavNsr/BYKsd46AI4sE2w/et+frwOV78m9eLzEDp+MJXixid+L41jcyyGXEQUdVAP
2031
+ yATXmwkgCI0VgzMWamTu2LlL/ho/Tfbs3JZf+TrI1a9bG88GXAtTJgaxf6YtkDXrNwlNb5KT
2032
+ 9roEEMClEKf/OmoyOgEaAdKhCc6mjet7vWkH+Wf6fJiu/Eemz1mMvZwZmoNGDerKgX32lBOw
2033
+ /7s7zFcuXblOZi9Y7jOjaKKwBgsO6NVVRfJ8y473z4z5PjOYgTzRDGgrcO379NhDdqZnyNA/
2034
+ J8qwkRNl5ZqNmr/ExHhp26q5HHXQPnLiEftLXWVQgrIa9GBR2rhlu/w+eoqMGD9dlq9ah0af
2035
+ q1vlOrdrLUcfso8cc8i+aPgwshAUuqSHgO9Fy1fLryOnyLjJc2Ttxs066KXBcEPPru2h1NdX
2036
+ Dtm/p2LGrXo6IGrUCO+rqL26dZDWupRhSPVi1Mkc4Mjy2rpmJ6lVK0UO7N0NRjOSdYCfPmeJ
2037
+ TJ29SNZv3KpLG9RfaNms8JLI+k3b5Pcxk+Wvv2fIMpSf+NMYDPfvH3NIHznu0P30WbOl3ArL
2038
+ ZtqSvivixzIWtA43fOxUmYg6XbFmveTmmjVRGvdo06qp9O7WSfrt2126dWqjeS8iughf29Yt
2039
+ 2EWxWdvH6H9mo41s0DZCBqEr0jnu0H3lyP69tRSjJ87SQdnbWdnemZ9OHh2ONYiP253sLgti
2040
+ z07OtnHAPt2kDsyBTpm1SL79dQxwXyw050o/bIf7w3ztacf0Q513iKgcTH/8tHnoe1NkyuyF
2041
+ snMX+idy2xAM+IH7dJeTjjxA88c+qrYAIoo1dk+WCQ8XAwkE+0xhgm3biOkL8xevVJOgE2fM
2042
+ k+Xos9yrTQBp+pI4H9C7qy7nhWuj4dLlO7b7GTCpyb7L9rVh03bTftE32rdpLocdsLccdfA+
2043
+ JZob1cEa8dm6nbNohXz/+9+6pEhzxCwBJz/7I4+nQ1LZBfpApu8F2hteYBzOkAmoN5YtqD2h
2044
+ T3Xdow0MWbWUFWs3yJBh42TcpFmYhO1AKCxxwvDNnp3RLg/bX8cvMxYb3BhvUS47J0emzFwk
2045
+ f0+dg3ayCIaztgoZgQIkXgu4doaC8f57d4HVux6Khx0vgnNdVOyRvDd5JCM+GfkYN3m20MTp
2046
+ 2g2bUQ9IBUNUHSy1dm7fSpm6g/ffS1q3aKx4ljQ9s+PHhk1b5bcxU2Uk6Nuy1RuhDJ0rNH7T
2047
+ GePTcYfvr5hxojhu8lyMe7lKp2zOSfT36tJBUmEUZ8LUeUG0h34skd5v787SpGEwXbNx2OuS
2048
+ lRh3YaCMO6+8NaM0DGNZP9C6IIKdggrgrIxcBgd2C34cOi1F4i/CdOTKtZt1Nt0djYPcuHWG
2049
+ ECAZTcmE3bJtp9z33AeyeNlqSUtJ8YnaTQh6YwccPmYaiNlU5doSMLN/+4lbZAAGOuuWohBP
2050
+ vPEl/E3VAYoN3nLgTHP0xNny/pfD5Orzjte0n4Jf78ySs5A2LZvIpy/cJR3btNBoWfnPvPm1
2051
+ jJ08C/myM+Y45crPOelQuenyWnLnk+9oBRAGzobpWDkz5i+Vn0dMkE+GDJcn77pSeoaZLahn
2052
+ 38/nP/4lr370vRIqAq/5B0iMiw3v++FjZd8eXeTaC08wRIvQRehozvPNQT/JR9/8LpvAFLAH
2053
+ ExtV3cEgN3HmQvnyp1FyPJiLAQf2kvsGfqgMGfPA9NUhT8/ce62cfcIheDT1NmzkJHnw+Y9g
2054
+ L9ps6aM/DhAdgN+QN+/H1r1V8sTrn2tH3oU8cLBtUL+OHHlQnyCCzfr57IcR8hrLv3q9Nl7L
2055
+ tDGl6RCD/vD7OHS0bnLdBScqp2wY/shA2A4m8uUPf5AvgfGmrab8WlUoHxtDAYjSZBCj738b
2056
+ hzaRLPfdeIFccc6xLE4pXJxi8cHXv8rbn/8sq9dtRlysV6COZLm2SqL7LYwNHYrBnLsm7hv4
2057
+ vmzcvN3Xjog9CFB2nubn+otP9udlIpjSG+5/RWdZpsWBuUQ9NkVHf//pO+SvCdOB5Y+yDeWm
2058
+ FEzLCqjYrsZPmSOffvenXH/RSXLDJaf426w/cs/NIvTHJ17/Ukb8PU0yQfTjwEgz/0Sdyl1j
2059
+ 0KdYvusvOVmlBvEe2+6eaHaT2zhZvnqDvPrx92qLf+t2Eij0AwzkOiCzUoDPZPSFwaiTVs0a
2060
+ yvknD5Crzz9ejT4VV4iZ85bK8+99AzxmgYHPNPEBdPYv1vn0eUvk22FjdSnw1Yf+jf5b1DYz
2061
+ 41/HLeTn42//kGfe+goThm2oJ7YbtgnNpowGkR30/Z9y+9VnysWnH1UoeyvWbpTbHn1Ttu7Y
2062
+ qdIcbecIzRnn/TddJGvBsHHsWoLJC6U9lkFgRNNAcL/5ZYwyYw/cdLE0aQQCwoRtY/Okxr7L
2063
+ yco7XwyTaWDMMzDhYgM3Q6EpDwkitwB/NXSkNG5YT44F433N+ScqEVfsPfHFesu2PfTPCfIe
2064
+ xvgZc5cqDWCVss36bNIorZowfa588dNIad6kgRrwuhbjSTsw68U5MmOffveHvP7pjzopo14F
2065
+ x3pCQjcD9f/D8PFyLCaE55x4qNz91HsYZ7cFpMLwCNZFnrjjCvXz4gdDZBbCJEEBzAsppZ43
2066
+ Xnqq3HPDeSbiML+kudydRcxp8dHrKOE97+QjYJ65ZzDB5syWYu0MzLTjQOXNoI5fZIyVT27r
2067
+ va9+kcHDRoOraCd9QGgO2n9PcK7dlNvSROCXgNLRHgormI0yWPfTtBP91Y4FP/kQj8OfPzDC
2068
+ j0HjJUgLYRWpFjgYKq7Bg2nZ/pZWIDvQmZ5//1tpDqP69INk/Y6lYLyhDYgNmQwCBz46VhPF
2069
+ OxyA73ziHRkHI/W1NT0khyR9RVK/bMyTYC/49sfekneevEXatGDDYKoBX2QKBr49WAkqw+uy
2070
+ gPWlGPk6KcL9M3O+LHl6tXKtnNV6868JhvkhV3j30+/LT2jMNHlIDs+kjl+bDUTEvJJgjZs0
2071
+ G/FTq9+UV0uMbxx+Ap3aBDTYJPixYfIJIH6csXKW/ujLg1SawRl3aloSmLlEncUQT+tY/qde
2072
+ /0LeQUcjw2dM1/ryxnzBoyKAm3+mz5MFy1bhGXtrPXHYuMJdyaDc+sib4IyngOkyJk0ZKUtA
2073
+ 7t+kgGeAz3XQJg3rSv+YDxBhbuniVPLyyEufoqOPAJYoF80q+r6xPETUuALMyqbJTAzqlFqp
2074
+ mUrfl7iCBMlNMBIl3yu9MNtsq6Yf+L6AAyCu7389DDPrsRo7cWffojODlnlIz8yQZ97+GjPu
2075
+ NLnsrGOMh5DfsSA+HNApRaESqNp1ZsKMgln3XXdAwkSi0gx2nhMTaCrXl2BIfJX7GKfElP1g
2076
+ IdoPy8K+wDFEi8KBC3dKEH33GzZu03JxtkyGu21L9F1+0zYTKM1XQ0fJY68OknWQDtHMaCrM
2077
+ sxJsxqtAxaFi8JQJUf6Onek64UBN6ddwPwzJfvXeV7/KUDD83NJaCwyxZsuCziv8UC/ogec/
2078
+ VonK6cceFBQds0kGim2C7cTUiulfE6bNlw8H/45J1Uapi7plZZr2gUBsMHigtOKrn0erlOCZ
2079
+ e64JYsptQtyG+9irn8nXP48CM15gTAZjMmcd09S+q2DgB4XYtmOXThwo6brn+vPkLFihM874
2080
+ tmGjudLS5iMYa777baxQ+pmCeqDpZvZvJm2qzZRLy4p3JKjvgsn4CxKRu/91njInJs3gfNDi
2081
+ 3hOvfaGWPEkD/JM8H042AYaiIva8RSt1YpIAGuEfL/kR+WLfaAKG5bKzjpZ7Qa8ME2ZS5S8J
2082
+ +BD03TOPP1ilVlppil3Az4i/pwvt9lMaFGCKsPUZk6EWkPpedd5xSp98I6wJ3appQ+mxRzuI
2083
+ FHN1ouONk5ki98FZVzYo/nhM/1/56Du5/M5n5ZwbHpVB4O4529KC+vKhAydbGP9KcvTi8UcD
2084
+ LCSc5BTrIE3lTuHFDBxECs4XdwIGToK+DkRM0/fEo97Uc+Gf4FzFQ/M9AVaYFqglJp1dajL4
2085
+ 4X+2DvzpK0RFYk4OnNyyfjM17E/kHcy+Xvn4B50tmYMTNBrzHfkz8ZjhncR2O0SSOynqJ9NS
2086
+ gqMo9P7nPpKfQazrwLCNJZQ2Tm3JiMNAamyUb0WHoig6uMzhE9LuEOKRaVBi8sRrn4Op2aTp
2087
+ moFQYQmKiCi98elPmIH+olIYO/Pge2Klg4iGQCL4z45IkSyXIWw9B0UY8kDO+M1BQ+XX0ZOl
2088
+ LoiXlh+FZ5ZzUMZ0xMP4sjCYssGTS6cZy+6duJwTq4tDv8iTgW99rXVOBiQRYkY64q5l0yeT
2089
+ D2aGnDJnwxTnMm9+F/Tgfxu4wXfiwD92/s1bd6LDj1MJBEV1TJAtR9P1tUnek7DScea/AiL6
2090
+ UDd7wTK5/fG3VdrBdWHTTXzxYKDSumFOERnXBZn2uk04O0BTCo2t8p8pobrt0bfAPK7R2TIH
2091
+ UsUEg2g6+sjO9CwdkzguccBnweLRx2ujzfw5bhoO6PhAdXYMEAxpHEXVtPK4ddsuM/ZwBNXP
2092
+ /GHl0J/+6MVK4Ezo8L/0w/ZN4oMGibYDJgh1Z2Lx5RtB+Y46CZRovfbJj7KeY1ohx1D4Q3Y0
2093
+ PNsJ+uefkJis27D1/9s7C0Cpiu+Pz5NupENSSbEVsbATxcZuVGzs7m7sxO762YXd3YqglCBi
2094
+ ASKd/+/nzM7eezfe2/d4D9H/Drzdu/fOnTgzc+b0GGFtY8ZzLTbWm4pVdtWnvIiQUS+iisxM
2095
+ bLzHiRExglTzKcQ/p+e878vQNRIZK9iXgD6bOQUjcZIIQjhXn2ghb5cvTZ02w5186VBJCN80
2096
+ 3X5dSWjTJVln6JzKpH98pYoHF4ATkegdf+FtJlHwj9JvCycsdFfd/j931+PDjJHyZzekemcF
2097
+ cW1FG7zATxOkZmBOpTdrClWRlBrStpv2dr11iAnMSsBjPK8h2Pwsddc9TwyzcYhe8q1GzTFU
2098
+ jA0qZL9Zp0rUywuk3ttpy/Vcr64d7KbtDv41jzh3lx6ypho4d+H80I70N3CiRsFEyKimbd4s
2099
+ bMTEJ10y1B18yjVuhPRI6W4oryEBezFdTNZFyGMTWI0EyV4vMSo6aSYM90n+2wNzriY0GxfA
2100
+ YQHAQ1cLOtfQoayaSruRekkTGsrV6/PnmsHZ7DnoClOTIrRFv5kcr0lU/6coQZ/88MEx3iRR
2101
+ NRu1cUtM7FgO9IcMziwRPvNEwULUUZZRZiFjKd+Pv/Cue+6Nj7OoY8oB9iAnjHhmScxiiCq1
2102
+ oHlaIdDoPdqGuBEJRM1a/nCSaNwoOUofSNeDqB7KEm7AEwCCgf9vul5EeHAn8zTWNAqEZpNc
2103
+ bS0rsRmZZEHz1KM83llkRkachLTD5uu6Pbfb2ETtEFZtWjZzu2+3UVnFlvl8mAiEu5941Ti5
2104
+ EgHbw9u/RgsYV8Z0puAOUgDWILICupRVd4Ctf1nzW/ODjX+mpF/M+ZmzpIpYKNglElIiIYdJ
2105
+ f4pa/ybxBJHbNXc+JdXMb6aeCmsKuHmIe4KEuU75iMYZt8KMQhNVLZEfcLWX3PywIdLa4kpY
2106
+ lswfiDl0gBv3WcVUDucM3sftKM4GzgVGJPQVSRxczb1SbcXXxPejfjLuEmminRqXgbvmzpsr
2107
+ IkAE4fTZboaIQtOTF9JjP0X9ZgxRqfGbI7XIDK2BhehFE63wdgsjR//s3vk4OY6JqnxnNIQe
2108
+ J3qOe5FZ4M+Zo7miuThH/cgo2jYFDN2QAHlCxpfKnLj1gRfcy29+ZoQKwLLusz5T8wT9NbjF
2109
+ 4nFovlu3BHeDoTITZ2OhcNpltzxqkjNfcmhoovV5f2CId+Xtj7kXJR7Gq0BcTGYXjHiGILe5
2110
+ qnZkJjjmWZrLcNEwVj75drz63udax8Nsb6kW2h4rgL2F8UHSPFfibN6CUC6rFw3r1XOHSCWA
2111
+ bh9cEF/4NfX+s6/LBmvE6FhNvsR3FKMElY2XQobHi2T3Mt/sAvbeYePUTRF6XMUbggHFkfv0
2112
+ d9fc8T83e9E823QihMPA8I83GCJ/VQtOQxKjNz760k087Q93x2XHmZEH7yHNt/LtlfAeddpd
2113
+ XxpAs0mBSLSaDNVGSgzxqSKteTEMC5HJxDtQHAuEqNq1biFxXSNRrbNNvOcXGByPz2cTSL8K
2114
+ TeSn/EUqm4m/q6ze15WSH+5smCjRV9//wjaVdHlqE22dKIO6H2T01Cx1xi0L+J7HXxU3OsPE
2115
+ +EwloBZ6jj4CShRuD8Mr3sedDi40LLiQ19eV7AkGXEw2v7n5HB6SfkRAzE1ljNehbUuD2VgZ
2116
+ ecEZ19EEjk8gv8TTvSnownSdyyzSYpHOTIgAToA2Y4gB8cQYwYWib/pLCBWRqyF+JoKNH4F3
2117
+ 5ivcbS3XrdNyJoai7xMVAQ91BJtSsre5mzVCBjsY10HkhNnI+mggyvr6cw5za0lFQwIZjRo7
2118
+ 0U0WodGhben6rNw1hbsltlHeJzE4CILTq3w7w1zz1umok3qs0MqIGyjy3zVWIA70qep+uVOY
2119
+ B7wKouy+fDuzNWgu3eNoqYkefOZN94dEgFgW+w3YzwQkKXDT8fSuVCKoD0Amfo3o08bFE8gL
2120
+ ta7atWnhKHuGkBUi82hN8cbSlV4Vh/ye+mQifWucLAM0B6qL8DvjqD3cPjtsFp/u7i1tfCeI
2121
+ c8QTpjpGPQIVRCI2JhB4GCrBKNwq6QQiZeDkYerxAngAIrNbZxmKrreG6UqxBXju9Q/N5icf
2122
+ dGiajYpdSD0jJIxNzR7bbyxDz+buh9HjpbN+QyLl6Zr/iNQ9pD3xMd+MC5EO5U+Gtey1BWp/
2123
+ w/r13K79+soSv737a9p00+tiiOutuX3ZzFpw1/daR3DUGLuROPv8/qdfE0HucYWfTXqg1zSl
2124
+ bD4gnm0jw1L6QfyNGdJts0l7DAem0xgIl6GyullSsJW7dTIJGuUXmrAZeFAwqSOm0O83/k16
2125
+ ykbIhg7sWjVvbAQyxlqzNGexUyEZblND6POk3/80ScU1Zw0yfDtj1ix3nw60gvhFxQdZ7fuZ
2126
+ KlswxNbJbJP04HsZgY36aZLgFVQQ9DB/2lAxSjCkRX3lbYAoHYJbqg7B5K5Hh7krTj/YM3J6
2127
+ AmGA7QlrDSv+UDrMALgUQ1Jsh3zSuKWu0l8g4MEH7ijksJxxSZ9q52cTAvFAJdhGoS76YAY2
2128
+ lvaLmmggmxeU/JVnHGxy/VsvPlZAm+JOk/iJzSPSoYqCULm7bL2B5PNb2eKAS16uTTOjihBj
2129
+ oaszcIraJ8GNLduwgTvx4J3dVrLeW7ZRPeOAP5X14FWiyLAkh0oJnU53qoCLMDl5d9Be27rj
2130
+ ZPQRUv9N+7ijzrnBvaSNGzj4CaGcWvUzReVx5GhIWCy/LwOgWpq0lk8PKJPyodY202Aed+BO
2131
+ hnzhXngXq98b7nnGFn6JJkYSu4eW+Rrek5Vk+sxs1e8teLVxCaEsFLFx0K5buv132cy1T23Y
2132
+ 4yb8JhHp8+7hZ9/QpItv2uWDkvVBH1DmbZo3cXvtsIlZLrMpw+3gR9u4YT2zN/hIVrp+8SRF
2133
+ 8ExADDiOOWB7RcVrZ/NpkkRoj8pYBPHfHEkdQCRltWyKEBELjrEgWds0w9EVY2i3Qse2mhv1
2134
+ bVFgse0TuSxn6nf5vtgAv5C6BJ11vH0gEZDXtpv0sX5hpcsaIbTvPeLGhz7yojSbmtnaHMIG
2135
+ UGjNvh6Io/luxRU6uqGXDk4EJuou9dUx592ocdcqiU8TwWKyiDQIFtYzmw3GLBi/1E0dZehX
2136
+ FGtwoen3Txi4i40NcEMy85ms0bFBwAsAg1E/l+M9L7QXlZ+PjZP+oF/FjoBxZRwWiHDst1kf
2137
+ N2CbvrrGHChq7wayHj5gly1kwPqwlxroEUj4l19/l1HVKNuwUcO9/t6XJhkK71Iu47ZIO9bA
2138
+ AVu7ow/ob5b0oVcYr30pi/3SE+2gfQtcW+nMb7no6Jixah/XuUNrd6JUFWniNlUYBPLPIh5Y
2139
+ N0l3r1QGX6yVTRs5m/yyUwfK+Gv1VAYnA95V3UEnXyUd/0QjsO2BQMZ8/FsSgr9loc6GzfvP
2140
+ vvq+qRVRQUpeZOUCQuYRBsbHH7SzpBXr6ljlxqZeg3C+YugTgtnnHu8qrzVJZbHp47Xyhbx6
2141
+ 8DooNDGXYZBgAOrKKwKY+PFVi9Cni1g+ef8BDt0+xCU49RutzSuE/9/96FtXS/M7DDtjCFME
2142
+ YYfkF2+Yr78fJ2v/H9K4g3bRZgxUgfeJ2vsw9mMdkCBoMJy9Sv1k/Pz+Z49yfsDE8P7rkt4g
2143
+ hYAIC+ueMXxNOn6M2Vbt0dnef03zDVutgMu4yYxmr+sqpmZ3GZvFU9aGzUMWP+5AG6zVy4yM
2144
+ 0Pd8oE0IcdpsUVTVNHjeQpyuBvgwtb0oBxYf6rObuEgmYyNtrDUUGc0DXxtS6h0MIOAGe4hz
2145
+ CAmDB5CEGR+peHiohWoQAK0tEeu5g/eWP3ifVHbvsrH+mj1F9R3iDjjpSrURoiC/8UeoJ/tb
2146
+ IkEt+E7a6PZIxza36WcGXWw0L4tDiSgySrChtgkdyvt65BiHsQRUZkjABTHLumv0dFedcaiI
2147
+ Dj8ZeJ/gD4fvvZ1NhEtkuVsDxB5ezPhm4D/TZEPMVbd64AAMpdimsc9Om7gzj97TNr3wKnHd
2148
+ zz1uX+nIZ8mN5P0U8g1PC/+mD3AguL1df+7hbo2VuiZeXmf1HvYbXSu+/H789Jb+s3DYLNZV
2149
+ nqtOP0Q+/fjr+9RadhNH77+9zSeMnJLwDbmS3yAUPAyAR1hAfEMAXnbLI2Y13qFtC5PyrK85
2150
+ TL1JcVOyvEJ+4dKCNCfo43kHyENkbLbeau5yIUpPUfvS2otbxfiGBMFU0TPNsVzFh3bnrdez
2151
+ zRpY+hmyjBBhV1vU30glZf7mNnH8nDV1iOBRraa3PYDgqJEyOGQDZ5GDHPGSOPeYfVw/RSkM
2152
+ Ce5yfc3VFhqrgade7cbLCntpEo3jEYD7SzVTt/hW02uIPbjE/U+4QpucELDNPZ4jJl/Gxg/E
2153
+ aPOGian/iKVBoNts3Nt9KxjhgonO0q9tP3chyLYRPjz1iAHi2iASPYwpGe7Hc0Dcy06qQsnj
2154
+ PDa+3eSF4j1LojIQ33fr3N59+6PGURuMJanReHe21o2Nl7+b41PlqKOsr83W62Fz0Wfy7WEd
2155
+ bCgPEdzIDC/SbdaNHsOt4oVAwuMCQ1v0rTxjllkD9IzWw8ThgRAShOBK3Tu5qxQE55DTr3Wf
2156
+ yNXMYKsM1IyuF509VuTl2bAn/zXNiEWPP30fqBMYoFkcfMCOskTfmluW4ErXkEvjEOHVg08b
2157
+ YhKJNAyVA6kdRnwfqG9s2KgrIVJqSyXiW+q/kEodIKOxo/bb3soNH7grD1LAsGnSM19391Pq
2158
+ Y84tM2S3b1wwd++3obvt4RdcbcEpJCSCf6otd8go7uqzDjX7irskLYUQYGzCxs43f3tKCoM0
2159
+ Jp6i0uJ3DeQ+YAHI6MIT9ndP3HK2e/DaU4Rcd3TtRSWCEJKJURZyMQBNk7hlQvoxi0ePrNT0
2160
+ TS40AguENHzy3xiOoSdFH82Etbv6gMpcc6VubittnCTKY0b5t5yQcyvj1gG8rVQelytJB6p3
2161
+ O7VrbW40ma/iu4m1aKrixGPaGdIP0jvRVt96fxfgIzbaB8otvVnzjPb7Huy45brWBzbFfAnd
2162
+ 0Q9jZU0dr1Dv43K3bOP6ZvoP0vKJcn3ZqCz20uA3qFtXzU9yvfnqyrwf4AzFFzbr0HZfj8+B
2163
+ mAzxrW+k7qUGnkWE5ajfrMkbSvTfuJXBnaLyKCvBNTcRBYyeOAKFt8KFUEBE9opsC26Uu8YB
2164
+ J1zp9jv+cvkv/1hWsaU+h1g1vVSsRiMitbnts9Nmic2agugVa2FvwR0Ros3LUmvI/ZC5gwh+
2165
+ JSGbKPle15cIHv087SIftYLm/VPdSwGHOAiT5D+LTzXJ8ig/lsprKj7B5qk1lTkmnA2w69bi
2166
+ VlX+P59SnVFDMML7Q/7F9Ic56PupTVkLgzgH74qzw83ngy+/l3Gs/qRig+H4buQ4v3ytKA8r
2167
+ 4Ib4H+iN//kPgYD7fk7SZ54zd7eTlC25Wfs8emxtAKq5ErlEGqmchSa+J86ET1F+jKRaS7yb
2168
+ mCPaNe3dKFt28fZMrRUAmAPgQMT89qY1z7/cUZu2R/Rhdui+/2+to+DJU/82AzfwLqMdyoCJ
2169
+ 6Sic6N0+yUnB4c+ZO9ce2IfQhjDhyKYUh62/U/Yn7WAPqIaXkvXBv8Nah+PcVdITn2IPdaNl
2170
+ s2V1NvomxijEnwAB1imMHAnxNv2L41Bgh1vaLqWoHnbcYh3XQhw97ciffM0QM/vstKlE9sva
2171
+ XhDPz1xCh048BVyVP5W3AoROvLMEp1mxS0e3Y4aHAOXk2bDpJn9RaiTkgL/sSYfu6h694XS3
2172
+ qzqHg7lHDz5vABSbMIBPpmR5/ll4g1/+OSJXJi7l+imbyqnJgF4mRK4KiypeKk78ntOIl+vf
2173
+ L+uTNxDzwyWBaH2KSkffwX2PGKPSfA7/yQTDKthS9KomsjN9bnstnMzk4edsI0eUa8EAMjOl
2174
+ fiMataAxmm2hHVQDQsXYCh/EKPEkakR7BXxhAlF++aHjFx/cWO+YeCu03dfj68KSEt1oVIeu
2175
+ BYD6IhZ6KrgNyS/E0Db/zUberElDtS8/wWIv64ONfYA2EkROiI6idlBriXHriK4baCyR7BC4
2176
+ ZNAZ10r0OToUUa5vYD1FVqs+RT2DO2kqd7EO4qYzU+hdc40LQWmMuDAsEZ5kvpH7N7XVlkga
2177
+ cSfJ99WXwQZlVqtaGwEGvnVRG3kHrw7Wld1NV+/HpYvmXMSRhIfhW7DWmkLn+8+nqE9IUtBj
2178
+ prGuHtF/ciBpsWAvQppw1egOYXIQd7Kf4OIHx8zfXM0dCORpEnsiZodz97VE/WfuNhKR3bF9
2179
+ yxQIwjP/zZAG2OeCkedWPYeINTL2K5kJH3jwjk2P1ENrR3zHynwpnY+cCzUPPI7htrUnVpiX
2180
+ hqZaaUAC1yXTDFnUo1Lyyfhraw/2Kh0VIAYC2Sf6Hf78nc7tWrkGDSLxdSqjtQPRtid0w93S
2181
+ v6do3yA2ABiYWtJJsAC/N5LazafEU7vVVXMZpiRZn/Jp7NmPMNgkAJgRrjEAkJ8gXC206edL
2182
+ rGOIgmTZmbmjNnUSTIjBAPOWlgIqO5s5NiLX3f20WdIHAoA3GSHmC0zHflJrQkRkjlRO/p7F
2183
+ EA+KktmsVtJhIu7DrWL0+F8sb7r/uvDNjhqf+X7pvykglBaVxHLEqjik4IsXfvNN51lgLM6o
2184
+ jHiOsq/DRpiZ829Zhc6BQIkthMw8PKpmPquZT7RJijDDWC5fQuSDQROJcnKtVeo2Cjrzoe6z
2185
+ 0ZU2mXhuFtkqm8VQGp1ojcj4QHxar04d03dmPMrxM4wfj/z1wkXzDX7cyQVD4E4d1nky5U1e
2186
+ vHnMgTuYFe89/1PQGAUlAX4sBtxlbBPT+9RMXejZJ/zyp2wrnnQ3XXBUQl+Ut5qMB94/Pt4v
2187
+ MgjukghkW2tHLzMmfrNmTDPfj/KVdoW+EcO1QlOoJYWiDaa2kmxeaX3YBPPwgegpLZm0RBlY
2188
+ f6Hc0vIvmWepluiLrpC4wyXBQCBwCoU1GzW6UFLoHxt7+ocuwYdzZSxZVYnxraM5+k8m2hDW
2189
+ De0weGq+At/5InJYm2nhXUZDwWvol4nzkJ5zlsf/Tg1Rxlu5f4I/IbSsfr1IeVwznoyVIcYw
2190
+ 6BlFME6st2Qb7GVXXVysx530LYy0L4C+Y6wLcZEvzZPKAQlnLtyV753dtt3QAq/xmOQbAABA
2191
+ AElEQVT8qEiU2H9RKz3j+i0FQaIss7lK4QXgNAepl6KiEf0xSgYN+5m1YYP4MIXHDeKYA4QU
2192
+ hQCjFDoqJCiKkDyLFPAkCQA/SA0bVGwC1tPERYcGJyk4+pmjLyYTBnBTZXDUWBSvH8bkVEBf
2193
+ AuWMX3NoadT2xbvyIEvWl6vElk0b2sSIN8D0Z3LUJ8QfBxnkSlimopfz+vdYx2OZ4fLhpDP7
2194
+ Vl0TnDCZWA5DTOVK6Dl/QdWgvOXdrCkPQojxjutpc9XToplHfumFpcayUNAbfSQRJfomnzxE
2195
+ Qxmclf6T3LVqqH2lJw8bJvqxB+1kFrEYt3wi3RTWsERhmyF3jsxoQei6vpFIFDjDoZcnsbAQ
2196
+ h6V3h9TLUOq/i1iAcIVTTSbfv1EakzESx5lu0DLkHtvkuzl+ZQ56jizhVuYsxRiwnjg7pD9m
2197
+ 1GiEkYgbUfJfK7DLNBkN+nMAQgnRN2Ew4UKXwWAxa+ZF+ZbkFfOQQEpThMBRPRlSF3ywiTlq
2198
+ v/4SX6+Tk3jNh2yBA2LJpo0aZvWQtQsH/q3Wz6or5l67hfadIUziyuhNI1b5WcHpEZVUsSt0
2199
+ tXVr15YkiQhqUTNQsY0YM9FN0PoMkSIzayBkKIFICKKU2ntSWUosAiIwLDQhscLlDi50GRUW
2200
+ pj02FN9JD08IYLwZciWMjvFOMXc8ZQCUthZUTlOpDMEZzHOYp3iifYQ6Zf/A9iRXwlCNsMfM
2201
+ lUIT9kkYOp52xZ2+H2qM+a6rgFAOhIi1UZ+eKCpx+yroEXucrTcAECNQrPYAFBryrZAaUX5w
2202
+ 6xp40tWyYPsupsNKg8ACAGBVicgxTdGoYMpiw2zeJL94gXryJdwG0CMjSgijBcXLRvbdj+Pc
2203
+ rQ8+n2qP72Yo52WF0yT0YA35CC9eikMjKikGs+hmjqueXTraxIDwCQlEId7fLIYxqMtM2APc
2204
+ cv/zcu9iQxUMY+/G84JU0G14FOU/eQ6FiLjnhnsVaCFmsR7enSC/XPyi50kf5fsRtS3kKeub
2205
+ MWDdlbX4OmvsatdA168S1Q//j59yoZEbEvPLp2j88Ai4Vp4FbNoWGKSsxqgs3qGK5Vo1s7CB
2206
+ l54y0D143WnuIf1tse7qJgL289LXwyc+xri6+FQ+GPSQRTabbjyViO2FuyBQCbYFyVQiEevf
2207
+ boi4esR8jJGBxD6TOUv7Za3PMx/yvRf1zF+hCmkn45W0usUmAcE7qomIGetue/CF2BqPSsVl
2208
+ 6Ql5MGD5ujSl5lKdtG7eVIhX3JT6AmTpElKkcT//7hpJvYKVb+YfhAuql8SfEDgSGFInib0h
2209
+ aBNDpHKB4kPPvmXz0zJmfKCSSm+4Gc/UOJ/Cd+bz9O/UqEWDl35S0IVf2AVlzZWpSeOGFtsf
2210
+ iUq0bvDDlyW9bCCuU1jqXBwoMe3vlZuUGYkJSdBNTxh5H35cEcuTiLcN/veqsQhotAPjRwy/
2211
+ UA1mpvdEtBOiOVJn+nEDDyN167lCB3tlhY5t0kMSyoAZZL8h0BXhTzMTvvnX3P2kGbXmI/oy
2212
+ 3wm/t1dceIyNMR5kpwwYkWHmz3qYGjvwMwaCkZW/nmaMq+1uHpVgALbQYmRPkd8q/o2vKXIO
2213
+ hhvrqcI+iuCynBmbzVHc4hGK2/uhUd7eyIkF40vBAKply8YyEGgT2lyub7jrdRVC8m0CBlhv
2214
+ VDY9E8Kjw/j2ETsYIy10g1jvcajEfU++ZlReDRlY5dvwytWQCmZepXtHo0Q9MRPc4Hy0m/EK
2215
+ LH/4mddbCDt0wWzAo8b+4h5RLF7C0sFBl5UYC1yFWDzovhhQwEPADGB20MlXm+5kpR6djCv+
2216
+ UtwfCwpih/qqGjZY/ENZMkbeotpPTa4JhHPIqdeIgtzMXMLggn9U/x+Sy9k7H3vXBoacN0pL
2217
+ +CyefuVdxrkfvNvW5iLH/MN6fDVxQdtsspbm7hfpIiiPckHGkbWzTa50nrIuVuvZ2ULfYhAD
2218
+ dex75QOVDP9xvBt4yhB3oKjp1Xotb3UQypCY0B9q/QD3JZ+i/rEh9dF8Y465Ei15NR7EQYKQ
2219
+ uPG+Z0y1hb8v/shY+RNU5AFFqyJISM3qmjfpN5Z8TzJrhPvg9C6kA0QINRG2xh9ikjC82+rg
2220
+ klVSbjPhXQ6tuEhR+owoDISXkDmIek/pGndWcBUO/cFAcJKI3uB+ChRRD+K2eOTZN8q1aSeN
2221
+ 8QomBYQLJEANa+wYeTrA+Vc8+fGo+PuL9yYSi436rKQIcKwbeh2NOPP9McUgx9p6l602MM8f
2222
+ VClwtHc+NsxNlNTKfIitC3pX32z8qBrKYyFODwiryyEtzFVpNqws7pPwtHhURzkj1dpNVtgd
2223
+ lmthbrWEXSZqGd45cNdxHIc9VFsR9WvLcpvEd8OGdU1fH1QANJsx/lFEN5bmOyuy2EryHwcC
2224
+ WNc/rhCtBGvCeyBethVYxgf9waodIzMkVX7D92NtKxT8DWOjP4wa995xk1LnkW3YfoCcTPNH
2225
+ yvXnQ3uRdrB5QqFg1UYYOxYEYifVISSk0IxQ3r5u+2LrQE+K5Smi24omXChAdnCccereH1Cw
2226
+ SNz9+6YbINqa6ZdEcWFuj1GHl3fQkn8mYbjASV7f/oCrTcr1SAuAwaeNiF4uuP4BXStmrAxi
2227
+ TC+ipnpjurJbvXLPTnZqy4sKLWhx0/WK9VaDwsbw1Yix7guFdLUIcSqXQC24vyyJzRqIIyHh
2228
+ sBEO/Ii7QPEM9cpEBTIgFjnR9HBXmjNXRmp6Rvs8miBn6em9T4crHvPHijY1U+ewf6pDNnrp
2229
+ RLJeQhAN7TShu4REAtKB5qfceRIDc0RsRedlBxmRcLjBrXLVaIDhkNYFYR+JeIYHwLiJv9pB
2230
+ N4wrixJuns2QOcoiKXtkS+9zeZ4aIsiokbgFhNGdPFWHF7BOUgkpAYlwnM+99pHNQxAL/q3M
2231
+ 1xomLVmy7U81Lc+XDKyEh/ptsrYI3bc1f+ZqHoGHxEnJOI64Bseef6sOedncrSK3I8SgqCQI
2232
+ 5vO2/HS93zZFexEkm8Bgqf5IHeXSua3c2zgMonp1xi1KzE+iUe0vr4MuCp6C7zIuYJzkBQdV
2233
+ luQpKmnpveq3YW+5RL4tEfh4zenQfxBMiTEE+AzjR4yNAMwdOmX2AHyuBX4lP/OY7xDV28qy
2234
+ vrzqJ0rZZsO1zPf598lTbSPlHonSIaReURuIWc7YsiHTDqIq4g3jXYctu31goNhfwUeQxJF6
2235
+ de0oBrSX8MeHsaA7tNjjICSUQyTtW0YBomAR6SfrgP3O99GKKddHX7mWQgw988pHUinG1LWC
2236
+ K/XSLwz+NtPhSeus1rPUsv1q1TuEVLxFojGQICb1pFAYlAWbQy2Jm9kICKQAdUKXbCmDuJSZ
2237
+ E4iaL9vYDh7InsChNJoX/qyarI/lO7SxMjBv9zJ/5ed1ki4ZKDYD060JKdIm/O1QTfj8ybrC
2238
+ q/Z++LAiQzsCWs8Qh4W8Wd/+Pb8VRE0L2fbov7E4vRVMTO2pOI/waMcymuC0H4t0xD74loMM
2239
+ rGMmUvKlhpb5MvnlExvAIPlDIsJCNOQpNj1PdRK4EDwAC2aoNg7G8IQMNeifstp36jOUG/8O
2240
+ 8EqXrbzWPvuO58y+pr/777K5fB47uVmahJQR3gYKUOt2YIYmzIJFC2yD8EFW0l2I1cWbyURk
2241
+ oNu1ac6UVWt9WU7P1MbIiTonXnybfIaHuFMvuyNlCCl5jOBJX/RlhN1GfXq5lhIPVyTRr312
2242
+ 3NQQEGctW8vUB4wfUXfU0JoxCly/FqpfjLEfV/oVh7iHhkElu3vppkVQKyVTOrd66Rtkd6hP
2243
+ My39lAtEk4wLawqgkCP8sXhpL2JNjHboq60pbebYLvjZG3L7b6sjTJRETRX/QclRq1L1+Zux
2244
+ Qn2/1lQcANwkZ89WGFWe6oNxhigcNX6iDsYZ6nY94kK346Bz3aGnXaOT+b6zCHvMNf+nKFfq
2245
+ K8R18HzA1oIgTnDns2Yp6IUg5GFJDeKAtFYBGmqdN2Q0BPcF0R3GOdZIg639TsEoqxvxzOnr
2246
+ jHmS56VUkVEdsat0UfGLVDn2xUcowPJEP9pIunLkvtsZ/l+g0NRh7QJxruGiYSyC8Sy/Tdpk
2247
+ O5nKYRNQ4Uj/sNU5aLcttPHl6YS1mWf6y8jSQ95AJwzcWfNQ81EbMuNAFj8Phf81hoyFtUMP
2248
+ wCfmBmY7gDIqkR81IQdTHTRgS2s/JSAFOVDEXMP69c1gNECcd+gGInU2VcLd1tS+QvAukyLz
2249
+ 0PpJzsxEv/MniMKDd9tGkke5eWnOpZNeA7Z4VXGs7SCd3Mc+W1pKrepFyxAik+AKcMjmq2tA
2250
+ DItVbbXfvigPOFnrqgN2Wx8WWk2DeeIhu7iVRdlmJQ24/vtJEK7921lZucFi3E0+d5yjbWII
2251
+ vRPAEgaOyeA3FXXaEJHaYxNEQ2x1xIcjZzXpfDSltHN/Q51WYqpsvaxC+UsmdIZn6ihHuDks
2252
+ 26HUmHQh0Y/QPrunG6azSWfJLDf03JfA+bPHSTRHGcA9VwrlM0JIScy9gIyLUkMeXrI+hB/h
2253
+ W/Wlqgzl5OlqeCHxjVjx3MH7uBZyS7D+62X+kSiWP9a2ETPcFnFh7dO19Zz8qb/UHWXy6fk3
2254
+ PjE3LYs4pvcwuGOSIw5n06mjby+V0XzxVRryxSgMkbXVGQor5zdnFJ911J528IvFGAYoqUUc
2255
+ 6kq3m81cC9HrBH2fQ3Up0KYgEu6SJ9XvVIZU85Uhuopyx69oR/x37jfgOreXPykBLfwgsKb8
2256
+ i+GbLtEHSvCIWc9TYxH1LVV+Wc1KNqmgX1ZzvD5rSfarrH2OLCSI0gwZPHnJn8cRiDdBzFjv
2257
+ w7nABbKpgkcon28IvzV6dZGb6oDYhqtARlq7l5x0oLmzIfK2/AH+jLVusFng4kg0wzCvEy20
2258
+ Tvg7fl6kbtjrXGcnyrEnfgBKBbDlVFkWWtbGivJyl8sTZbVk39aGkDvVrtRzvoDnScLh1DFX
2259
+ Ym/fKl+24WHl8fMgeinMF+Y7tiUQh5edNlAqy2TQj9AO3gxzKbwbleavBii8KkeMYhtAoKiQ
2260
+ jxGE2SH5MlL9Y72pmdZSVTRj5lwb38tOOVAGZ0n3KM6VPkXuyeACjJQph7aFNcAw21xBmqzr
2261
+ ubI+55k/q8Kq9h/k48o+YvdzXK4sFSWxFJJxJnyNtGFrnVPeW27TZSXD3gLCguUl8rvz8uNM
2262
+ N4Cuj9OO8LNONz5HSXSKCF5EgOKYuqvPPNSis1gPYp2gWfMFdEQX89J/cpVImeHnKNqskS84
2263
+ YT9xBVuYsn+OqLYA0JDfAK02oGdDZLnNRr2NuqOuUA8bGmIR+hFPuNrgmxryATTyJSig+Asq
2264
+ IIjfo3dUNjCKU02pd5gUN553pDiyNqZbtzbkGFnuz5ZYeGuJLNtKnGwHYggu1GVtUhsRy2Qm
2265
+ jk+8+MQDzICG+LiEJU1N1yir2jxHHCinOBHKD4MuRIiUC3fuy8cVIgkcOA97JrFosq/Ukcwb
2266
+ VZa8Wls2D0REW6F9a/k+zrINOZHD4wCVL3cv/fVTaE/EVvhxp+tkrlj/qdcnDiBB1w/1zNxj
2267
+ XFlUyeQ3IsYeBLKS7AqGnDlIOq8QkzeZu5BfYe5tqYV17dmHu9Ytm1j0OKhjjzhSHUoVhhsQ
2268
+ hBJGJ8Q4t7kvmHMABeuK8c0cV7+eeKZ5GRsfmzt0NCv56HxhrlB2eBfpU2aqr1CPF594oFmu
2269
+ zhZs8HfNVSwE+4yZM93yMtBB9MycmZ9et37OQ2DlejezzkJ/U2foR3z8bZ5aMJ0kfCkX4zEi
2270
+ zB2+d3/blCFEfL89rJDy8RfGh/ZyIAQuPJusu6q78YIjFWMeq2DyR/CF4bj1omMc0ftmiNO2
2271
+ AyaoMDMJ0SOS5SCfeGI9hfGbzxpKjSUwY07kSuAj62sazn6e8E48MUdsDtkcEb5S+TafVEfm
2272
+ fArvEVZ1rlyzwLfkZd1wDbwzBxFYcUb7NWcdZsZf4HaIHnOX0jOe6yMUbWAjDj3rlrXAfL/z
2273
+ 8uNj0dyirBBVzE/qj48x8EmCxbtuQpBdq7MBUFWwH7GebSNVkZ6QiMrmPkaV04UXwMd7bNfX
2274
+ 3XbxMRamOBpb3276sJ+kTVeedoiFWSW0srUhNQfCbODkP45u7qAYFscpLCsHkTDe6ZSCR+4R
2275
+ TeeyC+KjfySdv4/gFj1jfGHsDti1NGlElN+UWZ6+KNHBBe3dEAVJ//TrTdwTL71rAfN/1iEG
2276
+ TCREzejrSACXMYOSJepZv43XtsguGIH5xKCmLvUFAYBuk4WCUVhIDEBj6RVzJ/n9ilu6QGE1
2277
+ 15JOHB0UFq1+8UBn+X+I7jZVMP7TDscvfLTC631nnFYoE84Vi9K4hS9tb6WDQzrogHPEOiGB
2278
+ VDnXNFdCDIOlLf6GnosHDkLjmqS4uPkEfKKOs+DvufokWWg/616QzpWzdRGXGoGoRgAXDLTY
2279
+ fJnoJ0msCzUJXP0GwcJfKKvXECwgahl94AQq4knfoGNOiZf7l1zhbNGqXVCPbNRdRe1iKNNS
2280
+ 7l5E+5rXSC46Qa5iw4mxVlIM01CGEh11WIYP3+f7A5Jo23JZa3PUitKvOHD9niEnu1sUJ/xZ
2281
+ HQXKQRUsfOYP7UPy0LZ1U4motrQg9yfrxLcZWnBxV0I29Hh0uIMGbCVE2lOGIO+YbQX+1YjF
2282
+ 44iQBYmvI8FidhBcia3eVNani5NobUibK1Zzx3Yt7QjRYe98bkEZQEaGTFQ3YrUOWheHaSPB
2283
+ gHLkWJ3VLI7Piwf9agNhNUoFQwnlYvjDesIwTsUoed901kgEk/gc0zm80tvj5oJ0wSMm/FXn
2284
+ mz4/3mZfh4KAaJO74Pj93Boy2uIgAqRqs7ThpBGhKsa9Z8u+a7mTDxvgvlawmQ8kTrYoXykQ
2285
+ sCm2snOyM6Q1vpIKfdL+DiLYFmhyWByFVCmI8FtqrXp4xIv2cGggK2/C8W7Rd3WdNT1MRn7D
2286
+ bTwMsbI+7RU2gGqKVFhLXFdXN0AH+xBFyhuJkQdI+ZyhBrjEuy4/wT2kOPeP6oCQH8ZNNNxj
2287
+ nLyyMscgBsAXvVfp7sWmqZfrKzId7kHRCU9+HLEJCoGfQj3hm8AdHh953TGtYXNtntF3cEM7
2288
+ EYsQgaa6TOFk1JGNBYtciQBCnYTraqj/rD1gCXxaaO5EkRHDm9RcYrp8VAWPqO/PysD4R7kn
2289
+ wkxYKFOypKDGXEecu36PXqYy2midlVNl+nJCqXw3lO0H66KW5nlIPkpjw5hdRfK9/putY2Lt
2290
+ h2nHqx9ZFEPOb2C++uRHj37QjrXXX13xt/uatXWklo3WLu32NZS4HWS4jHEuh4Ggm5+g+P8W
2291
+ a4O1rrHFRXejPqu6I/bZ1hgEjvRNJOaqgIn4vLTEvnLfk6/IQ0UHQqUPDvJvEAV0K+nsC7Wm
2292
+ lxR4ESF83tdfp8xKOXHlh7ET7UxqLAGJBMSGgLtEW4k9O0vX3F1hIn1Elsy3o98gaXw9jRuJ
2293
+ bhvoEC0Ft4rYo6xLOKpvFKd71LhJ5ivIEGAtSvQzCA0QGroT8gHEkBgcXKWIFIXxFYnBJhCK
2294
+ uTkxOJb8QIKYEK/Gy+AxFBi+4cnk34FzyaXHiued8MsfFqt4PASQBpCFR4QsuD/CnpLwMY/D
2295
+ yE9JEQSaEB65xEuMrtmsCO7/vayVMdRjEWDl31ncLdwC7ixQtkT58ZOVd0O//aEtGFbwEDEb
2296
+ C3OmuPZgkBRqYgGwmYeNJ9wv5BsrS/ykf9I5tcASsSJSGawx2xiht8gmNBKO+EZDe7Em5wxj
2297
+ n6J2cwoZvudYpP+mc5vhbBi3xlq4cE7dJMIGEVZlIgzqcPWLwz7oF/pRNvNVhAhwUWHu/yWr
2298
+ 6wjB+NYwczLHlXkBRR8I6NBu+gTcvYV7NII8Z0568XzIHeYxUbXqxkY5PI++kT7g+w9BwfnD
2299
+ 4P4m8oPlDIBe3ToY4oULn6E/D/UI9swBNkuLGlVqLVF9+a88R+rXV1QH+ektKg4M/TLXZK7y
2300
+ mGejFX4Sf3viYwN31hpRqvAj7iLvFU/c5Ho79z18jDnZavRPOvlOLnqUyRGzzF9O3TPf3Viz
2301
+ kWrBmUeJXvhNHjxkxrrRQ+sjYwEzEitGOWTzobbzTkBpcOKsY9Z85jqB4MvCE6oaw07OBs+E
2302
+ H4wHXGPcFSrWrPQlkgtgOk5zHaZjnpgK8AdR25CKgWdgZqINMv1q4gKGjX76vkQ9hXhvIEIS
2303
+ BsaPePQsXgCcMGFk8Tb5TVb/Jk1RVuCDdwMupV5iEn+rsGvK5gxtIqLBhLEJc8JfiGuBkdvB
2304
+ spEBhmEsGDjW5E3nHeE2UQjvZGLMfT9e1rG8R559vUkA6KupSTR+MJOtmjVx91x1Yo44DsnS
2305
+ wq9SN+yQqcq/1fgIChWsraAyACIp94Twz/RZUFnp3JVzEY1v5ZSXKKXswkHzGGlZKgs85C0L
2306
+ hun6y667tEWaLqZ4IQholATOTMRbdaApa+w8cVD4XKi6li4dc6gseOXofwVeyVFKnlsqPK3Y
2307
+ zZOlzNvlaSB5SWUgEJ/pH/nkGNOp02ZKwhfa6dsMsQGxk4/Av+K2R92QO57URh6XDuiENBHS
2308
+ Dww5xa3YtUPO/kCEDjzlaju5DKNtxsOvGhFSImAG6+TG42VgV2gykXhZmQ2Z5xyE8gxmKbWk
2309
+ SZZS8tijUF/4ji3TRBnR82SJZU0k/16usKfJcuK/8tUVzxOuyUvK0Y6UaCvnM/9Sns98Zfr7
2310
+ bK2kHDUmyrPNOmTK2yVf5uIj6MwKQsWJJlXCj8x6KqHIXEXkJPCqou4YdZ+rHeW+F29j/DoU
2311
+ FMaFZ6Twm2t/b/HnAmXFU652xNZ5PGviOt62+IPc5cVzLO51fvxYQMn5ml3Aq2VnUeGGV3JU
2312
+ UjBYeDeZOeqv33r8HEjmyd22ysqTq/RCynYSfX/pzrr6XvPOSeN5vYpkE0kkx0Kv1nOFRAVE
2313
+ 2Hz8hXezJCNIO1ooQBj2LPkS7qccQGMeBjRRCYgi8exmx2duaPcK/Show86/KHNMhEJrrlC+
2314
+ UF/4TqKQqMjoeXSvkCv/XvneLk/u0vKW9qy0tud7z9+Pf5ZWSgIX5ysykanU0mIPcxWW617s
2315
+ lUq7XEL1JIjF0PglVHeorkLf8TbGrzMLy/Us173M9yryO3e5ue8WUn7F3yykdPJE+LHq6yq0
2316
+ TVG+PG3Kczt6L36VzBzvb/Qkuoq/mbyurDzJUv2vQsp2rptsE3ABRrRvVt+pTZRR/EOBV446
2317
+ 60aderihW13BcdhUP9ZpWo/J33+SVI3e3zzsuvjxc2Ryd/PJz9Wi31XHnbK9CvY1vGmt1AW2
2318
+ ULj/EtSlPKmgDbs8BRbzFiFQhEARAkUIFCGwNEIArnZ7BVIhHG+tWjphjEbqg420umyciIR3
2319
+ 2S2PmP0Gz9CTYwPh3QJ9Pu6jf8a6m+iA+dILCm71nWxEIoNR//4cEQJEAu2niHzlTZVn5lne
2320
+ mov5ixAoQqAIgSIEihBYghDAwG7QHv0sVC/uwCRv5Glbt23OGJxh4U/AE/TauGL5p2RWbqnA
2321
+ OEv+QAVkyQyBawXqg/C2dzz2suX3bLV/ArdNsBkC9ASDtvKcnVjcsAOEi99FCBQhUIRAEQL/
2322
+ eQjglXLtOYcrbsfabhbngMv4iw0ZLtvsbrUp889r6HU/PNTzOfKgwZuDU7gO3n2bJKzSu7pz
2323
+ /5Nb9Ggdq0nYYsq1ElUubrurKpLetoo7EaXCt+GiSDyCWvGqCIEiBIoQKELg/wEEcMm7Qe5Y
2324
+ Dz79hk4RfMNO25uhjRtrcR8HgU1UQVLEEePKTFAWdN5d5SrK8Zd7br+xic0ToDIFtXMjRk+w
2325
+ GAdw4hbBMpUJF0/CRO+nIClYl1ckFTfsikCt+E4RAkUIFCFQhMC/GgLopYmvTyAdzsImGtm3
2326
+ FlNBPvw6Ax2+mPOzm+nUsW7SORO9cv21VrLgQ9kd92w4m/TzOkQH97EWTTgAK7WL64pAYX10
2327
+ uMcWCu5S0bR0+GFXtPXF94oQKEKgCIEiBIoQqAAEvAQ7GVOC4EvTFSiHcMnstQTS4qyC+KmR
2328
+ mW5u8aq1X1sALKKD4usdk5LbD6J38lfRVOSwKwq54ntFCBQhUIRAEQL/Wgh43jfigOkIEfwa
2329
+ 5ggFnexk8p34Mzw8iQRaValwbXdVtaBYbhECRQgUIVCEQBECRQiUCYHihl0miIoZihAoQqAI
2330
+ gSIEihD45yFQFIn/82NQbEERAv8vIYC+Dz1hEDASpAL/VsSS+U61+n8JqGKnixBIQaC4YRen
2331
+ QhECRQj8MxBIbdacMMfxie/qiFhOxsJYZ5uN++ic635lngD1zzS8WGsRAv8MBIob9j8D92Kt
2332
+ RQj8P4eAt84dKZ/Vo86+yX0+/EcLMgHTPUv+sI10dO6he2xd3LD/n8+SYveTEEhu2FotM3X2
2333
+ Lf5iJMKylXXOc7K4RXYeNSbtRHYxc3hFeqmshI/beJ0rzRnIvytQO07ubVo0cSt0bOOay1cu
2334
+ SilZW3Sjyq4IED9z1myLikOfQ6IF1dW+GnILsLOmw4P095JrY7rK4kURAksNBBT1SRvzkDv+
2335
+ 574aMUb+rv7M9mUb1dOZybO0dhQOMlpOi9nqaK3NnDXHTRRHP1Exo/+cMs3NVtQqztrm7PLl
2336
+ dKZz6+bLps4dX8wqi68XIVAFEEjspgsXLXRX3vaYe2rY+3aU2ImH7up2LiW4eWZ72LwuuOEh
2337
+ N+ytT22jv+iE/V3fPitnZqvQ70+//tHdcO/TcnAf6abNmJ2OIEO816aNG7itN1zLHbb3torP
2338
+ uqzKr7SVXmZbOTrtlEuG6kSWha5EG7Ql8IMSB7JDtLQSUdG5XSu3zuo93Ro6BcafuUobI0Ri
2339
+ LxQ/ihD4fwSBUT9Nch99McLV1jnBHJBw8qABChe5ppul8I/8LYOPTKWkEvfNyLHuSeG1Nz/4
2340
+ yjbsWWJMFuh4RKJPQfjXUBSr+vXquRU6tHL9Nu7ttttsHW3iDSul9mIhRQhUFgQSGzbbx+Rp
2341
+ 0934Sb9rAtcQpTu7XPXAAf85dZre/0OLsKabKQq6MtL9T77mLrzhQTt4vIYCsUMYODZIt4wW
2342
+ 3Vw36fcp7taHnrdDwi88aX+31kpdK6PagsogDu3Pv/5pAeHp/3wduWbGNHrbOG7hnK+/H0OQ
2343
+ Ozf04ZdcZyGEHbdc1+3Zf5MiQigIwsVM/1UIICX7a+ZMnYi0yPXs0sHtu+MmOkGpZqy7Kco3
2344
+ dqe8l+jHb7r/Off4828Jt80Q96wFScTJENJCVRB6cv78Ejdv3l/uA7XpvU+HuweeesMduV9/
2345
+ t/VGayVOWypv/cX8RQhUJgQSGzb0LFxhTW3W1UVxYq1ZvlRioiyiwtTUH5Tr4qYX3/zEnXft
2346
+ AxLTz7U2wU33XXslt0L71m6erEq/HzXevfPxt0ZcDB/1kzvu/Fvd0EuPtZivi1t3Ie9XK0Hs
2347
+ XU2LfoGrV7uea9GssQ50EdwUMX6+CIupf01XmLqZppcDTYwZP8ldctOj7tlXPnQnHrKr23yD
2348
+ ioepK6R9/+08RQnFv3l8/54xyy2Yv9A2zw5tW1T6Zv3qe1+4C69/0H0/eryrXVOHMGhZInpf
2349
+ sWsHhZpczo5HZAOf8tcM99PE39y34sLH/fybndg0YswEN/i8mxSGsp7bqJKkhP/msSq2femA
2350
+ QGLD9k3yp5QsLm27uO/TFijwq4c+Ib36bAu8vkavLu684/Z1K3Xr6Jua+nzr46/d6Vfc7caN
2351
+ /82N0AZ+p441QxxvG2ciZ9X8gKOeJ3eUXqt0cFefeairU6uWISFEbtOFlCZIYvGJRPoQH8NT
2352
+ 56N+L2ObI86+3p16xB7ugJ02X5JS/KoBwj9QKnNsnnSQHFnHWEMoeiKRJ+UlNv+BDiyBKiEa
2353
+ cZciVRd8qlertgRqLbSKCEskQz/y/uKNH6clnSacMF36cM4zrlO7ttu1Xx8d2rCR67lCB5sr
2354
+ ma38VZK6l97+TNz16xKhj5FIvpqd5JSZr/i7CIF/CgI5Nux/qinZ9X7y1Ug3cuxEIZrqronC
2355
+ vV14/H6up6hjEuJnr+IqcX0VkP28Y/dxh595vdt0vVXdgTr6LNqslwzyRsTGOaeNG9QXp1Aj
2356
+ 3Rn01e3FPay7xoo6A3VLsw+45o4n3S+//Wkc+AWSHnCCy146/aWYygcB9JxnCCl/9f1o17Zl
2357
+ M3fBCfs5TuFZXGRfvlYs3bkffu5Nd/djr5jkjDN4d9lm/aWywWkRdSW07tX3PnenX35XarNd
2358
+ 5DpLGnfB8fu79dbomad0Tzi0lP3Lvjtt6vpv3sddf/dTbuhDL5mOO89LxdtFCCxxCCzVGzbc
2359
+ 8vz5BFEvcRuvs6rr3qVdCkDRZh0g1rf3Su7JW852HbNEa4tHqYfyy/6mnhLTh2Xn9URDvTq1
2360
+ pbveWIZnXdwJF9zqvpBuGyP6i2Wot1yrpm7DtSvHQC+7/v/mHQL1jxr7s/viu9Hur+kE7Pfe
2361
+ Df/N3lasV7/+MUXwGWXE5O+Tp1askH/RW+Mm/OrOFxE8Hc8N2bmsvWo3d+UZg1yHNi0K7kVj
2362
+ icHPOHJP48SXlXtZMRUhsLRAYPGVzFXYk+lywQjbbXtxTstIX+yT3xzjVaN779Z5uQw9WDxH
2363
+ 1V2H1uTnEkIvfBto5zXnHOZ6rNBORnOL7Ci2G+97zs0QkimmwiEAVJG+1JR+EivjSKpSeBn/
2364
+ 9ZysixqCD3/VJAFa6lJqacRdIivaRoxRr737SZ1tPNHsb7ov385desrAAjbrsIKTNe+01Xpu
2365
+ 7dW7J28WfxUh8A9CYClcwRE0Gso/kvAKi8Rhjxr/y39KPIWYDire+6rXcJ/JXe3ltz6LOl+8
2366
+ KkKgCIFyQeCjL0foLOKPLQALxyKeIKPO5du3SZXhxd6FF+jzR0xC4W8WcxYhUFUQWEo3bL9Y
2367
+ sObEAhsuYdjbn7qXZRDy30i+f+tKp7bNJr3NKGiOgs3g/z5PKgCfyotg/huQKU8vMr0YKs9v
2368
+ tzytWLrzxqUO8eulodXx9nh7lIq3CgNPDM2QUi2Qfcvm663mNpUareIpSMWK67DiMCy+WdkQ
2369
+ WEp12H6xrLVKN7fWyl3NbYs7JytAyfiJv7vdt9vQNahfNwYLFlVYYLHbS+2lbytGaojdnnv1
2370
+ Q0VcmmuWqaPH/eK6SZRHfwxV6COOzLCcR0/386Q/3Vxt7i2aNnYdl2vp2rVBZeDLRTTvryKY
2371
+ YC2MzzhlYpGLnzwJve8o1Tl2wiSL49zcymslW4CWZbj1WetUQqpOIclxGhva9pv0pkTJo13L
2372
+ d2ija1/XXB0Kb3pmvUL9mZbBcwSDuXMXWH+RPGDx/YPca76VZT2Wvj1XaO/aSxeJK85cWeVj
2373
+ ge/VEIKV6p85a65F2uOaOtnQ56g8XAJpZ6gTv/1vR45zkxUzYDmpWlBR+GA2QMSnv6UTHzHm
2374
+ Z/XnN1ddRGPH5Vq47nIFivyE6X8E3/Be/Bv98RjBFV9gVB8t5fLXSQF0lmvVLJ4tdu3LXCCr
2375
+ bsJzqhuJsRoz/leJe3+WG9Lf1l64x87tW8Xe59KXgWX4XI1tiDpIW4Ht7DnzzC4Ew0hgWq5E
2376
+ g6zLUb8nKOYCY/7Lb1PcMhqXNi2a2rj7AEahPaEW/x4ttLalbA64S3tnSAVGfAWqQXzPeMU3
2377
+ 9VBKru/f/pzq4LBLNOZ1NfcG9OtrVvFR3qjN0b1CrnK9Rw9I/tksEQmjNDYTfvnNXDgbS++N
2378
+ zpz5Xzs1931+3kuWZ/NWQVywx4AxYd7jF/79qAluxOifZHtQ3VxUu2ruZRKo437WfBgz0U3W
2379
+ fCDIC/O4bWpuZdeEoe5CBaSZZwFjKKte3dq2bkbIYwV7IRZel45thX+Ws7aEuUTbcXujrj+m
2380
+ /OWapuryBp6+Z/k/fUtgRMZqnvwkt7k/FGEO/IArX8flWsl1LuDy7FazvmfNkieI3GYBXT1Z
2381
+ +/P9jdbvSOEG7IJ6de3o2rRskoIP8KUckoc1brXAiiiZRNFr2rih6m5uxsBIYrJTsh1Exxtr
2382
+ 7/9ubrqEzW2nqHisZeaaT8l3ssusnDvlXLGVU2mhpTTUpnzWUXu5Q0+/xhCfm+nc+dc/4B59
2383
+ 4W0z3uon7tSHJPUDU2i5S1O+XgoYQWjVr4aPcVMU2AF3L79h08rIuG6igrPc+uAL7rnXP7KQ
2384
+ ivMWzBduk2W6kG69urUULKabO2Lf7YzAQR8Ybdq+t298+LWMce53c7R57bD5uu6Uw3azsm59
2385
+ 4Hm5mo0XwaDIT8KUNYQgQBpEZDtyn/5u7dXQ4eWYjLFbn33zo7v+nqcVtep7GfuoHC1OEG2t
2386
+ mjVdl85t3aA9t3H9FTnqoWffcDfd96wZQJ0udcBWG67pG5f6vObOp9wTL77jGsjo57xj9nUf
2387
+ fT3C3ahy4ZpAxPXr1pG73gEWeOaeJ16xQDTTps+wRTN56t/usDOutXwcIH/FaQcralUbd/vD
2388
+ L7p7nhjmamthnnL4brYpXHrzI47NFCRJhKu2LZq5Yw7cQW4/fQ2BYVl9y/3PapH+YZsbCx/i
2389
+ Yo2VurhzB++jIB/tUy2OASHWE3x5b7z3GTfs3c9sgc+XrzGR8NggG9av4/oo4t2RGquVunWK
2390
+ vcWln8dffT/WnXLpHUZAbbvJ2uZdMOTOJ93TL79vbkog9GpyzwJZbbb+qjaWbJQ++TLwsDjj
2391
+ 8rvdnwqERCQxyr7r8ZfEhb5jhN5ph+/u4Z+7C6mykl8+qy//469GuFsfeMF9qE2SAzvmEY5Y
2392
+ j9hgGgv+cLd4RfQQkeUTb/s0S3PkpEtutwAlEGW1pF8f9s4XjnnEZj1HRMV6a/Z0F514QMam
2393
+ G0rI/mYzgGggnunyCk60co9O2Zkq6Q7kMFCYJqLuwadf15x9z42Wyg5ilMhpjE1tEUSdRVAN
2394
+ 2GYDYzDYoHItIwjwY8+72Y1W+1eUu9nJh+3qrla41pcVLRI4sI5q16kpT5he7lSN2fJSpf0s
2395
+ IunK2x93LynPdAW3QroAEYuHyj47buqOUsCXiLCMOj1FMSGOOfdmI9A7idA78ZBd5AI7zL3w
2396
+ xkdynVVkOWWtJZfU9QV71HXLd2itoFST3WW3PGbtMb95+qcxa6hNdsA2fd2xA3e0dRnVknlV
2397
+ ovI/VmCrF9x3P4wzgpH2ajm7GoJR6+ZNBJ+N3H47biYmrE7my262CIyTLrrVfaq50ahhPXeO
2398
+ 1t+Lb37s7lMwLYhP5lwzhaW+8bwjLJJkHMiTtMbveeJV98wr7xvRDPEKzlxGxGCd2jVE4LRz
2399
+ e++wqdtW+4iNT0btzOnHXnjH3SU3YRtfMQkLxPjgGonNDHgbeO/ab4PyE78ZdRX6c6ndsP3y
2400
+ XmRBDm48/yh39pB73Yeff2+Agho8++p73G1Cxttv1sftqkUBtfNvTMQx7r58e/f5t6Nw5rbF
2401
+ FPoRDHE+VPjG0y6/0w0X1V0D7lLcCAgD/ZpHEguE8D6Tr/dId/qRe7g9tADCu6EsKMsxQirE
2402
+ Tp70+1TbYK++4wnjUsmLjy5Ifc6cOZrUC93rH3zpPvnqB3eywtPuv+sWoZjom5WidK8WBBvg
2403
+ 1L+nG1eEPzpIBpJhmhA5oWQHnzfejRwtQyC1nTjw1VQXiz8z/f7nX27UTxNFwTfS2D7vXn//
2404
+ SzdDPvgE8pkn7rB+szpmqMd7v/4xVZz3OOMskFRwLOMP4yYKhPNcy6bLmjSBfJOnTBVMJ5pE
2405
+ 5q7Hh8kFbIz7Q0iSBafdXZzdQovsd6rgiwSCzZC55pElnF4122yrqUfvffqtG3zuTW7oZceZ
2406
+ RIPyM9O7n3zrTrnsTvXjF40VUflAKssYTJCiLJi20D0riQpjep6QDy5EmYmwmWN+nuSmT5/l
2407
+ vhWSGyyPglelEgI70W7WBhwp7X30uXeMY7nh3CMdhEpIwPebH8ZKpSQfZHGqvPOrxv0nSUHY
2408
+ VP76e4bP6ocxvFbqN+MKErtRRNfNDzznpolzIUCQcYcaAzZbJAPzxO0+KOLsFblXnXjIznJZ
2409
+ 3FTlRhUBY8KS/iSOlDYDn6niEifJ1ZF8wKldm2Zqs8cCpTYq9RAOEGIUjrWLuFG43KpK9GSE
2410
+ 1uLpV97lPvh8OMOiIE7ikNXeZRhzwYjzGL6WuyH+3BBuF8gltXO71llNgvNkTJBwsZkwd97+
2411
+ 6BuTlrEmCciENOL51z8xIvOUQbu7y2991OoFpNUUc51v0YPubxGv19z5P1uHxx60U1ZdbJRE
2412
+ sRw9QcSF2nf2kPuEU4crn1//8xfpaFPdf+mtT8QU/OVOO3Ivd41wxGvvf6Esy9jZCNQF8Yl0
2413
+ izmAMeNJ2vhzBckCN111+xOGp+dpTG29qb+csTBffZ0vwg2O+5KbHnLvfvyNu+zUgSm3zKjp
2414
+ zNUJYlawYUIKduP9z7jX3v1C612Eg4htDA2RXC3foW3qJTVQCdwBgzJSEimwEUG2IDSqiVJg
2415
+ bID7Z4qN8ZnwLlKDw/baNvU+XyW2Ps648m4LZ0uJjA2SL3AXzBIRLeHyT7nsDvfJNz8YIQ8u
2416
+ r+q01G7YHuz+c+Xundydlx/vHnr6TVG0r7kfJcKF45n4y+86POAJ98hzb7mdt17f7b/zZq51
2417
+ mtMAyvrzRVQ1HCtcPhOdAwdYBNVKqtsmFy8MkerJ4kZ+HDtRxjRelN1//dVdH7mr1BGHNXL0
2418
+ z+7Z1z904yWyIZTsuVff6+qIs91B4U/jiXqqi8usrzLe/ew7cdcSw4t6hcuD0wWZMIm/k/j5
2419
+ lXc+NxEYyPdiLSbUD8A3M1kUuuvut00PxAGlu3XfNVyv7h1tkyWq2xsffeU+F3V88wPPKs57
2420
+ Y1dfVDSbJIsnM4GgOGyGDeAVESDNmjZyR/bv7+AG4Ca6S1SH5S8JUfBGinjHgp8m5FFbfe6l
2421
+ eQLH3FAcOtw4qZq4WrgNyn7/s+Hm8w5VvY6sfxGrPy3q+2NxoyD6S0R4MF8Wqn29Bd/tNu0j
2422
+ lUMj2+Qfff4dN10inuGKmnX/U6+Jqx2g0pOTi3jVJ158m4neaqodwG0LRbJDWgHnQtCcZ1/7
2423
+ yDgkxNqnX3mncaN9e/dSWdFkRVzJRoukAzEvEobu4lS333wdt7zGid9vC8G9okhedSVdeeej
2424
+ b42L2TPmy4/Yb+M+qyhozx+Knc1G6GHWusWyxmG3akbMfVJUr/+d/xMi4dJbHnE3y6MBNQFi
2425
+ 6xUlIdp03VWNYAa5giBfU7tGSp1AH8+66j4RP/PdgQO2TBfMe2tKWjFbXN34Sb9pvJ3i7Tc1
2426
+ MSW7PvYczEsQbaEpSEx4A598iIuqSkikjjjreougRgwF1uEW66/mVu2pcwJ0eMkfUrVA7LJp
2427
+ ECuA+OWDTr9OXOCRxpXFYQ6xwgFBtTXvfxdxidi2h9xXd9pyPROrE73xkWffFjc/QxzqT+7o
2428
+ c280Aq2Jxre/mJU1V+5iRNJLb37q3hFBicTt4Wffcttq7nYRB5hIggnzirUCwQbMVpAIfEep
2429
+ 5VhPo4VjIAB/nTzFNqPDz7rW/Tl5moiqBrYW1paKcq42SDb0tz762s4sZy1so/Ct4Oh4v1hP
2430
+ EHbX6fwH+oaEjOhyWylWPLjmr7//du99Mty9Khghqn9LEsAzr7rHXXfO4XYYS7rdanN1a3MN
2431
+ kyS89t6Xphbbs/9GJl19Qf0m9gbrNNQP3I8RnJBYMteaNGooSZTGp0dnxYuvY+vvnU++ce+J
2432
+ AZwnNd1U5YsniJlLbnrYPS7uGpUGhM4aq3Rxm2met5Uo/Pc/pxlD856Ic9bqw8+8aXjlXMUC
2433
+ Kd9hWfFaC7teajfszObjGzlor220caxnEcMeff5t8y8F8XPqznUSnXLoyDnH7uvSCNAWbeEI
2434
+ KbPOJfU7rZtSU0FiIaF3vlZi4h9SBEq71i3cxScdaOLCkIfvfRTs4TxRk89LXA4VeP19T1uQ
2435
+ iOaiPJNJHIDB6y8T9R6gADOIgpMnnTl38O5bu4sU0vEZcYJztPAu14Ewq624vBZ1xCH88utk
2436
+ 2+AQM0FsrLNaD3f+cfuZHi1e5yEShyN2R2Q+QXr3oLfOfxKT92WvV6eOO+cYcaBCSqQdtFnB
2437
+ mZHgvHaT+HprERoHnny1cRttJFq77JSDDPGALNIRvXTNnsQXdR83cCd3+D7bWTl8bCUC46BT
2438
+ rjZfbjgC+rOOjAFvEHINcNleKgTUFKdfdpebX7LQvfHB1+5gHf3IphgSiPmKWx8zXVeNajWM
2439
+ sLhQ0fYQo0dpPbeHEM2ZV94ju4yvjUOFW1pRInb0giGpqam0SNzaAkM01559eArZ+0eIES8T
2440
+ gXGjRPckwnBGorlFNl73DjnJXXfXUxKfPiF4lLjdtt3IHarxYONFKhEQnBVQwMeTEskPfeQl
2441
+ IVDE2DXd4AN2sIA/EEjxNGivfu6me591dzz6subjfJs/2DJsKAKLvtUVEjx38N7uudc+dMec
2442
+ d4sRihuKaCHwDYmxYk34NtqtMj/YgOCC2BjKrZsvs/QoA2Lwc6+5T/rl8da+Xoq6iJgWAiSe
2443
+ DhqwlftABOJZktaw6X4rYg5J1HXnHm66+XheYMJ6YGPo3L6lu+m8o9Jqlx3cukYMnSoVCdKe
2444
+ KVL9ILlBnH1ATPKFmgsi4nXNA+xb3hCRkLVhpyqFmAFPIJW86YKjpQPukG5Od4mJj77gZgQn
2445
+ bqrqQsVxwsBd3MDdt0rn6b/Z2gpSdYMIki9M5QNB4jdsiCR6U+I+++5Hd4fmSi10xBpQcM3R
2446
+ B+xoBzWFgvbdaQsRsB9qo75b4d1ninP+3GK4H7rn1ulyQl48hVj/2OxcfeYg86/n2c6SrkaE
2447
+ nbyJJNk6W0wLemvSOqv1tKBaXaXfjydwHOpF8oJn4wnm4KGn3zBCH7ug4wTrA3fd0gjokI8A
2448
+ O3c//orW/KPOyUTnEe1H667eQxKzdUKWKvnOZnOqpJrFKZQJ4BE1pYBE0Rs8eM0p7mZNtg0U
2449
+ bAQEXktUGJw3lBXUX8T9VB2lTXsqI4FAQyvhqkIiIMgrEqfVEHJt1qShu/TUg7I2a/K2bdnU
2450
+ XXLSAa6PNk3kc4iAXxAVnJn0yGCFHma7Tfq4M47aI70pRXkXmVHUBSfu7zYQEmWRoDO7X7o6
2451
+ W4upjM+89oEbPU7iJpUJ5XyZ/F0xeklk0i/ERIjn2CiET23xsoBDf1PFJb4QKWJwGOm4PaHh
2452
+ EbF/F8LDfK/tTQng1RC4aDZq8mVyWPNV5opdO7q9dtjY3qAptBWpANwMmzwbBbqsg3fbOg2X
2453
+ IJbF6rhLp7aCxyLjTDAk88mX9LkQ1AcSc2MDsJwMAK9SiNrkZu3zoYO8TONIWygbET2ccmYC
2454
+ PgsXlhiHcPje29lmHdpMQ+EcEKc3EfdD+kFj8efkv+2auU//gQUiPJ98WWyEwA342S6RelrW
2455
+ FyqIWyUCJfZ3NYXsPHr/7e10vMzNGphCyGAvAJJepJ3ob4n2b5cOE1G/H3cd26P6S9Q+UoAx
2456
+ 48Yf7UsTXGU1LPW8gWKE0zdghPFiVSWkSh9+MdzaiSrrWnGEic2aBjCRlPoIgQ85a5Dr2Kal
2457
+ 5X/9gy+0nr+0Z1kfegUV177S5XobCaDiy9l03dUcGw5BpFhDa4irxqjOJ/IssnWGvQP6WThW
2458
+ jBOZ07kSt5lbqBLjmzV5N1Tc9JVFhCBtW6A8K/fo6HYXkRlPSK92FlcOt86AYpyJdMWnErt+
2459
+ 6Jk37CCohcJtrC904pwDESXWdIkR5KcM2s3OoECx/aRsLP4QVx/h7+gN2rTBmiua9Mvf9YQ5
2460
+ a4FEG+545EXbByCAkJJdfdahBjtg5JP/pu07bLGuu+bsQd4INAUrCDIOfvE4eZER90fu2z+1
2461
+ WfOufx9O+hAR7Ufut73hBAxbn5CXAkR/VaasDdsvKKqMrsrfgPBuAFL5S4jeoKxQXnQXC8dt
2462
+ Nl7L3Sl94iXiOhs3bGA6jT+n/G3c5iQhGFJltCCqtfKvoO4Q6yIao5+NYtbvxEjHmIqJuIsM
2463
+ POBi8yXEVgMVepKJNE/6nbc+/MZ0aVF+bXQCBuJeLMExUPOW4pkQ8rBmI4BTAs4srHd1wMoU
2464
+ GTCR0F9BSLBbg1ihVrGI9Sl7rHh/fyHvrh0Ru3PKmlJmtam37ZGw0uq9ljfE7W/Hy+Ta/7Y1
2465
+ ZuXwIfSWA0H5aqR/EgwRTTeSYQ4pXiLIEK5vvrjBFs0apbkbn8/nrCck1VbR6ECGiKQDBR9K
2466
+ ektcN3ABJnttT7zq9lZP9BHViJX4oXv2MwQNB/qBVBS52k572rdtJeKlqxXjS9Cn6iC1kK4e
2467
+ Yo1Y6jNnzrF22YPYB1xn+JcF9KhJsTdyX74lvSqImappT5y7S77hC2VeMH+6yegQ4uHL4aOl
2468
+ 0x2byupHRZ1Ogc8TGMly+FV4A1vrCFu4a95gPUUbSHapFb0zWwTH0698ILGwjKa0SRwgrotj
2469
+ cxOJBqTGh/vMg4FaH8B+jsSvTw97z7hbnsUTaqDGMqryRp48oS++/xBAPZbvYKokyllTkRJZ
2470
+ lz5ZhXaJhbitad3yoY/np/Ikv5CINahXW2tsheQD/UJkDAEOt09dq3SXGDldV5Qdg7T6UgUw
2471
+ bzGcQ40REueNvyfpAtLPlhqXw4VrbHMPGezb943L3eT1g6Ebc3WMxo65kpmohznF3IvejK7I
2472
+ j9Hh28JTSGbqy5r8WHH0GLX5FPKGb393I6mNUCUtAjkqoe74SvWDj3tJLYPBbJR4N/k+nDbS
2473
+ I+5+KeIb47SqTBkicar1dF0mh1JII3xXSueeCiknO08SSPHnbFCIBxtrgznu/JvdbDfPIh29
2474
+ JEvC/XbePAO88TeXjuupEuUhMoNKxFo2WNUiskLnyeJH98zGfbtETHDHcYRgvdBkZlOcKjEQ
2475
+ lsPoZYj2hPsEiMwnuA8ZX+h9xFddxS2WlVbpvrwQRTvp40aakReHmGAkxIIcN+F3vV5i5a8n
2476
+ qres1FL6a84DH/6jDOfEReVLLEx0zq21EVVWYilibIIuPJn8vGpYr64o6NpmCIe+K2zq8bwg
2477
+ AbwW2GTYDJAChITbx1cjxtqwYB087uffNVaIg5OiNstvY7WMm/THZOk+a8nuYJG5u2B/ALKM
2478
+ kupR3natm9oJU9H96KqWLF0bCsmT4AhmakPJTqnNMftBwXfYTOAqISA4dre/xK+RO0v+YppL
2479
+ r9hXEjDsIv6aMcOMc+B6mDeVnXAxqlWjpsZlnomrmfuITysz4bY4XAavyAVwR9p4nZULKh4d
2480
+ 622SMPwkOxPsHFAN4dIUTxCCzC9005mJtV23Tg3DzODlVuk1ncyJyidIJvBMyDfybIwNG9aV
2481
+ sVbADclymsjoE+IHcXDCJiiWDZUIf4wlhqoYxmHcSIJgmizGyXsy1JQK81OTfmk650z0D7ct
2482
+ cCBSGKRFwCyR9C4uWO1KCTH7veYZB7gwvZhna8gluJDEHhKaNlpGr1jeQ5DVlJ3GA7KbCqq4
2483
+ zLKYxaxRdPTVJFnDFXS0jCl7SPJSVSkDc8Kl+KpS23a562VChc6X++UKvEA7oUS33GANE3Hg
2484
+ 7gOwcQPYd6fNhEQrHzlUoJl5X/lYxim4pCAibNaksdygECt7/2iO5mSjwWUD95Gga4nrf1OE
2485
+ oUk3OeoTCnuRmPW/dc4wkz9KwEmbgKxZu4rrwTjFp/zwqV+/tiEWXHdmyVobqh1jIFw9psoI
2486
+ hsmKX3TQ9UZ1ZV8xRlCi+lLKP0N4wtGuy6Y2ouySynuHClWqxLicopYrGWfGvFU2NmbgnTv5
2487
+ dtMXkF5IwPnXP6cYkgO+9z/1qsZKHEqOYsJ4MUcx/gEp/iHkhlV3csP2pRPLmuBBOZOa4Nep
2488
+ ntKcqEk5s1f0JtboE3/9Q6+X2KbSrQBiL9SFURobCcZK6BerKnVq11I+4E1ELP1qdgQff/m9
2489
+ 6ye1T2Um1CCsSdbf8iL+8H0uJJGva6c25qUBgQ5HmrVhqyAQf125cPnEYEYTyET+SOF0K602
2490
+ S2axDbO2VDpBEpZ/PnjJWM2auecVOIdE8azFnInFoslMTvLFJUS/CD8wZxh3iNcLrntAuEKZ
2491
+ wuTPKBC8VFPEFrr5Wdr88WLJTMxz2gWM8qWxIhQwlAXnrySmJBAQ+fLH7wdII5nFs6OBJGqc
2492
+ sPjOp9/FsyWuQ99twxb+Bj+jOqrKFLB2ug72N/4Yj/LK46HyMb7xZQitcVGlyU8YqqCq3qt0
2493
+ dw9Kd4LYFwoPAyKop6U1ebecNy2gxSIZM60pEVUH6T9J6Gts8mlJlAhDpP0EASmTP53CDbYR
2494
+ Hvl/LLO4mMqyKwOvRsECbBXZo1wfbCZwnswF5o6gHgAAFydJREFUFhxBSEjTZ8z2bk+6pqyg
2495
+ Q7KHpXwE6p9aS0umn5a0odKSKgQ21pGyClVn87ePUjyUfYG+MFzl4DB0grwRS577tBpz1Kb7
2496
+ IK5Qia7hCnE1iSd0v4bf8hUTz1zF10AE3T07FQFpGpQS6CKzKY3EySEOZS6CH6oqtRQ3jTh5
2497
+ 9PiJbtG8RcIDb7pNpPtNr5tKqJg1GTamepKOmB1AAeVCBKJSIYGb4oalide13vwq5m5y4BEv
2498
+ g+NYi1HiRzIfGQzvcjvjUfI9Pw2je9GV1cH8i27luSKHnxfxyqaL0wRO/MP+pjr+1Yl25ylO
2499
+ t4HpfG3aFUm4W5FolUnD7FehHx6WSM6sV/oAt2FPkTelul5ifYXsqPqUaA3AarIshgGqXBML
2500
+ TipKvkPR7+wrnO95h4kF1ZFLtJj9Vu47M6Un/E76BJztt5AbU24xEKCNEtwlE5tFYSrhJQLC
2501
+ qP7yXj097ANZc35hImIOsODow4AEELHUFAznS/y6rHRI5scpqt4jjGS/+RVGh2uF6TAjjo4J
2502
+ /ZqfUGzCBFDwKf5m6lbsC4oRC3wIbt6rJXEvicUA4mbjxhcXwiO4UcVez7rEL5uGhlqzMnCD
2503
+ yW9/OZ9W4CYVeqgIB+VM3I4eRVeZmSGcSMA6nnDtwZoWkXHjOnXNpqKDIsXFmPB4dru20VC7
2504
+ 6CucSLbokVogSPO3h4L0uj5Kz0O+xUkYQ9FGCS7NdRAuk1R265y5BRHhjvlD8JqqSqybXeR6
2505
+ SNTAmZIGvffpcIdVO1b5FUoGWME1BloQeNCTo35Cz7uM4MLGRMo3VthtsObYSBET10lz0dkt
2506
+ i1WX9VAyGwtukn5g8zr9y7fCT5voZo4ra6/y+VZnZ/BtIBc5SmlR+lGypNrSHwMLNr8tNu6t
2507
+ QC7b+zWdt6zAeGmGSTWQX3KRrCez5UisaBKSP/BWIYk++m74T5gK7qBWxDaHSJT517FvT3gf
2508
+ tUartM68kNrLnyexYfP6CnJAZ3EyGb+RXg6OGeRcxtBZzT/IJxjfWyYm4j0c2iuS0AmeLDeG
2509
+ Z1/9QFzmPNf00oauX4veZRZFaEC4HZAD1r8RJ1nmq0s8w4eKCnaZXAKYDFgYbrPJWnZmdmgI
2510
+ kgFc2UDo6EYgRrINmULuAr9VF2IldOPoO0vnBJ2J1sYoNCdEUC3NgRBuso2Mr4iqRMSqcQrw
2511
+ gRuJtxDP1Q4/c9ADjZD+2lP/+VBbrveX/nvoojHk+2HsBJOWwE0FW4Slv/VltxC9/HKtmosu
2512
+ wOJ7pvno9pYVv0+lYwYCvzD2bFQYKhXyTipTub84tnbbTdd298k3uGaNEsVo+J9E0cvJWn+F
2513
+ ctarPqU2QwzFsC0htVX4S2w40JOiq8SPGQPCgLBTlWR9ETb1x3GcILaMDMvquhZSff2XE3Yz
2514
+ MBuEbP1bRD3eFUG6VpX9Rs2ARAWC7WvZCqCqKl3Ckk1ywrAyTthtIBVa2tZxloJipW4dxRnj
2515
+ IuH1wBwGTyoLxbIoH39RDv4pypODO4jvWpEEJweRgEiYxfLMKx+m9bf5ykM39JxC4LEhsNZw
2516
+ TbDNwUiNfG/9M/dfl9/i0efcbBG3BDYRSa1ltd3fCKXQIogmgoSADBCZvqjwgWUlrJTPkI8v
2517
+ oTWT+mveBLGik6pmcYo/+foH+13aB5bhP46TZbA2eQJthBjYBHrB+tcoWQXHIMpalHw90W9/
2518
+ ReCX93GHkT7WSwkyc/x7fyMeXUXuL6wSjMfwic6fPHz+lBEhUZKeEVFKiMWlObGO1lmjhx87
2519
+ 9fEpWToTbMJvVPlbPkFBQAiJC1zY6NZaOWzy+d9ZnCeoZo6Wb/iKsszGuJLQlCcorOVnikTl
2520
+ U1ktDrUTg36eYiA8KX/5b8JNc9dbqWtHk2pMUNCmYQowVEi5L8gAFv03m8DKCt4BwftfTtgT
2521
+ NEVSK3B/IYvrTwvANayZU4kQKMIGvFK+5PNj3d5SeIpf1Ek0wdKTnw8YKDI2JIxxG8p2Bwkt
2522
+ 7sEwI/mTf+eBp153FypuBTY+Ac/mf2fxnmRt2MRf3kiWnejU8Pu7+MaHLdpSadUgOr1BgTH+
2523
+ N+xdO5sYZT/hMXNZA/su+tLyuV7A0fWTKIXjNaHMIRruljFZvgSwb7n/OQs1BweJq8smikpD
2524
+ QheYCcQwOJahkj5MfCTEVpo+lxCEF93wkDvizOtFnU/WxFqkjbCxzuw9yHVPGZvFm0N0Hiw2
2525
+ CXf4nBY9LiXZKYIocbPvePRFd9wFtzlCbRJeM5nwfyUsqEIYDn3SLM+Tz/nly8OAg6AcqBfY
2526
+ YNeXJTiuYySo1i2JA25ZFyke8csK8fejPbNVmrryXyUmpblWATx+keESY8uLUasTmf+VP9jQ
2527
+ iPaFVAni5kn5YxJeMnfyfqo3C7Z3PvqS4p9fpyA1D+S1RM1dxpK/27f3Sm5VufigbsHt5jqd
2528
+ O+3XkUd6qamQbhh6WgLujBLBxzrvLYtdgoz45N9JZ67EC9b+ecftaxbi1IKbzcBThpjRJjYt
2529
+ Uco/A0cqnv8RZ92gqG6PJmwLELni/wxDwaZy64PPu8+/GxUVmePqA0nSwE2aFmZQtsvWG6TW
2530
+ QI7M/5FbRJrru9ZKUhEtdNNE2BHxzFwe0/0D9hH82aTBi0OFv3Y5/IJS1k66gIwLP59ai0Hc
2531
+ SH7kxApg/l019HEjlKLMUZ3hHr7TNynuP0weCYZ11R7Lm83GGBlJXnv3Uyba908zP0vcx1+O
2532
+ VACph901Wg97HHOJDkj5OTNTpf7O2rDhwAgez8YNlQqFMUhI5RYFTeAAinjCCANEfdQ5N7gr
2533
+ b3tCC1ORurRJ7KJg6Czw+KCE94ALem6oqT2OvkRh9N5MUzchD98EAdl647WNU4R7J0rQjfc9
2534
+ E9O/+txYnsKpENeWtrPB7LvT5rLCTPkFxyx32HiIbrPn4Evc8YrPzCENUcoezOhZ2VdBZ0Pf
2535
+ iAJGzGzEYIS9fER9PPHi291Oh53vbtDkmI0bhJBH6+ZN3RA57pt/tVWfbMMqsnTcVoTLXAWC
2536
+ IIwoMa6ZYEnEU2KHEAwZ+j9bGLUlkcDQA0oesVQ8eb2pN+z4WJbfbOqcAJVMJfKXHeNOuPBW
2537
+ 48RpUSu5f+whX8nUnLbsW/Zd060mX2lieBO+8OSLh1qs92RZ+EZOtkhGcJIEFWFl+H+ZOf/d
2538
+ v4kEt4EOaCBox1+yoCdEKYceZBpaoVu78EaQ00tC4CJIRcD0UKQzT8gsvTDAWn2Q4i3XMT10
2539
+ iR0ace619xoXS6ttbqQmyFipUU5Q/598+R2zpYDbOkgxApAaLYkE7hiiaFjEngb+hKgE3+x/
2540
+ /BXueY0JsaMzCUukefjRnn/tA263oy6ysatp7U2uSTaEDdbsZWsYfHjUOTdameDKeMII8SmF
2541
+ vR2sSG7or8GLrBkfhTGe8791DbRw08K3ublE/9DnRAY8XpIOzjLwiYniJwsEzzGKz0+gF1Qv
2542
+ LSW966J4DRVJEM7777K5W0GcNgQV3P1RZ9+g4ESjU8WlJqh+cWANjAbzgpgKXhpLoKe6ihy5
2543
+ mVmsE3SIA4vOUWS73zKsvyFWCeF83IW3CP/OMtyGx0yrSnRHzQWDLB02mXC/ufK0QwzIbDpT
2544
+ pk63UJV3PjLMXILQ16GU/0lxgDnijEhGuAnB0REBxyLX5JjslM0Cgtsaqog06DW+GjFGrkHN
2545
+ UyetkMMndLjHH7SzbXyIbxGRX3rzo46QpITP44Sq3xTT9dsfxup7qhn9zJbuYkC/Dd2+iike
2546
+ UjREigalSXHGlXeJYJhiVBhWhVefMSjFFcdzhrcL/8YSFof7nUUhQjzixgKBMEeIAF0O1/iw
2547
+ woExmbaTrm3wgTumdCRMc9WPNCDWDKQLGGx8LRgRqB40c9JFt+vAjVcs6AFuYL8IaaAP55Qv
2548
+ qERCWR44YAu3txZMoBpDL+BrMSYkmMDkv6a5Z4VQvlQ0td6rdtUiIZLSAoPnxzqwY+pU4vDi
2549
+ RlFTpwTtYTGHQzl8N5GI8/Qj9nAHi3vBjeRHwZYwoUR9glhg8SEG50AS9H0EX8CwClHifyv5
2550
+ scMn9SQdlAJSIuYz7h2DdQrTKj07G8W+rDaP8bKx+PCz791IrSkMuZgogw/aQcaGG/wrQEJc
2551
+ 9MEH7iTbi0fcQjGrdz46zL2qgxhWl+6YMJggMUJ24lJpkeA0n+soQAchZtdetfsS7SMb49BL
2552
+ j3MX3fige1cxtrFneVvxo9///DsFwGlugX5wR8SVaIrUaUTzGyP3Sg7QgPBnVIl7z0E08YR0
2553
+ 6eyj97LDSj7SiWUc93vUOTdpjDtZONhmyv+78BEwALfhi89BFeuJmDt50ICcUsd4+f+N60XG
2554
+ qR6laHjna7MD5734xqd2wBGSlq5S9TFXwGufSGw9xVxEF8pDpqWd0NZGHLpn9mLIsCzA2DJc
2555
+ ZOFWLzp+X3ekxuSPyVMduGzvYy83vISaFlsg/MRhNOGGjfkxpi6qYHMZORNS+fq7nzaJ8X3/
2556
+ e80CsqwlW4jOsvHCIBq8SdkY3GJct2rP5W2e4w5WlSnnhk2FRJQZesmx7jyJ64jiJPdSN+E3
2557
+ nSrzy6+pPUV8knYERNCc7kSkKI4MPHxvUeGa1D5lA5zOcSABomOMdTAwIzpZrtReZ5Zef+4R
2558
+ tskS0J36APL3Cl4QGGc2NTbA6vIpPFAcwHEDd84I6kAbPFLF1xXRDCL7OSX+1Co2qdLE2Lna
2559
+ Fb+3QCfcQJ3TBggW84FUlXCRIdFu/G7xn1y5ZyeFVt1Elu9rGmLweeyFkD3xjR0AsXMJjP8O
2560
+ IVcF7w/EHb+vwPXUgWUiVGyJ/IzrCzkeue/2FsUsl8Ed+Qlsv744hBW7dbCDPRAZ8gdVTDtp
2561
+ NQdmIKlo0qCBO+OI3XWc5TqJNoUfGB5decYh7iydnMa50fO18F5+51P7A+RIRlSkWZAftf8O
2562
+ Jl5E9IWbi4+kFEry396VbZ4WieCJuKbMhGHIPBN/QRjFfaPDq3A+6PNBELnqJB/POCGKcaQ8
2563
+ my6hgNg354+TxwI9CD4+RePMpnXdOUfYyWofyg+Yuom8RJQwA6zGighKQLlBwzruGMFk4B5b
2564
+ ZXHX1h7NJZCBIRSmb47EbdYTEhs4OOZgZsIfnOcQx8z1xUnYtRym9Y3h1BWKT87pX6NlZAoh
2565
+ 7CP1+dKBD4lDHgh/u5U4y1zJ95Mz0OebG2OuPItzD6kHmzYxDO7WqXI/TfzVxgSiCjEsY0JL
2566
+ gRrtp91cw3xs3GdVkzSutuIKWU0gAM8N5x9pERVfVNxpGIX35K8LYcDY+vKEGzX5sdnYSecf
2567
+ EJrTG+Ha03SZRtSbBE1zT1x5PmURa4P5UEMqLU7w8ilZFuOP0W3YRKwh6ZrUT3BU6rnVlWO+
2568
+ kB1VKGVwGlamhCgU5/GdJH+ad6yZ0G4/8uASp9C0m9vJXBwFimSJgEuP6fhcYUPPm6h+2z90
2569
+ h2BOnEWwehreviRGB2kFIm7CTzNncibL7t9ZX8QRB62cf919Fvr3T/m9c84C0hVwnAqxsaaR
2570
+ HO7BufLxhCToOIVTBgfeIS4cqdlozReYU2rwLSA8sEL/at6gujxPZ1hE0R7jpVXudd4Nm2qw
2571
+ 7rv94sHu5bc/0zm67xrnwIZEiD4WL+HxUPKj37S4tGkdVf5Gspnv0X9jEz8xiJybi0FLvoTl
2572
+ 380XHq2Qfh/obNK33Y+KRPP39Nk2qeDCEXtxCsteO2ySEsNTUnIi+2Wp/uhkmi37riWjmfct
2573
+ lClt9q5KYRL4Ac/Xllz30euut8aKthg8FRFyoS9eRgZ83iqU8Jdwn5yhWl6LSTaC2y8+xs5m
2574
+ fVwTnohJiGHYEOvUIjpSA1H3nU2UE4UvzYSBbxdrlIW7n8Q+XSRJ4TCHL4ePkthuhiFNiBnK
2575
+ 6yOfVkIv+qD+ejerOH9jM2JsC65ITN54/ysLIIL1OEiPM3MxnCNwPtzZEy++69Zfa0Xrf4sc
2576
+ HgTApq8OiCCsYIiRHaCZ6xsiiNCJcEmtdApVRChGuQkdiXoGe4rohKrw3PeBeby2fPj/kCHY
2577
+ il0RT+eeB5ztDedGAJZlG/sQp6Ek/71IEpN2drIchigcbMCxj4Qy9WNVSyeQNXS9dXY5IsO1
2578
+ siIx+fbgHbCuosJN15GoBLkBxySTz8cxhSt37WRjg6EoBFtmaq/107f3yoagCF25uIlNbS+d
2579
+ draWOOZ7dfjBO598Z/YY9JGG1peYHz0ykapYk8FQEYTuycGoBcTHX3+NXnZcISq4qki4IBIG
2580
+ lrjR4DGMm9BRY6QKIYeelY2gviR2rZo3M0Zla50+tbYYFhByvgQsrxMzgUEZp2kNHzXODG4h
2581
+ sFBFQdSs2KWjHVKzhQgWiFSFLbLNKl4mOIxQo+DRzjLWigIaxXM52wz6rrmSMRctmviT1vws
2582
+ iPIRtx9JxmQZgmIcB2cbT0TuWmPFLorp3UhBZpY1bjP+PFwzZ1DvcAJfW0nFciUCvBD3ggiM
2583
+ BIVhDWYm1DyIqFeVlImjbT/+fISdZAbRC5OEKyjS1a2l9ttTNk/gncxEGasoWBO4FCkd89yn
2584
+ zN4n31xXe8p9Q052j+uUPU4zRP2JhwNEdG2VQ12rSCrC0a/gpGRStEWNC0cVbyB8hESTcx2m
2585
+ svdp8+a4X8617yxj4Z22WM9cv3LhnmSZlfNLPt+LUPa+rz+t/NIT1nTobZgQ6CNBuhzXF/ng
2586
+ AkRScqL4e8lPKPNJoriISFP6OaLRwABs3vlZ1ni4mxF3ezmFJPRHqyXLz/cLihCjmSaN65kY
2587
+ 2CMScpfd5lxlwuFGVF9GGfpZ2bpJKGOsEbEtQOyObrGdJn0ysD4tjeDGL3TIx0pEi5vcHttt
2588
+ 7K44fSC3LQFTwi7i6kWEMcI8xk+PyiwrvOfv88v3mxOT2KCQmCBKJ/Z2GyFvL8Eg1CbELUjL
2589
+ 69GN2k0VRmuR1EBMgNrZGHDPKy2RU6/wojUBMXO8TN6lvsB5MhaZz8lj5QhxG8RUp9+ws+sO
2590
+ ZbHx0L5cZVFeSHApiFotepIQOUgC2GIxTUqOUHhL9wUD6uI5MCih3dHj6Er5LKBJqiSQWibI
2591
+ mJvMUV+W5yKjAhb/CqkVag7UUiB4cMJyGncC7iRTdm99P7mvEVfDaX9VpHjNApmkYH+bThKG
2592
+ AakJbnitpOYjlGoC8cZfTDQs+YD5hQoA3IgED2TOhs4mnJwjyfcokjtm2KnvEokNPb7IHm38
2593
+ k4MEifnAXuxJoKhMX5ZUcVYW8zgGT7vppUz+DQ/vzPnCy/SHOcOi0pJSXbFydNe3mtPFKIk/
2594
+ 4TltwAEP2I3UB2uL9UJic+f4UNRxBCRBNQd+QExNYj4k4cU9v4ZDPTZHWBP2Rv4P3gt9g4gi
2595
+ +tpE2RZBpIHjcFNkvAtKKov5PV5reZpwXF0xFEg+iQ2ypOwyQjvLtWGHl7K/GbSyQBjeIi8p
2596
+ nr887/u3sz8rWkau9mSX/m+/k9ywN9KGfXDhXcoJ2ghuOR9nlV5GrjIeZxWX80bUppyPs24q
2597
+ f4bdQFaWKruRq8O57i1GA7KK4wYpvvb8nX/kM6t9tCLnzUpqXqFlF5qvkpqVVUyh9ReajwrI
2598
+ G9JSMv6hOeX+LqvfZT0vd4WlvLAk65K6ppSWlONReSZArry57pWjesta0TIq+l5527cU5Q+k
2599
+ Z6FNygmi6GZ0VVqBZeQq43FpJUfPyluI8pf3laiyxbzKVXGue4tRTVZxWTcWo/BKeDVnc3Le
2600
+ rITKKKLQsgvNV0nNyiqm0PoLzVeevmc1Zim8UVa/y3pemV1aknVJ2lGZTS+WVYRAEQJFCBQh
2601
+ UIRAEQJVA4Hihl01cC2WWoRAEQJFCBQhUIRApUKguGFXKjiLhRUhUIRAEQJFCBQhUDUQKG7Y
2602
+ VQPXYqlFCBQhUIRAEQJFCFQqBIobdqWCc+ktLLgK4Q8c3JyW3tYWW1aEQBECRQgUIZAJgUqy
2603
+ Es8stvh7aYMAwVrqyDe2RL6ytRRAoZiKEChCoAiBIgT+XRCoJD/sf1en/z+2lgAXBLCHuybg
2604
+ TK5IY/8f4VLscxECRQgUIfBvgcD/ASBdwGLdGAqtAAAAAElFTkSuQmCC
2605
+ </xsl:text>
2606
+ </xsl:variable>
2607
+
2608
+
2609
+ <!-- convert YYYY-MM-DD to (Month YYYY) -->
2610
+ <xsl:template name="formatDate">
2611
+ <xsl:param name="date"/>
2612
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
2613
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
2614
+ <xsl:variable name="day" select="substring($date, 9)"/>
2615
+ <xsl:variable name="monthStr">
2616
+ <xsl:choose>
2617
+ <xsl:when test="$month = '01'">January</xsl:when>
2618
+ <xsl:when test="$month = '02'">February</xsl:when>
2619
+ <xsl:when test="$month = '03'">March</xsl:when>
2620
+ <xsl:when test="$month = '04'">April</xsl:when>
2621
+ <xsl:when test="$month = '05'">May</xsl:when>
2622
+ <xsl:when test="$month = '06'">June</xsl:when>
2623
+ <xsl:when test="$month = '07'">July</xsl:when>
2624
+ <xsl:when test="$month = '08'">August</xsl:when>
2625
+ <xsl:when test="$month = '09'">September</xsl:when>
2626
+ <xsl:when test="$month = '10'">October</xsl:when>
2627
+ <xsl:when test="$month = '11'">November</xsl:when>
2628
+ <xsl:when test="$month = '12'">December</xsl:when>
2629
+ </xsl:choose>
2630
+ </xsl:variable>
2631
+ <xsl:variable name="result" select="normalize-space(concat($monthStr, ' ', $day, ', ', $year))"/>
2632
+ <xsl:value-of select="$result"/>
2633
+ </xsl:template>
2634
+
2635
+ <!-- convert YYYY-MM-DD to MM-DD-YYYY -->
2636
+ <xsl:template name="formatDateDigits">
2637
+ <xsl:param name="date"/>
2638
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
2639
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
2640
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
2641
+ <xsl:if test="$year != ''">
2642
+ <xsl:value-of select="$month"/>-<xsl:value-of select="$day"/>-<xsl:value-of select="$year"/>
2643
+ </xsl:if>
2644
+ </xsl:template>
2645
+
2646
+ <xsl:template name="getLevel">
2647
+ <xsl:variable name="level_total" select="count(ancestor::*)"/>
2648
+ <xsl:variable name="level">
2649
+ <xsl:choose>
2650
+ <xsl:when test="ancestor::nist:sections">
2651
+ <xsl:value-of select="$level_total - 2"/>
2652
+ </xsl:when>
2653
+ <xsl:when test="ancestor::nist:bibliography">
2654
+ <xsl:value-of select="$level_total - 2"/>
2655
+ </xsl:when>
2656
+ <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
2657
+ <xsl:otherwise>
2658
+ <xsl:value-of select="$level_total - 1"/>
2659
+ </xsl:otherwise>
2660
+ </xsl:choose>
2661
+ </xsl:variable>
2662
+ <xsl:value-of select="$level"/>
2663
+ </xsl:template>
2664
+
2665
+ <xsl:template name="getSection">
2666
+ <xsl:param name="sectionNum"/>
2667
+ <xsl:variable name="level">
2668
+ <xsl:call-template name="getLevel"/>
2669
+ </xsl:variable>
2670
+ <xsl:variable name="section">
2671
+ <xsl:choose>
2672
+ <xsl:when test="ancestor::nist:bibliography">
2673
+ <xsl:value-of select="$sectionNum"/>
2674
+ </xsl:when>
2675
+ <xsl:when test="ancestor::nist:sections">
2676
+ <!-- 1, 2, 3, 4, ... from main section (not annex, bibliography, ...) -->
2677
+ <xsl:choose>
2678
+ <xsl:when test="$level = 1">
2679
+ <xsl:value-of select="$sectionNum"/>
2680
+ </xsl:when>
2681
+ <xsl:when test="$level &gt;= 2">
2682
+ <xsl:variable name="num">
2683
+ <xsl:number format=".1" level="multiple" count="nist:clause/nist:clause | nist:clause/nist:terms | nist:terms/nist:term | nist:clause/nist:term"/>
2684
+ </xsl:variable>
2685
+ <xsl:value-of select="concat($sectionNum, $num)"/>
2686
+ </xsl:when>
2687
+ <xsl:otherwise>
2688
+ </xsl:otherwise>
2689
+ </xsl:choose>
2690
+ </xsl:when>
2691
+ <xsl:when test="ancestor::nist:annex[@obligation = 'informative']">
2692
+ <xsl:choose>
2693
+ <xsl:when test="$level = 1">
2694
+ <xsl:text>Appendix </xsl:text>
2695
+ <xsl:number format="I" level="any" count="nist:annex[@obligation = 'informative']"/>
2696
+ </xsl:when>
2697
+ <xsl:otherwise>
2698
+ <xsl:number format="I.1" level="multiple" count="nist:annex[@obligation = 'informative'] | nist:clause"/>
2699
+ </xsl:otherwise>
2700
+ </xsl:choose>
2701
+ </xsl:when>
2702
+ <xsl:when test="ancestor::nist:annex">
2703
+ <xsl:choose>
2704
+ <xsl:when test="$level = 1">
2705
+ <xsl:text>Appendix </xsl:text>
2706
+ <xsl:choose>
2707
+ <xsl:when test="count(//nist:annex) = 1">
2708
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/>
2709
+ </xsl:when>
2710
+ <xsl:otherwise>
2711
+ <xsl:number format="A" level="any" count="nist:annex"/>
2712
+ </xsl:otherwise>
2713
+ </xsl:choose>
2714
+ </xsl:when>
2715
+ <xsl:otherwise>
2716
+ <xsl:choose>
2717
+ <xsl:when test="count(//nist:annex) = 1">
2718
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/><xsl:number format=".1" level="multiple" count="nist:clause"/>
2719
+ </xsl:when>
2720
+ <xsl:otherwise>
2721
+ <xsl:number format="A.1" level="multiple" count="nist:annex | nist:clause"/>
2722
+ </xsl:otherwise>
2723
+ </xsl:choose>
2724
+ </xsl:otherwise>
2725
+ </xsl:choose>
2726
+ </xsl:when>
2727
+ <xsl:otherwise>
2728
+ </xsl:otherwise>
2729
+ </xsl:choose>
2730
+ </xsl:variable>
2731
+ <xsl:value-of select="$section"/>
2732
+ </xsl:template>
2733
+
2734
+ <xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="linebreak" select="'&#8232;'"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="text()">
2735
+ <xsl:value-of select="."/>
2736
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='br']">
2737
+ <xsl:value-of select="$linebreak"/>
2738
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='td']//text() | *[local-name()='th']//text()" priority="1">
2739
+ <xsl:call-template name="add-zero-spaces"/>
2740
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']">
2741
+
2742
+ <xsl:variable name="simple-table">
2743
+ <!-- <xsl:copy> -->
2744
+ <xsl:call-template name="getSimpleTable"/>
2745
+ <!-- </xsl:copy> -->
2746
+ </xsl:variable>
2747
+
2748
+ <!-- DEBUG -->
2749
+ <!-- SourceTable=<xsl:copy-of select="current()"/>EndSourceTable -->
2750
+ <!-- Simpletable=<xsl:copy-of select="$simple-table"/>EndSimpltable -->
2751
+
2752
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2753
+
2754
+
2755
+ <xsl:choose>
2756
+ <xsl:when test="@unnumbered = 'true'"/>
2757
+ <xsl:otherwise>
2758
+
2759
+
2760
+
2761
+ <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
2762
+
2763
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
2764
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2765
+
2766
+
2767
+
2768
+
2769
+ <xsl:text>Table </xsl:text>
2770
+ <xsl:choose>
2771
+ <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
2772
+ <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
2773
+ </xsl:when>
2774
+ <xsl:when test="ancestor::*[local-name()='annex']">
2775
+
2776
+
2777
+
2778
+ <xsl:variable name="annex-id" select="ancestor::*[local-name()='annex']/@id"/>
2779
+ <xsl:number format="A-" count="*[local-name()='annex']"/>
2780
+ <xsl:number format="1" level="any" count="*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true'][ancestor::*[local-name()='annex'][@id = $annex-id]]"/>
2781
+
2782
+
2783
+
2784
+
2785
+ </xsl:when>
2786
+ <xsl:otherwise>
2787
+ <!-- <xsl:number format="1"/> -->
2788
+ <xsl:number format="A." count="*[local-name()='annex']"/>
2789
+ <!-- <xsl:number format="1" level="any" count="*[local-name()='sections']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/> -->
2790
+ <xsl:number format="1" level="any" count="//*[local-name()='table'] [not(ancestor::*[local-name()='annex']) and not(ancestor::*[local-name()='executivesummary']) and not(ancestor::*[local-name()='bibdata'])] [not(@unnumbered) or @unnumbered != 'true']"/>
2791
+ </xsl:otherwise>
2792
+ </xsl:choose>
2793
+ <xsl:if test="*[local-name()='name']">
2794
+
2795
+
2796
+
2797
+ <xsl:text> — </xsl:text>
2798
+
2799
+ <xsl:apply-templates select="*[local-name()='name']" mode="process"/>
2800
+ </xsl:if>
2801
+ </fo:block>
2802
+
2803
+
2804
+ </xsl:otherwise>
2805
+ </xsl:choose>
2806
+
2807
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2808
+
2809
+ <!-- <xsl:variable name="cols-count">
2810
+ <xsl:choose>
2811
+ <xsl:when test="*[local-name()='thead']">
2812
+ <xsl:call-template name="calculate-columns-numbers">
2813
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2814
+ </xsl:call-template>
2815
+ </xsl:when>
2816
+ <xsl:otherwise>
2817
+ <xsl:call-template name="calculate-columns-numbers">
2818
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2819
+ </xsl:call-template>
2820
+ </xsl:otherwise>
2821
+ </xsl:choose>
2822
+ </xsl:variable> -->
2823
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2824
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2825
+
2826
+
2827
+
2828
+ <xsl:variable name="colwidths">
2829
+ <xsl:call-template name="calculate-column-widths">
2830
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2831
+ <xsl:with-param name="table" select="$simple-table"/>
2832
+ </xsl:call-template>
2833
+ </xsl:variable>
2834
+
2835
+ <xsl:variable name="colwidths2">
2836
+ <xsl:call-template name="calculate-column-widths">
2837
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2838
+ </xsl:call-template>
2839
+ </xsl:variable>
2840
+
2841
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2842
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
2843
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2844
+
2845
+ <xsl:variable name="margin-left">
2846
+ <xsl:choose>
2847
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2848
+ <xsl:otherwise>0</xsl:otherwise>
2849
+ </xsl:choose>
2850
+ </xsl:variable>
2851
+
2852
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2853
+
2854
+ <xsl:attribute name="space-after">6pt</xsl:attribute>
2855
+
2856
+
2857
+
2858
+
2859
+
2860
+ <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm">
2861
+
2862
+
2863
+
2864
+
2865
+ <xsl:if test="ancestor::*[local-name()='annex'] or ancestor::*[local-name()='preface']">
2866
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
2867
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2868
+ </xsl:if>
2869
+ <xsl:if test="not(ancestor::*[local-name()='annex'] or ancestor::*[local-name()='preface'])">
2870
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
2871
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
2872
+ </xsl:if>
2873
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2874
+
2875
+
2876
+
2877
+
2878
+
2879
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2880
+ <xsl:choose>
2881
+ <xsl:when test=". = 1">
2882
+ <fo:table-column column-width="proportional-column-width(2)"/>
2883
+ </xsl:when>
2884
+ <xsl:otherwise>
2885
+ <fo:table-column column-width="proportional-column-width({.})"/>
2886
+ </xsl:otherwise>
2887
+ </xsl:choose>
2888
+ </xsl:for-each>
2889
+ <xsl:apply-templates/>
2890
+ </fo:table>
2891
+ </fo:block-container>
2892
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='name']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='name']" mode="process">
2893
+ <xsl:apply-templates/>
2894
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="calculate-columns-numbers">
2895
+ <xsl:param name="table-row"/>
2896
+ <xsl:variable name="columns-count" select="count($table-row/*)"/>
2897
+ <xsl:variable name="sum-colspans" select="sum($table-row/*/@colspan)"/>
2898
+ <xsl:variable name="columns-with-colspan" select="count($table-row/*[@colspan])"/>
2899
+ <xsl:value-of select="$columns-count + $sum-colspans - $columns-with-colspan"/>
2900
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="calculate-column-widths">
2901
+ <xsl:param name="table"/>
2902
+ <xsl:param name="cols-count"/>
2903
+ <xsl:param name="curr-col" select="1"/>
2904
+ <xsl:param name="width" select="0"/>
2905
+
2906
+ <xsl:if test="$curr-col &lt;= $cols-count">
2907
+ <xsl:variable name="widths">
2908
+ <xsl:choose>
2909
+ <xsl:when test="not($table)">
2910
+ <xsl:for-each select="*[local-name()='thead']//*[local-name()='tr']">
2911
+ <xsl:variable name="words">
2912
+ <xsl:call-template name="tokenize">
2913
+ <xsl:with-param name="text" select="translate(*[local-name()='th'][$curr-col],'- —:', ' ')"/>
2914
+ </xsl:call-template>
2915
+ </xsl:variable>
2916
+ <xsl:variable name="max_length">
2917
+ <xsl:call-template name="max_length">
2918
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2919
+ </xsl:call-template>
2920
+ </xsl:variable>
2921
+ <width>
2922
+ <xsl:value-of select="$max_length"/>
2923
+ </width>
2924
+ </xsl:for-each>
2925
+ <xsl:for-each select="*[local-name()='tbody']//*[local-name()='tr']">
2926
+ <xsl:variable name="words">
2927
+ <xsl:call-template name="tokenize">
2928
+ <xsl:with-param name="text" select="translate(*[local-name()='td'][$curr-col],'- —:', ' ')"/>
2929
+ </xsl:call-template>
2930
+ </xsl:variable>
2931
+ <xsl:variable name="max_length">
2932
+ <xsl:call-template name="max_length">
2933
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2934
+ </xsl:call-template>
2935
+ </xsl:variable>
2936
+ <width>
2937
+ <xsl:value-of select="$max_length"/>
2938
+ </width>
2939
+
2940
+ </xsl:for-each>
2941
+ </xsl:when>
2942
+ <xsl:otherwise>
2943
+ <xsl:for-each select="xalan:nodeset($table)//tr">
2944
+ <xsl:variable name="words">
2945
+ <xsl:call-template name="tokenize">
2946
+ <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/>
2947
+ </xsl:call-template>
2948
+ </xsl:variable>
2949
+ <xsl:variable name="max_length">
2950
+ <xsl:call-template name="max_length">
2951
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2952
+ </xsl:call-template>
2953
+ </xsl:variable>
2954
+ <width>
2955
+ <xsl:variable name="divider">
2956
+ <xsl:choose>
2957
+ <xsl:when test="td[$curr-col]/@divide">
2958
+ <xsl:value-of select="td[$curr-col]/@divide"/>
2959
+ </xsl:when>
2960
+ <xsl:otherwise>1</xsl:otherwise>
2961
+ </xsl:choose>
2962
+ </xsl:variable>
2963
+ <xsl:value-of select="$max_length div $divider"/>
2964
+ </width>
2965
+
2966
+ </xsl:for-each>
2967
+
2968
+ </xsl:otherwise>
2969
+ </xsl:choose>
2970
+ </xsl:variable>
2971
+
2972
+
2973
+ <column>
2974
+ <xsl:for-each select="xalan:nodeset($widths)//width">
2975
+ <xsl:sort select="." data-type="number" order="descending"/>
2976
+ <xsl:if test="position()=1">
2977
+ <xsl:value-of select="."/>
2978
+ </xsl:if>
2979
+ </xsl:for-each>
2980
+ </column>
2981
+ <xsl:call-template name="calculate-column-widths">
2982
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2983
+ <xsl:with-param name="curr-col" select="$curr-col +1"/>
2984
+ <xsl:with-param name="table" select="$table"/>
2985
+ </xsl:call-template>
2986
+ </xsl:if>
2987
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table2']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead']" mode="process">
2988
+ <!-- <fo:table-header font-weight="bold">
2989
+ <xsl:apply-templates />
2990
+ </fo:table-header> -->
2991
+ <xsl:apply-templates/>
2992
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tfoot']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tfoot']" mode="process">
2993
+ <xsl:apply-templates/>
2994
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tbody']">
2995
+ <xsl:variable name="cols-count">
2996
+ <xsl:choose>
2997
+ <xsl:when test="../*[local-name()='thead']">
2998
+ <!-- <xsl:value-of select="count(../*[local-name()='thead']/*[local-name()='tr']/*[local-name()='th'])"/> -->
2999
+ <xsl:call-template name="calculate-columns-numbers">
3000
+ <xsl:with-param name="table-row" select="../*[local-name()='thead']/*[local-name()='tr'][1]"/>
3001
+ </xsl:call-template>
3002
+ </xsl:when>
3003
+ <xsl:otherwise>
3004
+ <!-- <xsl:value-of select="count(./*[local-name()='tr'][1]/*[local-name()='td'])"/> -->
3005
+ <xsl:call-template name="calculate-columns-numbers">
3006
+ <xsl:with-param name="table-row" select="./*[local-name()='tr'][1]"/>
3007
+ </xsl:call-template>
3008
+ </xsl:otherwise>
3009
+ </xsl:choose>
3010
+ </xsl:variable>
3011
+
3012
+ <fo:table-body>
3013
+ <xsl:apply-templates select="../*[local-name()='thead']" mode="process"/>
3014
+ <xsl:apply-templates/>
3015
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3016
+ <!-- if there are note(s) or fn(s) then create footer row -->
3017
+ <xsl:if test="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']">
3018
+ <fo:table-row>
3019
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3020
+
3021
+
3022
+ <!-- fn will be processed inside 'note' processing -->
3023
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3024
+ <!-- fn processing -->
3025
+ <xsl:call-template name="fn_display"/>
3026
+
3027
+ </fo:table-cell>
3028
+ </fo:table-row>
3029
+
3030
+ </xsl:if>
3031
+ </fo:table-body>
3032
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tr']">
3033
+ <xsl:variable name="parent-name" select="local-name(..)"/>
3034
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3035
+ <fo:table-row min-height="4mm">
3036
+ <xsl:if test="$parent-name = 'thead'">
3037
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3038
+
3039
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
3040
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3041
+
3042
+
3043
+
3044
+
3045
+ </xsl:if>
3046
+ <xsl:if test="$parent-name = 'tfoot'">
3047
+
3048
+ </xsl:if>
3049
+
3050
+ <xsl:apply-templates/>
3051
+ </fo:table-row>
3052
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='th']">
3053
+ <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
3054
+
3055
+
3056
+
3057
+ <xsl:attribute name="text-align">center</xsl:attribute>
3058
+ <xsl:attribute name="background-color">black</xsl:attribute>
3059
+ <xsl:attribute name="color">white</xsl:attribute>
3060
+
3061
+
3062
+
3063
+
3064
+ <xsl:if test="@colspan">
3065
+ <xsl:attribute name="number-columns-spanned">
3066
+ <xsl:value-of select="@colspan"/>
3067
+ </xsl:attribute>
3068
+ </xsl:if>
3069
+ <xsl:if test="@rowspan">
3070
+ <xsl:attribute name="number-rows-spanned">
3071
+ <xsl:value-of select="@rowspan"/>
3072
+ </xsl:attribute>
3073
+ </xsl:if>
3074
+ <fo:block>
3075
+ <xsl:apply-templates/>
3076
+ </fo:block>
3077
+ </fo:table-cell>
3078
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='td']">
3079
+ <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
3080
+
3081
+
3082
+
3083
+
3084
+
3085
+
3086
+ <xsl:if test="ancestor::*[local-name()='thead']">
3087
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
3088
+ </xsl:if>
3089
+
3090
+ <xsl:if test="@colspan">
3091
+ <xsl:attribute name="number-columns-spanned">
3092
+ <xsl:value-of select="@colspan"/>
3093
+ </xsl:attribute>
3094
+ </xsl:if>
3095
+ <xsl:if test="@rowspan">
3096
+ <xsl:attribute name="number-rows-spanned">
3097
+ <xsl:value-of select="@rowspan"/>
3098
+ </xsl:attribute>
3099
+ </xsl:if>
3100
+ <fo:block>
3101
+ <xsl:apply-templates/>
3102
+ </fo:block>
3103
+ <!-- <xsl:choose>
3104
+ <xsl:when test="count(*) = 1 and *[local-name() = 'p']">
3105
+ <xsl:apply-templates />
3106
+ </xsl:when>
3107
+ <xsl:otherwise>
3108
+ <fo:block>
3109
+ <xsl:apply-templates />
3110
+ </fo:block>
3111
+ </xsl:otherwise>
3112
+ </xsl:choose> -->
3113
+
3114
+
3115
+ </fo:table-cell>
3116
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']" mode="process">
3117
+
3118
+
3119
+ <fo:block font-size="10pt" margin-bottom="12pt">
3120
+
3121
+ <fo:inline padding-right="2mm">
3122
+ <xsl:text>NOTE </xsl:text>
3123
+
3124
+
3125
+ <xsl:number format="1 "/>
3126
+
3127
+ </fo:inline>
3128
+ <xsl:apply-templates mode="process"/>
3129
+ </fo:block>
3130
+
3131
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
3132
+ <xsl:apply-templates/>
3133
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_display">
3134
+ <xsl:variable name="references">
3135
+ <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
3136
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3137
+
3138
+
3139
+ <xsl:apply-templates/>
3140
+ </fn>
3141
+ </xsl:for-each>
3142
+ </xsl:variable>
3143
+ <xsl:for-each select="xalan:nodeset($references)//fn">
3144
+ <xsl:variable name="reference" select="@reference"/>
3145
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3146
+ <fo:block margin-bottom="12pt">
3147
+
3148
+ <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
3149
+
3150
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3151
+
3152
+
3153
+
3154
+
3155
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3156
+
3157
+ <xsl:value-of select="@reference"/>
3158
+
3159
+ </fo:inline>
3160
+ <fo:inline>
3161
+
3162
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3163
+
3164
+ <xsl:apply-templates/>
3165
+ </fo:inline>
3166
+ </fo:block>
3167
+ </xsl:if>
3168
+ </xsl:for-each>
3169
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_name_display">
3170
+ <!-- <xsl:variable name="references">
3171
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3172
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3173
+ <xsl:apply-templates />
3174
+ </fn>
3175
+ </xsl:for-each>
3176
+ </xsl:variable>
3177
+ $references=<xsl:copy-of select="$references"/> -->
3178
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3179
+ <xsl:variable name="reference" select="@reference"/>
3180
+ <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
3181
+ <fo:block margin-bottom="12pt">
3182
+ <xsl:apply-templates/>
3183
+ </fo:block>
3184
+ </xsl:for-each>
3185
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_display_figure">
3186
+ <xsl:variable name="key_iso">
3187
+ <!-- and (not(@class) or @class !='pseudocode') -->
3188
+ </xsl:variable>
3189
+ <xsl:variable name="references">
3190
+ <xsl:for-each select=".//*[local-name()='fn']">
3191
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3192
+ <xsl:apply-templates/>
3193
+ </fn>
3194
+ </xsl:for-each>
3195
+ </xsl:variable>
3196
+ <xsl:if test="xalan:nodeset($references)//fn">
3197
+ <fo:block>
3198
+ <fo:table width="95%" table-layout="fixed">
3199
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3200
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3201
+ </xsl:if>
3202
+ <fo:table-column column-width="15%"/>
3203
+ <fo:table-column column-width="85%"/>
3204
+ <fo:table-body>
3205
+ <xsl:for-each select="xalan:nodeset($references)//fn">
3206
+ <xsl:variable name="reference" select="@reference"/>
3207
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3208
+ <fo:table-row>
3209
+ <fo:table-cell>
3210
+ <fo:block>
3211
+ <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
3212
+
3213
+ <xsl:value-of select="@reference"/>
3214
+ </fo:inline>
3215
+ </fo:block>
3216
+ </fo:table-cell>
3217
+ <fo:table-cell>
3218
+ <fo:block text-align="justify" margin-bottom="12pt">
3219
+
3220
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3221
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
3222
+ </xsl:if>
3223
+
3224
+ <xsl:apply-templates/>
3225
+ </fo:block>
3226
+ </fo:table-cell>
3227
+ </fo:table-row>
3228
+ </xsl:if>
3229
+ </xsl:for-each>
3230
+ </fo:table-body>
3231
+ </fo:table>
3232
+ </fo:block>
3233
+ </xsl:if>
3234
+
3235
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']">
3236
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3237
+ <fo:inline font-size="80%" keep-with-previous.within-line="always">
3238
+
3239
+
3240
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3241
+ <xsl:attribute name="color">blue</xsl:attribute>
3242
+
3243
+
3244
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
3245
+
3246
+ <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
3247
+
3248
+ <xsl:value-of select="@reference"/>
3249
+ </fo:basic-link>
3250
+ </fo:inline>
3251
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']/*[local-name()='p']">
3252
+ <fo:inline>
3253
+ <xsl:apply-templates/>
3254
+ </fo:inline>
3255
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dl']">
3256
+ <xsl:variable name="parent" select="local-name(..)"/>
3257
+
3258
+ <xsl:variable name="key_iso">
3259
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
3260
+ </xsl:variable>
3261
+
3262
+ <xsl:choose>
3263
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
3264
+
3265
+
3266
+ <fo:block margin-bottom="12pt" text-align="left">
3267
+
3268
+ <xsl:text>where </xsl:text>
3269
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
3270
+ <xsl:text/>
3271
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
3272
+ </fo:block>
3273
+
3274
+ </xsl:when>
3275
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
3276
+ <fo:block margin-bottom="12pt" text-align="left">
3277
+
3278
+
3279
+
3280
+ <xsl:text>where</xsl:text>
3281
+ </fo:block>
3282
+ </xsl:when>
3283
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
3284
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt">
3285
+
3286
+ <xsl:text>Key</xsl:text>
3287
+ </fo:block>
3288
+ </xsl:when>
3289
+ </xsl:choose>
3290
+
3291
+ <!-- a few components -->
3292
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
3293
+ <fo:block>
3294
+
3295
+
3296
+
3297
+ <xsl:if test="not(.//*[local-name()='dt']//*[local-name()='stem'])">
3298
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
3299
+ </xsl:if>
3300
+
3301
+
3302
+ <fo:block>
3303
+
3304
+ <xsl:if test="not(.//*[local-name()='dt']//*[local-name()='stem'])">
3305
+ <xsl:attribute name="margin-left">-2.5mm</xsl:attribute>
3306
+ </xsl:if>
3307
+
3308
+ <!-- create virtual html table for dl/[dt and dd] -->
3309
+ <xsl:variable name="html-table">
3310
+ <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3311
+ <xsl:element name="{$ns}:table">
3312
+ <tbody>
3313
+ <xsl:apply-templates mode="dl"/>
3314
+ </tbody>
3315
+ </xsl:element>
3316
+ </xsl:variable>
3317
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
3318
+ <xsl:variable name="colwidths">
3319
+ <xsl:call-template name="calculate-column-widths">
3320
+ <xsl:with-param name="cols-count" select="2"/>
3321
+ <xsl:with-param name="table" select="$html-table"/>
3322
+ </xsl:call-template>
3323
+ </xsl:variable>
3324
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
3325
+
3326
+ <fo:table width="95%" table-layout="fixed">
3327
+ <xsl:choose>
3328
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
3329
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
3330
+ </xsl:when>
3331
+ <xsl:when test="normalize-space($key_iso) = 'true'">
3332
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3333
+ </xsl:when>
3334
+ </xsl:choose>
3335
+ <xsl:choose>
3336
+ <xsl:when test="ancestor::*[local-name()='dl']"><!-- second level, i.e. inlined table -->
3337
+ <fo:table-column column-width="50%"/>
3338
+ <fo:table-column column-width="50%"/>
3339
+ </xsl:when>
3340
+ <xsl:otherwise>
3341
+ <xsl:choose>
3342
+ <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
3343
+ <fo:table-column column-width="60%"/>
3344
+ <fo:table-column column-width="40%"/>
3345
+ </xsl:when> -->
3346
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.3">
3347
+ <fo:table-column column-width="50%"/>
3348
+ <fo:table-column column-width="50%"/>
3349
+ </xsl:when>
3350
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 0.5">
3351
+ <fo:table-column column-width="40%"/>
3352
+ <fo:table-column column-width="60%"/>
3353
+ </xsl:when>
3354
+ <xsl:otherwise>
3355
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3356
+ <xsl:choose>
3357
+ <xsl:when test=". = 1">
3358
+ <fo:table-column column-width="proportional-column-width(2)"/>
3359
+ </xsl:when>
3360
+ <xsl:otherwise>
3361
+ <fo:table-column column-width="proportional-column-width({.})"/>
3362
+ </xsl:otherwise>
3363
+ </xsl:choose>
3364
+ </xsl:for-each>
3365
+ </xsl:otherwise>
3366
+ </xsl:choose>
3367
+ <!-- <fo:table-column column-width="15%"/>
3368
+ <fo:table-column column-width="85%"/> -->
3369
+ </xsl:otherwise>
3370
+ </xsl:choose>
3371
+ <fo:table-body>
3372
+ <xsl:apply-templates>
3373
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
3374
+ </xsl:apply-templates>
3375
+ </fo:table-body>
3376
+ </fo:table>
3377
+ </fo:block>
3378
+ </fo:block>
3379
+ </xsl:if>
3380
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dl']/*[local-name()='note']">
3381
+ <xsl:param name="key_iso"/>
3382
+
3383
+ <!-- <tr>
3384
+ <td>NOTE</td>
3385
+ <td>
3386
+ <xsl:apply-templates />
3387
+ </td>
3388
+ </tr>
3389
+ -->
3390
+ <fo:table-row>
3391
+ <fo:table-cell>
3392
+ <fo:block margin-top="6pt">
3393
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3394
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3395
+ </xsl:if>
3396
+ NOTE
3397
+ </fo:block>
3398
+ </fo:table-cell>
3399
+ <fo:table-cell>
3400
+ <fo:block>
3401
+ <xsl:apply-templates/>
3402
+ </fo:block>
3403
+ </fo:table-cell>
3404
+ </fo:table-row>
3405
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dt']" mode="dl">
3406
+ <tr>
3407
+ <td>
3408
+ <xsl:apply-templates/>
3409
+ </td>
3410
+ <td>
3411
+
3412
+ <xsl:if test="local-name(*[1]) != 'stem'">
3413
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3414
+ </xsl:if>
3415
+
3416
+
3417
+ </td>
3418
+ </tr>
3419
+
3420
+ <xsl:if test="local-name(*[1]) = 'stem'">
3421
+ <tr>
3422
+ <td>
3423
+ <xsl:text> </xsl:text>
3424
+ </td>
3425
+ <td>
3426
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="dl_process"/>
3427
+ </td>
3428
+ </tr>
3429
+ </xsl:if>
3430
+
3431
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dt']">
3432
+ <xsl:param name="key_iso"/>
3433
+
3434
+ <fo:table-row>
3435
+ <fo:table-cell>
3436
+ <fo:block margin-top="6pt">
3437
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3438
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3439
+
3440
+ </xsl:if>
3441
+
3442
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3443
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3444
+
3445
+
3446
+ <xsl:apply-templates/>
3447
+ </fo:block>
3448
+ </fo:table-cell>
3449
+ <fo:table-cell>
3450
+ <fo:block>
3451
+
3452
+
3453
+ <xsl:if test="local-name(*[1]) != 'stem'">
3454
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3455
+ </xsl:if>
3456
+
3457
+
3458
+ </fo:block>
3459
+ </fo:table-cell>
3460
+ </fo:table-row>
3461
+
3462
+ <xsl:if test="local-name(*[1]) = 'stem'">
3463
+ <fo:table-row>
3464
+ <fo:table-cell>
3465
+ <fo:block margin-top="6pt">
3466
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3467
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3468
+ </xsl:if>
3469
+ <xsl:text> </xsl:text>
3470
+ </fo:block>
3471
+ </fo:table-cell>
3472
+ <fo:table-cell>
3473
+ <fo:block>
3474
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3475
+ </fo:block>
3476
+ </fo:table-cell>
3477
+ </fo:table-row>
3478
+ </xsl:if>
3479
+
3480
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="dl"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="dl_process">
3481
+ <xsl:apply-templates/>
3482
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="process">
3483
+ <xsl:apply-templates/>
3484
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
3485
+ <fo:inline><xsl:apply-templates/></fo:inline>
3486
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='em']">
3487
+ <fo:inline font-style="italic">
3488
+ <xsl:apply-templates/>
3489
+ </fo:inline>
3490
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='strong']">
3491
+ <fo:inline font-weight="bold">
3492
+ <xsl:apply-templates/>
3493
+ </fo:inline>
3494
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='sup']">
3495
+ <fo:inline font-size="80%" vertical-align="super">
3496
+ <xsl:apply-templates/>
3497
+ </fo:inline>
3498
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='sub']">
3499
+ <fo:inline font-size="80%" vertical-align="sub">
3500
+ <xsl:apply-templates/>
3501
+ </fo:inline>
3502
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tt']">
3503
+ <fo:inline font-family="Courier" font-size="10pt">
3504
+ <xsl:apply-templates/>
3505
+ </fo:inline>
3506
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='del']">
3507
+ <fo:inline font-size="10pt" color="red" text-decoration="line-through">
3508
+ <xsl:apply-templates/>
3509
+ </fo:inline>
3510
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="text()[ancestor::*[local-name()='smallcap']]">
3511
+ <xsl:variable name="text" select="normalize-space(.)"/>
3512
+ <fo:inline font-size="75%">
3513
+ <xsl:if test="string-length($text) &gt; 0">
3514
+ <xsl:call-template name="recursiveSmallCaps">
3515
+ <xsl:with-param name="text" select="$text"/>
3516
+ </xsl:call-template>
3517
+ </xsl:if>
3518
+ </fo:inline>
3519
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="recursiveSmallCaps">
3520
+ <xsl:param name="text"/>
3521
+ <xsl:variable name="char" select="substring($text,1,1)"/>
3522
+ <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/>
3523
+ <xsl:choose>
3524
+ <xsl:when test="$char=$upperCase">
3525
+ <fo:inline font-size="{100 div 0.75}%">
3526
+ <xsl:value-of select="$upperCase"/>
3527
+ </fo:inline>
3528
+ </xsl:when>
3529
+ <xsl:otherwise>
3530
+ <xsl:value-of select="$upperCase"/>
3531
+ </xsl:otherwise>
3532
+ </xsl:choose>
3533
+ <xsl:if test="string-length($text) &gt; 1">
3534
+ <xsl:call-template name="recursiveSmallCaps">
3535
+ <xsl:with-param name="text" select="substring($text,2)"/>
3536
+ </xsl:call-template>
3537
+ </xsl:if>
3538
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="tokenize">
3539
+ <xsl:param name="text"/>
3540
+ <xsl:param name="separator" select="' '"/>
3541
+ <xsl:choose>
3542
+ <xsl:when test="not(contains($text, $separator))">
3543
+ <word>
3544
+ <xsl:variable name="str_no_en_chars" select="normalize-space(translate($text, $en_chars, ''))"/>
3545
+ <xsl:variable name="len_str_no_en_chars" select="string-length($str_no_en_chars)"/>
3546
+ <xsl:variable name="len_str_tmp" select="string-length(normalize-space($text))"/>
3547
+ <xsl:variable name="len_str">
3548
+ <xsl:choose>
3549
+ <xsl:when test="normalize-space(translate($text, $upper, '')) = ''"> <!-- english word in CAPITAL letters -->
3550
+ <xsl:value-of select="$len_str_tmp * 1.5"/>
3551
+ </xsl:when>
3552
+ <xsl:otherwise>
3553
+ <xsl:value-of select="$len_str_tmp"/>
3554
+ </xsl:otherwise>
3555
+ </xsl:choose>
3556
+ </xsl:variable>
3557
+
3558
+ <!-- <xsl:if test="$len_str_no_en_chars div $len_str &gt; 0.8">
3559
+ <xsl:message>
3560
+ div=<xsl:value-of select="$len_str_no_en_chars div $len_str"/>
3561
+ len_str=<xsl:value-of select="$len_str"/>
3562
+ len_str_no_en_chars=<xsl:value-of select="$len_str_no_en_chars"/>
3563
+ </xsl:message>
3564
+ </xsl:if> -->
3565
+ <!-- <len_str_no_en_chars><xsl:value-of select="$len_str_no_en_chars"/></len_str_no_en_chars>
3566
+ <len_str><xsl:value-of select="$len_str"/></len_str> -->
3567
+ <xsl:choose>
3568
+ <xsl:when test="$len_str_no_en_chars div $len_str &gt; 0.8"> <!-- means non-english string -->
3569
+ <xsl:value-of select="$len_str - $len_str_no_en_chars"/>
3570
+ </xsl:when>
3571
+ <xsl:otherwise>
3572
+ <xsl:value-of select="$len_str"/>
3573
+ </xsl:otherwise>
3574
+ </xsl:choose>
3575
+ </word>
3576
+ </xsl:when>
3577
+ <xsl:otherwise>
3578
+ <word>
3579
+ <xsl:value-of select="string-length(normalize-space(substring-before($text, $separator)))"/>
3580
+ </word>
3581
+ <xsl:call-template name="tokenize">
3582
+ <xsl:with-param name="text" select="substring-after($text, $separator)"/>
3583
+ </xsl:call-template>
3584
+ </xsl:otherwise>
3585
+ </xsl:choose>
3586
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="max_length">
3587
+ <xsl:param name="words"/>
3588
+ <xsl:for-each select="$words//word">
3589
+ <xsl:sort select="." data-type="number" order="descending"/>
3590
+ <xsl:if test="position()=1">
3591
+ <xsl:value-of select="."/>
3592
+ </xsl:if>
3593
+ </xsl:for-each>
3594
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="add-zero-spaces">
3595
+ <xsl:param name="text" select="."/>
3596
+ <xsl:variable name="zero-space-after-chars">-</xsl:variable>
3597
+ <xsl:variable name="zero-space-after-dot">.</xsl:variable>
3598
+ <xsl:variable name="zero-space-after-colon">:</xsl:variable>
3599
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
3600
+ <xsl:variable name="zero-space">​</xsl:variable>
3601
+ <xsl:choose>
3602
+ <xsl:when test="contains($text, $zero-space-after-chars)">
3603
+ <xsl:value-of select="substring-before($text, $zero-space-after-chars)"/>
3604
+ <xsl:value-of select="$zero-space-after-chars"/>
3605
+ <xsl:value-of select="$zero-space"/>
3606
+ <xsl:call-template name="add-zero-spaces">
3607
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-chars)"/>
3608
+ </xsl:call-template>
3609
+ </xsl:when>
3610
+ <xsl:when test="contains($text, $zero-space-after-dot)">
3611
+ <xsl:value-of select="substring-before($text, $zero-space-after-dot)"/>
3612
+ <xsl:value-of select="$zero-space-after-dot"/>
3613
+ <xsl:value-of select="$zero-space"/>
3614
+ <xsl:call-template name="add-zero-spaces">
3615
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-dot)"/>
3616
+ </xsl:call-template>
3617
+ </xsl:when>
3618
+ <xsl:when test="contains($text, $zero-space-after-colon)">
3619
+ <xsl:value-of select="substring-before($text, $zero-space-after-colon)"/>
3620
+ <xsl:value-of select="$zero-space-after-colon"/>
3621
+ <xsl:value-of select="$zero-space"/>
3622
+ <xsl:call-template name="add-zero-spaces">
3623
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-colon)"/>
3624
+ </xsl:call-template>
3625
+ </xsl:when>
3626
+ <xsl:when test="contains($text, $zero-space-after-equal)">
3627
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
3628
+ <xsl:value-of select="$zero-space-after-equal"/>
3629
+ <xsl:value-of select="$zero-space"/>
3630
+ <xsl:call-template name="add-zero-spaces">
3631
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
3632
+ </xsl:call-template>
3633
+ </xsl:when>
3634
+ <xsl:otherwise>
3635
+ <xsl:value-of select="$text"/>
3636
+ </xsl:otherwise>
3637
+ </xsl:choose>
3638
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="add-zero-spaces-equal">
3639
+ <xsl:param name="text" select="."/>
3640
+ <xsl:variable name="zero-space-after-equals">==========</xsl:variable>
3641
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
3642
+ <xsl:variable name="zero-space">​</xsl:variable>
3643
+ <xsl:choose>
3644
+ <xsl:when test="contains($text, $zero-space-after-equals)">
3645
+ <xsl:value-of select="substring-before($text, $zero-space-after-equals)"/>
3646
+ <xsl:value-of select="$zero-space-after-equals"/>
3647
+ <xsl:value-of select="$zero-space"/>
3648
+ <xsl:call-template name="add-zero-spaces-equal">
3649
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equals)"/>
3650
+ </xsl:call-template>
3651
+ </xsl:when>
3652
+ <xsl:when test="contains($text, $zero-space-after-equal)">
3653
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
3654
+ <xsl:value-of select="$zero-space-after-equal"/>
3655
+ <xsl:value-of select="$zero-space"/>
3656
+ <xsl:call-template name="add-zero-spaces-equal">
3657
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
3658
+ </xsl:call-template>
3659
+ </xsl:when>
3660
+ <xsl:otherwise>
3661
+ <xsl:value-of select="$text"/>
3662
+ </xsl:otherwise>
3663
+ </xsl:choose>
3664
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="getSimpleTable">
3665
+ <xsl:variable name="simple-table">
3666
+
3667
+ <!-- Step 1. colspan processing -->
3668
+ <xsl:variable name="simple-table-colspan">
3669
+ <tbody>
3670
+ <xsl:apply-templates mode="simple-table-colspan"/>
3671
+ </tbody>
3672
+ </xsl:variable>
3673
+
3674
+ <!-- Step 2. rowspan processing -->
3675
+ <xsl:variable name="simple-table-rowspan">
3676
+ <xsl:apply-templates select="xalan:nodeset($simple-table-colspan)" mode="simple-table-rowspan"/>
3677
+ </xsl:variable>
3678
+
3679
+ <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
3680
+
3681
+ <!-- <xsl:choose>
3682
+ <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
3683
+
3684
+ </xsl:when>
3685
+ <xsl:otherwise>
3686
+ <xsl:copy-of select="current()"/>
3687
+ </xsl:otherwise>
3688
+ </xsl:choose> -->
3689
+ </xsl:variable>
3690
+ <xsl:copy-of select="$simple-table"/>
3691
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
3692
+ <xsl:apply-templates mode="simple-table-colspan"/>
3693
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']" mode="simple-table-colspan"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='th'] | *[local-name()='td']" mode="simple-table-colspan">
3694
+ <xsl:choose>
3695
+ <xsl:when test="@colspan">
3696
+ <xsl:variable name="td">
3697
+ <xsl:element name="td">
3698
+ <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
3699
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3700
+ <xsl:apply-templates mode="simple-table-colspan"/>
3701
+ </xsl:element>
3702
+ </xsl:variable>
3703
+ <xsl:call-template name="repeatNode">
3704
+ <xsl:with-param name="count" select="@colspan"/>
3705
+ <xsl:with-param name="node" select="$td"/>
3706
+ </xsl:call-template>
3707
+ </xsl:when>
3708
+ <xsl:otherwise>
3709
+ <xsl:element name="td">
3710
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3711
+ <xsl:apply-templates mode="simple-table-colspan"/>
3712
+ </xsl:element>
3713
+ </xsl:otherwise>
3714
+ </xsl:choose>
3715
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@colspan" mode="simple-table-colspan"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tr']" mode="simple-table-colspan">
3716
+ <xsl:element name="tr">
3717
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3718
+ <xsl:apply-templates mode="simple-table-colspan"/>
3719
+ </xsl:element>
3720
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@*|node()" mode="simple-table-colspan">
3721
+ <xsl:copy>
3722
+ <xsl:apply-templates select="@*|node()" mode="simple-table-colspan"/>
3723
+ </xsl:copy>
3724
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="repeatNode">
3725
+ <xsl:param name="count"/>
3726
+ <xsl:param name="node"/>
3727
+
3728
+ <xsl:if test="$count &gt; 0">
3729
+ <xsl:call-template name="repeatNode">
3730
+ <xsl:with-param name="count" select="$count - 1"/>
3731
+ <xsl:with-param name="node" select="$node"/>
3732
+ </xsl:call-template>
3733
+ <xsl:copy-of select="$node"/>
3734
+ </xsl:if>
3735
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@*|node()" mode="simple-table-rowspan">
3736
+ <xsl:copy>
3737
+ <xsl:apply-templates select="@*|node()" mode="simple-table-rowspan"/>
3738
+ </xsl:copy>
3739
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="tbody" mode="simple-table-rowspan">
3740
+ <xsl:copy>
3741
+ <xsl:copy-of select="tr[1]"/>
3742
+ <xsl:apply-templates select="tr[2]" mode="simple-table-rowspan">
3743
+ <xsl:with-param name="previousRow" select="tr[1]"/>
3744
+ </xsl:apply-templates>
3745
+ </xsl:copy>
3746
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="tr" mode="simple-table-rowspan">
3747
+ <xsl:param name="previousRow"/>
3748
+ <xsl:variable name="currentRow" select="."/>
3749
+
3750
+ <xsl:variable name="normalizedTDs">
3751
+ <xsl:for-each select="xalan:nodeset($previousRow)//td">
3752
+ <xsl:choose>
3753
+ <xsl:when test="@rowspan &gt; 1">
3754
+ <xsl:copy>
3755
+ <xsl:attribute name="rowspan">
3756
+ <xsl:value-of select="@rowspan - 1"/>
3757
+ </xsl:attribute>
3758
+ <xsl:copy-of select="@*[not(name() = 'rowspan')]"/>
3759
+ <xsl:copy-of select="node()"/>
3760
+ </xsl:copy>
3761
+ </xsl:when>
3762
+ <xsl:otherwise>
3763
+ <xsl:copy-of select="$currentRow/td[1 + count(current()/preceding-sibling::td[not(@rowspan) or (@rowspan = 1)])]"/>
3764
+ </xsl:otherwise>
3765
+ </xsl:choose>
3766
+ </xsl:for-each>
3767
+ </xsl:variable>
3768
+
3769
+ <xsl:variable name="newRow">
3770
+ <xsl:copy>
3771
+ <xsl:copy-of select="$currentRow/@*"/>
3772
+ <xsl:copy-of select="xalan:nodeset($normalizedTDs)"/>
3773
+ </xsl:copy>
3774
+ </xsl:variable>
3775
+ <xsl:copy-of select="$newRow"/>
3776
+
3777
+ <xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
3778
+ <xsl:with-param name="previousRow" select="$newRow"/>
3779
+ </xsl:apply-templates>
3780
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="getLang">
3781
+ <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3782
+ <xsl:choose>
3783
+ <xsl:when test="$language = 'English'">en</xsl:when>
3784
+ <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
3785
+ </xsl:choose>
3786
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="capitalizeWords">
3787
+ <xsl:param name="str"/>
3788
+ <xsl:variable name="str2" select="translate($str, '-', ' ')"/>
3789
+ <xsl:choose>
3790
+ <xsl:when test="contains($str2, ' ')">
3791
+ <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
3792
+ <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
3793
+ <xsl:value-of select="substring($substr, 2)"/>
3794
+ <xsl:text> </xsl:text>
3795
+ <xsl:call-template name="capitalizeWords">
3796
+ <xsl:with-param name="str" select="substring-after($str2, ' ')"/>
3797
+ </xsl:call-template>
3798
+ </xsl:when>
3799
+ <xsl:otherwise>
3800
+ <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
3801
+ <xsl:value-of select="substring($str2, 2)"/>
3802
+ </xsl:otherwise>
3803
+ </xsl:choose>
3804
+ </xsl:template></xsl:stylesheet>