asciidoctor-iso 0.6.0 → 0.6.1
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +7 -10
- data/README.adoc +118 -6
- data/asciidoctor-iso.gemspec +1 -4
- data/lib/asciidoctor-iso.rb +2 -0
- data/lib/asciidoctor/iso/base.rb +20 -95
- data/lib/asciidoctor/iso/blocks.rb +47 -39
- data/lib/asciidoctor/iso/cleanup.rb +25 -97
- data/lib/asciidoctor/iso/cleanup_block.rb +10 -1
- data/lib/asciidoctor/iso/cleanup_ref.rb +100 -0
- data/lib/asciidoctor/iso/converter.rb +5 -2
- data/lib/asciidoctor/iso/front.rb +52 -24
- data/lib/asciidoctor/iso/html/header.html +10 -10
- data/lib/asciidoctor/iso/html/html_iso_intro.html +1 -1
- data/lib/asciidoctor/iso/html/html_iso_titlepage.html +5 -5
- data/lib/asciidoctor/iso/html/htmlstyle.css +0 -21
- data/lib/asciidoctor/iso/html/isodoc.css +13 -28
- data/lib/asciidoctor/iso/html/word_iso_intro.html +2 -2
- data/lib/asciidoctor/iso/html/word_iso_titlepage.html +7 -7
- data/lib/asciidoctor/iso/html/wordstyle.css +998 -0
- data/lib/asciidoctor/iso/inline.rb +128 -0
- data/lib/asciidoctor/iso/isodoc.rng +1516 -0
- data/lib/asciidoctor/iso/isostandard.rnc +38 -39
- data/lib/asciidoctor/iso/isostandard.rng +529 -1276
- data/lib/asciidoctor/iso/isostandard_diff.rnc +40 -56
- data/lib/asciidoctor/iso/lists.rb +30 -28
- data/lib/asciidoctor/iso/macros.rb +37 -0
- data/lib/asciidoctor/iso/section.rb +1 -1
- data/lib/asciidoctor/iso/utils.rb +9 -0
- data/lib/asciidoctor/iso/validate.rb +41 -120
- data/lib/asciidoctor/iso/validate_section.rb +117 -0
- data/lib/asciidoctor/iso/validate_style.rb +5 -7
- data/lib/asciidoctor/iso/version.rb +1 -1
- data/spec/examples/rice.adoc +41 -8
- data/spec/examples/rice.doc +2885 -2859
- data/spec/examples/rice.html +316 -649
- data/spec/examples/rice.preview.html +51 -10
- data/spec/examples/rice.xml +418 -343
- metadata +12 -50
- data/lib/asciidoctor/iso/inline_anchor.rb +0 -59
- data/lib/asciidoctor/iso/validate.make.sh +0 -8
@@ -1,11 +1,10 @@
|
|
1
1
|
require "date"
|
2
2
|
require "nokogiri"
|
3
|
-
require "htmlentities"
|
4
|
-
require "json"
|
5
3
|
require "pathname"
|
6
4
|
require "open-uri"
|
7
5
|
require "pp"
|
8
6
|
require_relative "./cleanup_block.rb"
|
7
|
+
require_relative "./cleanup_ref.rb"
|
9
8
|
|
10
9
|
module Asciidoctor
|
11
10
|
module ISO
|
@@ -15,15 +14,18 @@ module Asciidoctor
|
|
15
14
|
end
|
16
15
|
|
17
16
|
def cleanup(xmldoc)
|
17
|
+
sections_cleanup(xmldoc)
|
18
18
|
termdef_cleanup(xmldoc)
|
19
19
|
isotitle_cleanup(xmldoc)
|
20
20
|
table_cleanup(xmldoc)
|
21
21
|
formula_cleanup(xmldoc)
|
22
22
|
figure_cleanup(xmldoc)
|
23
23
|
ref_cleanup(xmldoc)
|
24
|
-
|
24
|
+
note_cleanup(xmldoc)
|
25
25
|
normref_cleanup(xmldoc)
|
26
|
+
reference_names(xmldoc)
|
26
27
|
xref_cleanup(xmldoc)
|
28
|
+
quotesource_cleanup(xmldoc)
|
27
29
|
para_cleanup(xmldoc)
|
28
30
|
callout_cleanup(xmldoc)
|
29
31
|
origin_cleanup(xmldoc)
|
@@ -51,37 +53,16 @@ module Asciidoctor
|
|
51
53
|
end
|
52
54
|
end
|
53
55
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
x["citeas"] = @anchors[x["target"]][:xref]
|
62
|
-
x.delete("target")
|
63
|
-
else
|
64
|
-
x.delete("type")
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def origin_cleanup(xmldoc)
|
70
|
-
xmldoc.xpath("//origin").each do |x|
|
71
|
-
x["citeas"] = @anchors[x["bibitemid"]][:xref]
|
72
|
-
n = x.next_element
|
73
|
-
if !n.nil? && n.name == "isosection"
|
74
|
-
n.name = "locality"
|
75
|
-
n["type"] = "section"
|
76
|
-
n.parent = x
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
56
|
+
LOCALITY_REGEX_STR = <<~REGEXP
|
57
|
+
^((?<locality>section|clause|part|paragraph|chapter|page)\\s+
|
58
|
+
(?<ref>\\S+?)|(?<locality>whole))[,:]?\\s*
|
59
|
+
(?<text>.*)$
|
60
|
+
REGEXP
|
61
|
+
LOCALITY_RE = Regexp.new(LOCALITY_REGEX_STR.gsub(/\s/, ""),
|
62
|
+
Regexp::IGNORECASE|Regexp::MULTILINE)
|
80
63
|
|
81
64
|
def termdef_warn(text, re, term, msg)
|
82
|
-
|
83
|
-
warn "ISO style: #{term}: #{msg}"
|
84
|
-
end
|
65
|
+
re.match? text and warn "ISO style: #{term}: #{msg}"
|
85
66
|
end
|
86
67
|
|
87
68
|
def termdef_style(xmldoc)
|
@@ -120,9 +101,7 @@ module Asciidoctor
|
|
120
101
|
t = Nokogiri::XML::Element.new("definition", xmldoc)
|
121
102
|
first_child.replace(t)
|
122
103
|
t << first_child.remove
|
123
|
-
d.xpath("./p | ./figure | ./formula").each
|
124
|
-
t << n.remove
|
125
|
-
end
|
104
|
+
d.xpath("./p | ./figure | ./formula").each { |n| t << n.remove }
|
126
105
|
end
|
127
106
|
end
|
128
107
|
|
@@ -143,69 +122,18 @@ module Asciidoctor
|
|
143
122
|
termdef_style(xmldoc)
|
144
123
|
end
|
145
124
|
|
146
|
-
|
147
|
-
|
148
|
-
xmldoc.xpath("//isotitle").each do |a|
|
149
|
-
if a.elements.size == 1 && a.elements[0].name == "em"
|
150
|
-
a.children = a.elements[0].children
|
151
|
-
end
|
152
|
-
end
|
153
|
-
end
|
154
|
-
|
155
|
-
def dl_table_cleanup(xmldoc)
|
156
|
-
# move Key dl after table footer
|
157
|
-
q = "//table/following-sibling::*[1]"\
|
158
|
-
"[self::p and normalize-space() = 'Key']"
|
159
|
-
xmldoc.xpath(q).each do |s|
|
160
|
-
if !s.next_element.nil? && s.next_element.name == "dl"
|
161
|
-
s.previous_element << s.next_element.remove
|
162
|
-
s.remove
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
def ref_cleanup(xmldoc)
|
168
|
-
# move ref before p
|
169
|
-
xmldoc.xpath("//p/ref").each do |r|
|
170
|
-
parent = r.parent
|
171
|
-
parent.previous = r.remove
|
172
|
-
end
|
173
|
-
xmldoc
|
174
|
-
end
|
175
|
-
|
176
|
-
def review_note_cleanup(xmldoc)
|
177
|
-
xmldoc.xpath("//review").each do |n|
|
178
|
-
prev = n.previous_element
|
179
|
-
if !prev.nil? && prev.name == "p"
|
180
|
-
n.parent = prev
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
def normref_cleanup(xmldoc)
|
186
|
-
q = "//references[title = 'Normative References']"
|
187
|
-
r = xmldoc.at(q)
|
188
|
-
r.elements.each do |n|
|
189
|
-
unless ["title", "bibitem"].include? n.name
|
190
|
-
n.remove
|
191
|
-
end
|
192
|
-
end
|
193
|
-
end
|
194
|
-
|
195
|
-
def format_ref(ref, isopub)
|
196
|
-
return "ISO #{ref}" if isopub
|
197
|
-
return "[#{ref}]" if /^\d+$/.match?(ref) && !/^\[.*\]$/.match?(ref)
|
198
|
-
ref
|
199
|
-
end
|
125
|
+
ELEMS_ALLOW_NOTES =
|
126
|
+
%w[p formula quote sourcecode example admonition ul ol dl figure]
|
200
127
|
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
128
|
+
# if a note is at the end of a section, it is left alone
|
129
|
+
# if a note is followed by a non-note block,
|
130
|
+
# it is moved inside its preceding block
|
131
|
+
def note_cleanup(xmldoc)
|
132
|
+
q = "//note[following-sibling::*[not(local-name() = 'note')]]"
|
133
|
+
xmldoc.xpath(q).each do |n|
|
134
|
+
next unless n.ancestors("table").empty?
|
135
|
+
prev = n.previous_element or next
|
136
|
+
n.parent = prev if ELEMS_ALLOW_NOTES.include? prev.name
|
209
137
|
end
|
210
138
|
end
|
211
139
|
|
@@ -113,7 +113,7 @@ module Asciidoctor
|
|
113
113
|
figure_footnote_cleanup(xmldoc)
|
114
114
|
figure_dl_cleanup(xmldoc)
|
115
115
|
subfigure_cleanup(xmldoc)
|
116
|
-
end
|
116
|
+
end
|
117
117
|
|
118
118
|
def table_footnote_renumber(xmldoc)
|
119
119
|
xmldoc.xpath("//table | //figure").each do |t|
|
@@ -152,6 +152,15 @@ module Asciidoctor
|
|
152
152
|
other_footnote_renumber(xmldoc)
|
153
153
|
end
|
154
154
|
|
155
|
+
def sections_cleanup(x)
|
156
|
+
s = x.at("//sections")
|
157
|
+
foreword = x.at("//foreword")
|
158
|
+
s.previous = foreword.remove
|
159
|
+
introduction = x.at("//introduction")
|
160
|
+
s.previous = introduction.remove if introduction
|
161
|
+
x.xpath("//sections/references").reverse_each { |r| s.next = r.remove }
|
162
|
+
x.xpath("//sections/annex").reverse_each { |r| s.next = r.remove }
|
163
|
+
end
|
155
164
|
end
|
156
165
|
end
|
157
166
|
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
module Asciidoctor
|
2
|
+
module ISO
|
3
|
+
module Cleanup
|
4
|
+
|
5
|
+
def extract_localities(x)
|
6
|
+
text = x.children.first.remove.text
|
7
|
+
m = LOCALITY_RE.match text
|
8
|
+
while !m.nil?
|
9
|
+
ref = m[:ref] ? "<reference>#{m[:ref]}</reference>" : ""
|
10
|
+
locality = m[:locality].downcase
|
11
|
+
x.add_child("<locality type='#{locality}'>#{ref}</locality>")
|
12
|
+
text = m[:text]
|
13
|
+
m = LOCALITY_RE.match text
|
14
|
+
end
|
15
|
+
x.add_child(text)
|
16
|
+
end
|
17
|
+
|
18
|
+
def xref_to_eref(x)
|
19
|
+
x["bibitemid"] = x["target"]
|
20
|
+
x["citeas"] = @anchors&.dig(x["target"], :xref) or
|
21
|
+
warn "ISO: #{x["target"]} is not a real reference!"
|
22
|
+
x.delete("target")
|
23
|
+
extract_localities(x) unless x.children.empty?
|
24
|
+
end
|
25
|
+
|
26
|
+
def xref_cleanup(xmldoc)
|
27
|
+
xmldoc.xpath("//xref").each do |x|
|
28
|
+
if is_refid? x["target"]
|
29
|
+
x.name = "eref"
|
30
|
+
xref_to_eref(x)
|
31
|
+
else
|
32
|
+
x.delete("type")
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def quotesource_cleanup(xmldoc)
|
38
|
+
xmldoc.xpath("//quote/source").each do |x|
|
39
|
+
xref_to_eref(x)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def origin_cleanup(xmldoc)
|
44
|
+
xmldoc.xpath("//origin").each do |x|
|
45
|
+
x["citeas"] = @anchors[x["bibitemid"]][:xref]
|
46
|
+
n = x.next_element
|
47
|
+
if !n.nil? && n.name == "isosection"
|
48
|
+
n.name = "locality"
|
49
|
+
n["type"] = "section"
|
50
|
+
n.parent = x
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def isotitle_cleanup(xmldoc)
|
56
|
+
# Remove italicised ISO titles
|
57
|
+
xmldoc.xpath("//isotitle").each do |a|
|
58
|
+
if a.elements.size == 1 && a.elements[0].name == "em"
|
59
|
+
a.children = a.elements[0].children
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def ref_cleanup(xmldoc)
|
65
|
+
# move ref before p
|
66
|
+
xmldoc.xpath("//p/ref").each do |r|
|
67
|
+
parent = r.parent
|
68
|
+
parent.previous = r.remove
|
69
|
+
end
|
70
|
+
xmldoc
|
71
|
+
end
|
72
|
+
|
73
|
+
def normref_cleanup(xmldoc)
|
74
|
+
q = "//references[title = 'Normative References']"
|
75
|
+
r = xmldoc.at(q)
|
76
|
+
r.elements.each do |n|
|
77
|
+
n.remove unless ["title", "bibitem"].include? n.name
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def format_ref(ref, isopub)
|
82
|
+
return ref if isopub
|
83
|
+
return "[#{ref}]" if /^\d+$/.match?(ref) && !/^\[.*\]$/.match?(ref)
|
84
|
+
ref
|
85
|
+
end
|
86
|
+
|
87
|
+
def reference_names(xmldoc)
|
88
|
+
xmldoc.xpath("//bibitem").each do |ref|
|
89
|
+
isopub = ref.at("./contributor[role/@type = 'publisher']/"\
|
90
|
+
"organization[name = 'ISO']")
|
91
|
+
docid = ref.at("./docidentifier")
|
92
|
+
date = ref.at("./publisherdate")
|
93
|
+
reference = format_ref(docid.text, isopub)
|
94
|
+
reference += ": #{date.text}" if date && isopub
|
95
|
+
@anchors[ref["id"]] = { xref: reference }
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
@@ -3,13 +3,14 @@ require "asciidoctor/iso/version"
|
|
3
3
|
require "asciidoctor/iso/base"
|
4
4
|
require "asciidoctor/iso/front"
|
5
5
|
require "asciidoctor/iso/lists"
|
6
|
-
require "asciidoctor/iso/
|
6
|
+
require "asciidoctor/iso/inline"
|
7
7
|
require "asciidoctor/iso/blocks"
|
8
8
|
require "asciidoctor/iso/section"
|
9
9
|
require "asciidoctor/iso/table"
|
10
10
|
require "asciidoctor/iso/validate"
|
11
11
|
require "asciidoctor/iso/utils"
|
12
12
|
require "asciidoctor/iso/cleanup"
|
13
|
+
require_relative "./macros.rb"
|
13
14
|
|
14
15
|
module Asciidoctor
|
15
16
|
module ISO
|
@@ -22,7 +23,7 @@ module Asciidoctor
|
|
22
23
|
include ::Asciidoctor::ISO::Base
|
23
24
|
include ::Asciidoctor::ISO::Front
|
24
25
|
include ::Asciidoctor::ISO::Lists
|
25
|
-
include ::Asciidoctor::ISO::
|
26
|
+
include ::Asciidoctor::ISO::Inline
|
26
27
|
include ::Asciidoctor::ISO::Blocks
|
27
28
|
include ::Asciidoctor::ISO::Section
|
28
29
|
include ::Asciidoctor::ISO::Table
|
@@ -50,6 +51,8 @@ module Asciidoctor
|
|
50
51
|
alias_method :inline_kbd, :skip
|
51
52
|
alias_method :inline_menu, :skip
|
52
53
|
alias_method :inline_image, :skip
|
54
|
+
|
55
|
+
|
53
56
|
end
|
54
57
|
end
|
55
58
|
end
|
@@ -10,7 +10,7 @@ module Asciidoctor
|
|
10
10
|
module ISO
|
11
11
|
module Front
|
12
12
|
def metadata_id(node, xml)
|
13
|
-
xml.
|
13
|
+
xml.docidentifier do |i|
|
14
14
|
i.project_number node.attr("docnumber"),
|
15
15
|
**attr_code(part: node.attr("partnumber"))
|
16
16
|
if node.attr("tc-docnumber")
|
@@ -27,19 +27,30 @@ module Asciidoctor
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
+
def committee_component(compname, node, out)
|
31
|
+
out.send compname.gsub(/-/, "_"), node.attr(compname),
|
32
|
+
**attr_code(number: node.attr("#{compname}-number"),
|
33
|
+
type: node.attr("#{compname}-type"))
|
34
|
+
end
|
35
|
+
|
30
36
|
def metadata_author(node, xml)
|
31
|
-
xml.
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
a.subcommittee node.attr("subcommittee"),
|
36
|
-
**attr_code(number: node.attr("subcommittee-number"))
|
37
|
+
xml.contributor do |c|
|
38
|
+
c.role **{ type: "author" }
|
39
|
+
c.organization do |a|
|
40
|
+
a.name "ISO"
|
37
41
|
end
|
38
|
-
|
39
|
-
|
40
|
-
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def metadata_publisher(node, xml)
|
46
|
+
publishers = node.attr("publisher") || "ISO"
|
47
|
+
publishers.split(/,[ ]?/).each do |p|
|
48
|
+
xml.contributor do |c|
|
49
|
+
c.role **{ type: "publisher" }
|
50
|
+
c.organization do |a|
|
51
|
+
a.name p
|
52
|
+
end
|
41
53
|
end
|
42
|
-
a.secretariat node.attr("secretariat") if node.attr("secretariat")
|
43
54
|
end
|
44
55
|
end
|
45
56
|
|
@@ -47,8 +58,10 @@ module Asciidoctor
|
|
47
58
|
from = node.attr("copyright-year") || Date.today.year
|
48
59
|
xml.copyright do |c|
|
49
60
|
c.from from
|
50
|
-
c.owner do |
|
51
|
-
|
61
|
+
c.owner do |owner|
|
62
|
+
owner.organization do |o|
|
63
|
+
o.name "ISO"
|
64
|
+
end
|
52
65
|
end
|
53
66
|
end
|
54
67
|
end
|
@@ -60,26 +73,41 @@ module Asciidoctor
|
|
60
73
|
end
|
61
74
|
end
|
62
75
|
|
76
|
+
def metadata_committee(node, xml)
|
77
|
+
xml.editorialgroup do |a|
|
78
|
+
committee_component("technical-committee", node, a)
|
79
|
+
committee_component("subcommittee", node, a)
|
80
|
+
committee_component("workgroup", node, a)
|
81
|
+
node.attr("secretariat") && a.secretariat(node.attr("secretariat"))
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
63
85
|
def metadata(node, xml)
|
64
|
-
|
86
|
+
title node, xml
|
87
|
+
metadata_id(node, xml)
|
65
88
|
metadata_author(node, xml)
|
89
|
+
metadata_publisher(node, xml)
|
66
90
|
xml.language node.attr("language")
|
67
|
-
xml.script "
|
68
|
-
xml
|
69
|
-
metadata_id(node, xml)
|
70
|
-
metadata_version(node, xml)
|
91
|
+
xml.script "Latn"
|
92
|
+
metadata_status(node, xml)
|
71
93
|
metadata_copyright(node, xml)
|
94
|
+
metadata_committee(node, xml)
|
72
95
|
end
|
73
96
|
|
74
97
|
def title(node, xml)
|
75
98
|
["en", "fr"].each do |lang|
|
76
|
-
xml.title
|
77
|
-
|
78
|
-
|
99
|
+
xml.title do |t|
|
100
|
+
at = { language: lang, format: "text/plain" }
|
101
|
+
node.attr("title-intro-#{lang}") and
|
102
|
+
t.title_intro **attr_code(at) do |t1|
|
103
|
+
t1 << node.attr("title-intro-#{lang}")
|
104
|
+
end
|
105
|
+
t.title_main **attr_code(at) do |t1|
|
106
|
+
t1 << node.attr("title-main-#{lang}")
|
79
107
|
end
|
80
|
-
|
81
|
-
|
82
|
-
|
108
|
+
node.attr("title-part-#{lang}") and
|
109
|
+
t.title_part **attr_code(at) do |t1|
|
110
|
+
t1 << node.attr("title-part-#{lang}")
|
83
111
|
end
|
84
112
|
end
|
85
113
|
end
|
@@ -11,7 +11,7 @@ xmlns:mv="http://macVmlSchemaUri" xmlns="http://www.w3.org/TR/REC-html40">
|
|
11
11
|
<meta name=ProgId content=Word.Document>
|
12
12
|
<meta name=Generator content="Microsoft Word 15">
|
13
13
|
<meta name=Originator content="Microsoft Word 15">
|
14
|
-
<link id=Main-File rel=Main-File href="../
|
14
|
+
<link id=Main-File rel=Main-File href="../{{ filename }}.html">
|
15
15
|
<!--[if gte mso 9]><xml>
|
16
16
|
<o:shapedefaults v:ext="edit" spidmax="2049"/>
|
17
17
|
</xml><![endif]-->
|
@@ -66,7 +66,7 @@ normal'><span lang=EN-GB><span style='mso-special-character:footnote-continuatio
|
|
66
66
|
<div style='mso-element:header' id=eh1>
|
67
67
|
|
68
68
|
<p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
|
69
|
-
mso-line-height-rule:exactly'><span lang=EN-GB>
|
69
|
+
mso-line-height-rule:exactly'><span lang=EN-GB>{{ agency }} {{ docnumber }}:{{ docyear }}(E){{ draftinfo }}</span></p>
|
70
70
|
|
71
71
|
</div>
|
72
72
|
|
@@ -74,7 +74,7 @@ mso-line-height-rule:exactly'><span lang=EN-GB>ISO DOCNUMBER:DOCYEAR(E) DRA
|
|
74
74
|
|
75
75
|
<p class=MsoHeader style='margin-bottom:18.0pt'><span lang=EN-GB
|
76
76
|
style='font-size:10.0pt;mso-bidi-font-size:11.0pt;font-weight:normal'>©
|
77
|
-
|
77
|
+
{{ agency }} {{ docyear }} – All rights reserved</span><span lang=EN-GB
|
78
78
|
style='font-weight:normal'><o:p></o:p></span></p>
|
79
79
|
|
80
80
|
</div>
|
@@ -93,21 +93,21 @@ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
|
93
93
|
mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
|
94
94
|
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
95
95
|
style='mso-tab-count:1'> </span>©
|
96
|
-
|
96
|
+
{{ agency }} {{ docyear }} – All rights reserved<o:p></o:p></span></p>
|
97
97
|
|
98
98
|
</div>
|
99
99
|
|
100
100
|
<div style='mso-element:header' id=eh2>
|
101
101
|
|
102
102
|
<p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
|
103
|
-
mso-line-height-rule:exactly'><span lang=EN-GB>
|
103
|
+
mso-line-height-rule:exactly'><span lang=EN-GB>{{ agency }} {{ docnumber }}:{{ docyear }}(E){{ draftinfo }}</span></p>
|
104
104
|
|
105
105
|
</div>
|
106
106
|
|
107
107
|
<div style='mso-element:header' id=h2>
|
108
108
|
|
109
109
|
<p class=MsoHeader align=right style='text-align:right;line-height:12.0pt;
|
110
|
-
mso-line-height-rule:exactly'><span lang=EN-GB>
|
110
|
+
mso-line-height-rule:exactly'><span lang=EN-GB>{{ agency }} {{ docnumber }}:{{ docyear }}(E){{ draftinfo }}</span></p>
|
111
111
|
|
112
112
|
</div>
|
113
113
|
|
@@ -124,14 +124,14 @@ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
|
124
124
|
style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
|
125
125
|
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span style='mso-tab-count:
|
126
126
|
1'> </span>©
|
127
|
-
|
127
|
+
{{ agency }} {{ docyear }} – All rights reserved<o:p></o:p></span></p>
|
128
128
|
|
129
129
|
</div>
|
130
130
|
|
131
131
|
<div style='mso-element:footer' id=f2>
|
132
132
|
|
133
133
|
<p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
|
134
|
-
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>©
|
134
|
+
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© {{ agency }} {{ docyear }} – All
|
135
135
|
rights reserved<span style='mso-tab-count:1'> </span></span><!--[if supportFields]><span
|
136
136
|
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
137
137
|
style='mso-element:field-begin'></span> PAGE<span style='mso-spacerun:yes'>
|
@@ -158,14 +158,14 @@ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
|
158
158
|
mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
|
159
159
|
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
160
160
|
style='mso-tab-count:1'> </span>©
|
161
|
-
|
161
|
+
{{ agency }} {{ docyear }} – All rights reserved<o:p></o:p></span></p>
|
162
162
|
|
163
163
|
</div>
|
164
164
|
|
165
165
|
<div style='mso-element:footer' id=f3>
|
166
166
|
|
167
167
|
<p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
|
168
|
-
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>©
|
168
|
+
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© {{ agency }} {{ docyear }} – All
|
169
169
|
rights reserved<span style='mso-tab-count:1'> </span></span><!--[if supportFields]><b
|
170
170
|
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
171
171
|
mso-bidi-font-size:11.0pt'><span style='mso-element:field-begin'></span>
|