qr-bills 0.0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5db2878fbbf6ca52e7f5aabc6722e3884a35902e
4
- data.tar.gz: 0018ee9fb3c2b75d039185afdacdd53fa18c4329
2
+ SHA256:
3
+ metadata.gz: c73035ea342d12ac9b26845066e0c9663bcbdd86db0b9c2bbc00f20de0f5ce5b
4
+ data.tar.gz: 726f859dccfb4321bf4e79d0e009a8ba2f0862e009ea1ed0bacafee000fd5ec8
5
5
  SHA512:
6
- metadata.gz: 6ca4f2952a8bd19c6d721c09f298b44163e597c80d11d3ed541729526454be0fa3a2ddb07e94bf9b286027107aae761559580a5d7aee2714ff68059c4dee835a
7
- data.tar.gz: 28df8d75e4dad3592ba7da9e5255b2384b0da07395b69ef393ee5b3a5181404d3e0ea5a93d1422431b1ff0a570b35d9c09ca701ae3794eb8ede85bcfeb31d2d7
6
+ metadata.gz: bf2b307ddb691661be0f774170c7da77e798fc31c3e5c23127a2439c5cc85ad6793a26a1051c1051361812855cf6131ae798644ea3bd776a941f0f7af9e0fb9a
7
+ data.tar.gz: 3d5007f7b999002ea5aeaa9c0e0aaca571fb7a7a44a13d3c19f9b041e32652bd1071a9f39748d9466f79999ba5f02adb8baa916ea57b2d57fd35d5340af22ac8
@@ -0,0 +1,15 @@
1
+ de:
2
+ payment_part: Zahlteil
3
+ account: Konto
4
+ payable_to: Zahlbar an
5
+ reference: Referenz
6
+ additional_information: zusätzliche Informationen
7
+ further_information: weitere Informationen
8
+ currency: Währung
9
+ amount: Betrag
10
+ receipt: Empfangsschein
11
+ acceptance_point: Annahmestelle
12
+ separate_before_paying_in: Vor der Einzahlung abzutrennen
13
+ payable_by: Zahlbar durch
14
+ payable_by_name_addr: Zahlbar durch (Name/Adresse)
15
+ in_favour_of: Zugunsten
@@ -0,0 +1,15 @@
1
+ en:
2
+ payment_part: payment part
3
+ account: account
4
+ payable_to: payable to
5
+ reference: reference
6
+ additional_information: additional information
7
+ further_information: further information
8
+ currency: currency
9
+ amount: amount
10
+ receipt: receipt
11
+ acceptance_point: acceptance point
12
+ separate_before_paying_in: separate before paying in
13
+ payable_by: payable by
14
+ payable_by_name_addr: payable by (name/address)
15
+ in_favour_of: in favour of
@@ -0,0 +1,15 @@
1
+ fr:
2
+ payment_part: section paiement
3
+ account: compte
4
+ payable_to: payable à
5
+ reference: référence
6
+ additional_information: informations additionnelles
7
+ further_information: informations supplémentaires
8
+ currency: monnaie
9
+ amount: montant
10
+ receipt: récépissé
11
+ acceptance_point: èpomt de dépôt
12
+ separate_before_paying_in: à détacher avant le versement
13
+ payable_by: payable par
14
+ payable_by_name_addr: payable par (nom/adresse)
15
+ in_favour_of: en faveur de
@@ -0,0 +1,15 @@
1
+ it:
2
+ payment_part: "sezione pagamento"
3
+ account: conto
4
+ payable_to: "pagabile a"
5
+ reference: riferimento
6
+ additional_information: "informazioni aggiuntive"
7
+ further_information: "informazioni supplementari"
8
+ currency: valuta
9
+ amount: importo
10
+ receipt: ricevuta
11
+ acceptance_point: "punto di accettazione"
12
+ separate_before_paying_in: "da staccare prima del versamento"
13
+ payable_by: pagabile da
14
+ payable_by_name_addr: pagabile da (nome/indirizzo)
15
+ in_favour_of: a favore di
@@ -1,5 +1,54 @@
1
+ require 'i18n'
2
+ require 'qr-bills/qr-exceptions'
3
+ require 'qr-bills/qr-params'
4
+ require 'qr-bills/qr-html-layout'
5
+
1
6
  class QRBills
2
- def self.hi
3
- puts "Hello world!"
7
+ def self.generate(qr_params)
8
+ # init translator sets
9
+ I18n.load_path << "#{File.expand_path("#{File.dirname(__FILE__)}/../config/locales/it.yml")}"
10
+ I18n.load_path << "#{File.expand_path("#{File.dirname(__FILE__)}/../config/locales/en.yml")}"
11
+ I18n.load_path << "#{File.expand_path("#{File.dirname(__FILE__)}/../config/locales/de.yml")}"
12
+ I18n.load_path << "#{File.expand_path("#{File.dirname(__FILE__)}/../config/locales/fr.yml")}"
13
+ I18n.default_locale = :it
14
+
15
+ bill = {
16
+ params: qr_params,
17
+ output: nil
18
+ }
19
+
20
+ if qr_params.has_key?(:bill_type)
21
+
22
+ if !QRParams.valid?(qr_params)
23
+ raise QRExceptions::INVALID_PARAMETERS + ": params validation check failed"
24
+ end
25
+
26
+ if qr_params[:output_params][:format] == "html"
27
+ bill[:output] = QRHTMLLayout.create(qr_params)
28
+ else
29
+ raise QRExceptions::NOT_SUPPORTED + ": html is the only output format supported so far"
30
+ end
31
+
32
+ else
33
+ raise QRExceptions::INVALID_PARAMETERS + ": bill type param not set"
34
+ end
35
+
36
+ return bill
37
+ end
38
+
39
+ def self.get_qr_params
40
+ QRParams.get_qr_params
41
+ end
42
+
43
+ def self.get_qrbill_with_qr_reference_type
44
+ QRParams::QR_BILL_WITH_QR_REFERENCE
45
+ end
46
+
47
+ def self.get_qrbill_with_creditor_reference_type
48
+ QRParams::QR_BILL_WITH_CREDITOR_REFERENCE
49
+ end
50
+
51
+ def self.get_qrbill_without_reference_type
52
+ QRParams::QR_BILL_WITOUTH_REFERENCE
4
53
  end
5
54
  end
@@ -0,0 +1,6 @@
1
+ class QRExceptions
2
+ EXCEPTION_PREFIX = "QR-bill"
3
+
4
+ INVALID_PARAMETERS = EXCEPTION_PREFIX + " invalid parameters"
5
+ NOT_SUPPORTED = EXCEPTION_PREFIX + " not supported"
6
+ end
@@ -0,0 +1,105 @@
1
+ require 'rqrcode'
2
+ require 'RMagick'
3
+ include Magick
4
+
5
+ class QRGenerator
6
+ # payload:
7
+ # "SPC\r\n" + # indicator for swiss qr code: SPC (swiss payments code)
8
+ # "0200\r\n" + # version of the specifications, 0200 = v2.0
9
+ # "1\r\n" + # character set code: 1 = utf-8 restricted to the latin character set
10
+ # "CH4431999123000889012\r\n" + # iban of the creditor (payable to)
11
+ # "S\r\n" + # adress type: S = structured address, K = combined address elements (2 lines)
12
+ # "Robert Schneider AG\r\n" + # creditor's name or company, max 70 characters
13
+ # "Via Casa Postale\r\n" + # structured address: creditor's address street; combined address: address line 1 street and building number
14
+ # "1268/2/22\r\n" + # structured address: creditor's building number; combined address: address line 2 including postal code and town
15
+ # "2501\r\n" + # creditor's postal code
16
+ # "Biel\r\n" + # creditor's town
17
+ # "CH\r\n" + # creditor's country
18
+ # "\r\n" + # optional: ultimate creditor's address type: S/K
19
+ # "\r\n" + # optional: ultimate creditor's name/company
20
+ # "\r\n" + # optional: ultimate creditor's street or address line 1
21
+ # "\r\n" + # optional: ultimate creditor's building number or address line 2
22
+ # "\r\n" + # optional: ultimate creditor's postal code
23
+ # "\r\n" + # optional: ultimate creditor's town
24
+ # "\r\n" + # optional: ultimate creditor's country
25
+ # "123949.75\r\n" + # amount
26
+ # "CHF\r\n" + # currency
27
+ # "S\r\n"+ # debtor's address type (S/K) (payable by)
28
+ # "Pia-Maria Rutschmann-Schnyder\r\n" + # debtor's name / company
29
+ # "Grosse Marktgasse\r\n" + # debtor's street or address line 1
30
+ # "28/5\r\n" + # debtor's building number or address line 2
31
+ # "9400\r\n" + # debtor's postal code
32
+ # "Rorschach\r\n" + # debtor's town
33
+ # "CH\r\n" + # debtor's country
34
+ # "QRR\r\n" + # reference type: QRR = QR reference, SCOR = Creditor reference, NON = without reference
35
+ # "210000000003139471430009017\r\n" + # reference QR Reference: 27 chars check sum modulo 10 recursive, Creditor reference max 25 chars
36
+ # "Beachten sie unsere Sonderangebotswoche bis 23.02.2017!\r\n" + # additional information unstructured message max 140 chars
37
+ # "EPD\r\n" + # fixed indicator for EPD (end payment data)
38
+ # "//S1/10/10201409/11/181105/40/0:30\r\n" + # bill information coded for automated booking of payment, data is not forwarded with the payment
39
+ # "eBill/B/41010560425610173"; # alternative scheme paramaters, max 100 chars
40
+
41
+ def self.create(params, qrcode_path)
42
+ create_qr(params, qrcode_path)
43
+ add_swiss_cross(qrcode_path, qrcode_path)
44
+ end
45
+
46
+ def self.create_qr(params, qrcode_path)
47
+ payload = "SPC\r\n"
48
+ payload += "0200\r\n"
49
+ payload += "1\r\n"
50
+ payload += "#{params[:bill_params][:creditor][:iban].delete(' ')}\r\n"
51
+ payload += "#{params[:bill_params][:creditor][:address][:type]}\r\n"
52
+ payload += "#{params[:bill_params][:creditor][:address][:name]}\r\n"
53
+ payload += "#{params[:bill_params][:creditor][:address][:line1]}\r\n"
54
+ payload += "#{params[:bill_params][:creditor][:address][:line2]}\r\n"
55
+ payload += "#{params[:bill_params][:creditor][:address][:postal_code]}\r\n"
56
+ payload += "#{params[:bill_params][:creditor][:address][:town]}\r\n"
57
+ payload += "#{params[:bill_params][:creditor][:address][:country]}\r\n"
58
+ payload += "\r\n"
59
+ payload += "\r\n"
60
+ payload += "\r\n"
61
+ payload += "\r\n"
62
+ payload += "\r\n"
63
+ payload += "\r\n"
64
+ payload += "\r\n"
65
+ payload += "#{params[:bill_params][:amount]}\r\n"
66
+ payload += "#{params[:bill_params][:currency]}\r\n"
67
+ payload += "#{params[:bill_params][:debtor][:address][:type]}\r\n"
68
+ payload += "#{params[:bill_params][:debtor][:address][:name]}\r\n"
69
+ payload += "#{params[:bill_params][:debtor][:address][:line1]}\r\n"
70
+ payload += "#{params[:bill_params][:debtor][:address][:line2]}\r\n"
71
+ payload += "#{params[:bill_params][:debtor][:address][:postal_code]}\r\n"
72
+ payload += "#{params[:bill_params][:debtor][:address][:town]}\r\n"
73
+ payload += "#{params[:bill_params][:debtor][:address][:country]}\r\n"
74
+ payload += "#{params[:bill_params][:reference_type]}\r\n"
75
+ payload += "#{params[:bill_params][:reference].delete(' ')}\r\n"
76
+ payload += "#{params[:bill_params][:additionally_information]}\r\n"
77
+ payload += "EPD\r\n"
78
+ payload += "#{params[:bill_params][:bill_information_coded]}\r\n"
79
+ payload += "#{params[:bill_params][:alternative_scheme_paramters]}\r\n"
80
+
81
+ qrcode = RQRCode::QRCode.new(payload)
82
+
83
+ png = qrcode.as_png(
84
+ bit_depth: 1,
85
+ border_modules: 0,
86
+ color_mode: ChunkyPNG::COLOR_GRAYSCALE,
87
+ color: 'black',
88
+ file: nil,
89
+ fill: 'white',
90
+ module_px_size: 10,
91
+ resize_exactly_to: false,
92
+ resize_gte_to: false,
93
+ size: 1024,
94
+ )
95
+
96
+ IO.binwrite(qrcode_path, png.to_s)
97
+ end
98
+
99
+ def self.add_swiss_cross(qrcode_path, final_path)
100
+ qr_image = Image.read(qrcode_path)[0]
101
+ swiss_cross = Image.read(File.expand_path("#{File.dirname(__FILE__)}/../../web/assets/images/swiss_cross.png"))[0]
102
+ final_qr = qr_image.composite(swiss_cross, CenterGravity, OverCompositeOp)
103
+ final_qr.write(final_path)
104
+ end
105
+ end
@@ -0,0 +1,235 @@
1
+ require 'qr-bills/qr-generator'
2
+
3
+ class QRHTMLLayout
4
+
5
+ def self.create(params)
6
+ QRGenerator.create(params, params[:qrcode_filepath])
7
+ return html_layout(params)
8
+ end
9
+
10
+ def self.html_layout(params)
11
+ layout = "<div class=\"bill_container\">\n"
12
+ layout += " <div class=\"receipt_section\">\n"
13
+ layout += " <div class=\"title\">#{I18n.t(:receipt).capitalize}</div>\n"
14
+ layout += " <div class=\"subtitle payable_to\">#{I18n.t(:account).capitalize} / #{I18n.t(:payable_to).capitalize}</div>\n"
15
+ layout += " <div class=\"qrcontent\">\n"
16
+ layout += " #{params[:bill_params][:creditor][:iban]}<br/>\n"
17
+ layout += " #{params[:bill_params][:creditor][:address][:name]}<br/>\n"
18
+ layout += " #{params[:bill_params][:creditor][:address][:line1]} #{params[:bill_params][:creditor][:address][:line2]}<br/>\n"
19
+ layout += " #{params[:bill_params][:creditor][:address][:postal_code]} #{params[:bill_params][:creditor][:address][:town]}<br/>\n"
20
+ layout += " </div>"
21
+ layout += " <div><br/></div>"
22
+
23
+ if !params[:bill_params][:reference].nil? && !params[:bill_params][:reference].empty?
24
+ layout += " <div class=\"subtitle reference\">#{I18n.t(:reference).capitalize}</div>\n"
25
+ layout += " <div class=\"reference\">\n"
26
+ layout += " #{params[:bill_params][:reference]}<br/>\n"
27
+ layout += " </div>\n"
28
+ layout += " <div><br/></div>\n"
29
+ end
30
+
31
+ layout += " <div class=\"subtitle payable_by\">#{I18n.t(:payable_by).capitalize}</div>\n"
32
+ layout += " <div class=\"payable_by\">\n"
33
+ layout += " #{params[:bill_params][:debtor][:address][:name]}<br/>\n"
34
+ layout += " #{params[:bill_params][:debtor][:address][:line1]} #{params[:bill_params][:debtor][:address][:line2]}<br/>\n"
35
+ layout += " #{params[:bill_params][:debtor][:address][:postal_code]} #{params[:bill_params][:debtor][:address][:town]}<br/>\n"
36
+ layout += " </div>\n"
37
+
38
+ layout += " <div class=\"amount\">\n"
39
+ layout += " <div class=\"currency\">\n"
40
+ layout += " <span class=\"amount_header subtitle\">#{I18n.t(:currency).capitalize}</span><br/>\n"
41
+ layout += " #{params[:bill_params][:currency]}<br/>\n"
42
+ layout += " </div>\n"
43
+
44
+ layout += " <div class=\"amount_value\">\n"
45
+ layout += " <span class=\"amount_header subtitle\">#{I18n.t(:amount).capitalize}</span><br/>\n"
46
+ layout += " #{params[:bill_params][:amount]}<br/>\n"
47
+ layout += " </div>\n"
48
+ layout += " </div>\n"
49
+
50
+ layout += " <div class=\"acceptance_point\">\n"
51
+ layout += " #{I18n.t(:acceptance_point).capitalize}<br/>\n"
52
+ layout += " </div>\n"
53
+
54
+ layout += " </div>\n"
55
+ layout += " <div class=\"payment_section\">\n"
56
+ layout += " <div class=\"left_column\">\n"
57
+ layout += " <div class=\"title\">#{I18n.t(:payment_part).capitalize}</div>\n"
58
+ layout += " <div class=\"qr_code\"><img src=\"#{params[:qrcode_filepath]}\" /></div>\n"
59
+ layout += " <div class=\"amount\">\n"
60
+ layout += " <div class=\"currency\">\n"
61
+ layout += " <span class=\"amount_header subtitle\">#{I18n.t(:currency).capitalize}</span><br/>\n"
62
+ layout += " #{params[:bill_params][:currency]}<br/>\n"
63
+ layout += " </div>\n"
64
+
65
+ layout += " <div class=\"amount_value\">\n"
66
+ layout += " <span class=\"amount_header subtitle\">#{I18n.t(:amount).capitalize}</span><br/>\n"
67
+ layout += " #{params[:bill_params][:amount]}<br/>\n"
68
+ layout += " </div>\n"
69
+ layout += " </div>\n"
70
+
71
+ layout += " <div class=\"further_information\">\n"
72
+
73
+ if !params[:bill_params][:bill_information_coded].nil? && !params[:bill_params][:bill_information_coded].empty?
74
+ layout += " <span class=\"finfo_header\">Name AV1:</span> #{params[:bill_params][:bill_information_coded]}\n"
75
+ end
76
+
77
+ if !params[:bill_params][:alternative_scheme_paramters].nil? && !params[:bill_params][:alternative_scheme_paramters].empty?
78
+ layout += " <span class=\"finfo_header\">Name AV2:</span> #{params[:bill_params][:alternative_scheme_paramters]}\n"
79
+ end
80
+
81
+ layout += " </div>\n"
82
+ layout += " </div>\n"
83
+ layout += " <div class=\"right_column\">\n"
84
+ layout += " <div class=\"subtitle payable_to\">#{I18n.t(:account).capitalize} / #{I18n.t(:payable_to).capitalize}</div>\n"
85
+ layout += " <div class=\"qrcontent\">\n"
86
+ layout += " #{params[:bill_params][:creditor][:iban]}<br/>\n"
87
+ layout += " #{params[:bill_params][:creditor][:address][:name]}<br/>\n"
88
+ layout += " #{params[:bill_params][:creditor][:address][:line1]} #{params[:bill_params][:creditor][:address][:line2]}<br/>\n"
89
+ layout += " #{params[:bill_params][:creditor][:address][:postal_code]} #{params[:bill_params][:creditor][:address][:town]}<br/>\n"
90
+ layout += " </div>\n"
91
+ layout += " <div><br/></div>\n"
92
+
93
+ if !params[:bill_params][:reference].nil? && !params[:bill_params][:reference].empty?
94
+ layout += " <div class=\"subtitle reference\">#{I18n.t(:reference).capitalize}</div>\n"
95
+ layout += " <div class=\"reference\">\n"
96
+ layout += " #{params[:bill_params][:reference]}<br/>\n"
97
+ layout += " </div>\n"
98
+ layout += " <div><br/></div>\n"
99
+ end
100
+
101
+ if !params[:bill_params][:additionally_information].nil? && !params[:bill_params][:additionally_information].empty?
102
+ layout += " <div class=\"subtitle additional_information\">#{I18n.t(:additional_information).capitalize}</div>\n"
103
+ layout += " <div class=\"additional_information\">\n"
104
+ layout += " #{params[:bill_params][:additionally_information]}<br/>\n"
105
+ layout += " </div>\n"
106
+ layout += " <div><br/></div>\n"
107
+ end
108
+
109
+ layout += " <div class=\"subtitle payable_by\">#{I18n.t(:payable_by).capitalize}</div>\n"
110
+ layout += " <div class=\"payable_by\">\n"
111
+ layout += " #{params[:bill_params][:debtor][:address][:name]}<br/>\n"
112
+ layout += " #{params[:bill_params][:debtor][:address][:line1]} #{params[:bill_params][:debtor][:address][:line2]}<br/>\n"
113
+ layout += " #{params[:bill_params][:debtor][:address][:postal_code]} #{params[:bill_params][:debtor][:address][:town]}<br/>\n"
114
+ layout += " </div>\n"
115
+ layout += " </div>\n"
116
+ layout += " </div>\n"
117
+ layout += "</div>\n"
118
+
119
+ layout += "<style>\n"
120
+ layout += " @font-face{ \n"
121
+ layout += " font-family: \"liberation_sansregular\";\n"
122
+ layout += " src: url(\"#{params[:fonts][:eot]}\");\n"
123
+ layout += " src: url(\"#{params[:fonts][:eot]}?#iefix\") format(\"embedded-opentype\"),\n"
124
+ layout += " url(\"#{params[:fonts][:woff]}\") format(\"woff\"),\n"
125
+ layout += " url(\"#{params[:fonts][:ttf]}\") format(\"truetype\"),\n"
126
+ layout += " url(\"#{params[:fonts][:svg]}#liberation_sansregular\") format(\"svg\");\n"
127
+ layout += " font-weight: normal;\n"
128
+ layout += " font-style: normal;\n"
129
+ layout += " }\n"
130
+
131
+ layout += " .bill_container {\n"
132
+ layout += " width: 210mm;\n"
133
+ layout += " height: 105mm;\n"
134
+ layout += " font-family: \"liberation_sansregular\";\n"
135
+ layout += " border: 1px solid #ccc;\n"
136
+ layout += " }\n"
137
+
138
+ layout += " .bill_container:after {\n"
139
+ layout += " content: \"\";\n"
140
+ layout += " display: table;\n"
141
+ layout += " clear: both;\n"
142
+ layout += " }\n"
143
+
144
+ layout += " .receipt_section {\n"
145
+ layout += " width: 52mm;\n"
146
+ layout += " height: 95mm;\n"
147
+ layout += " padding: 5mm;\n"
148
+ layout += " float: left;\n"
149
+ layout += " font-size: 8pt;\n"
150
+ layout += " border-right: 1px dotted #ccc;\n"
151
+ layout += " }\n"
152
+
153
+ layout += " .payment_section {\n"
154
+ layout += " width: 157mm;\n"
155
+ layout += " height: 95mm;\n"
156
+ layout += " float: left;\n"
157
+ layout += " padding: 5mm;\n"
158
+ layout += " font-size: 10pt;\n"
159
+ layout += " }\n"
160
+
161
+ layout += " .payment_section .left_column {\n"
162
+ layout += " height: 95mm;\n"
163
+ layout += " width: 46mm;\n"
164
+ layout += " float: left;\n"
165
+ layout += " margin-right: 5mm;\n"
166
+ layout += " }\n"
167
+
168
+ layout += " .payment_section .right_column {\n"
169
+ layout += " height: 95mm;\n"
170
+ layout += " width: 86mm;\n"
171
+ layout += " float: left;\n"
172
+ layout += " }\n"
173
+
174
+ layout += " .qr_code {\n"
175
+ layout += " padding: 5mm 0mm 5mm 0mm;\n"
176
+ layout += " height: 46mm;\n"
177
+ layout += " width: 46mm;\n"
178
+ layout += " }\n"
179
+
180
+ layout += " .qr_code img {\n"
181
+ layout += " height: 46mm;\n"
182
+ layout += " width: 46mm;\n"
183
+ layout += " }\n"
184
+
185
+ layout += " .amount {\n"
186
+ layout += " margin-top: 15px;\n"
187
+ layout += " }\n"
188
+
189
+ layout += " .amount .currency {\n"
190
+ layout += " float: left;\n"
191
+ layout += " margin-right: 15px;\n"
192
+ layout += " }\n"
193
+
194
+ layout += " .title {\n"
195
+ layout += " font-weight: bold;\n"
196
+ layout += " font-size: 11pt;\n"
197
+ layout += " }\n"
198
+
199
+ layout += " .receipt_section .subtitle {\n"
200
+ layout += " font-weight: bold;\n"
201
+ layout += " font-size: 6pt;\n"
202
+ layout += " line-height: 9pt;\n"
203
+ layout += " }\n"
204
+
205
+ layout += " .receipt_section .acceptance_point {\n"
206
+ layout += " font-weight: bold;\n"
207
+ layout += " text-align: right;\n"
208
+ layout += " font-size: 6pt;\n"
209
+ layout += " line-height: 8pt;\n"
210
+ layout += " padding-top: 5mm;\n"
211
+ layout += " }\n"
212
+
213
+ layout += " .payment_section .subtitle {\n"
214
+ layout += " font-weight: bold;\n"
215
+ layout += " font-size: 8pt;\n"
216
+ layout += " line-height: 11pt;\n"
217
+ layout += " }\n"
218
+
219
+ layout += " .payment_section .amount {\n"
220
+ layout += " height: 22mm;\n"
221
+ layout += " margin-top: 40px;\n"
222
+ layout += " }\n"
223
+
224
+ layout += " .payment_section .further_information {\n"
225
+ layout += " font-size: 7pt;\n"
226
+ layout += " }\n"
227
+
228
+ layout += " .payment_section .finfo_header {\n"
229
+ layout += " font-weight: bold;\n"
230
+ layout += " } \n"
231
+ layout += "</style>\n"
232
+
233
+ return layout
234
+ end
235
+ end
@@ -0,0 +1,95 @@
1
+ class QRParams
2
+ QR_BILL_WITH_QR_REFERENCE = "orange_with_reference"
3
+ QR_BILL_WITH_CREDITOR_REFERENCE = "red_with_reference"
4
+ QR_BILL_WITOUTH_REFERENCE = "red_without_reference"
5
+
6
+ def self.get_qr_params
7
+ {
8
+ bill_type: "", # see global variables / README
9
+ qrcode_filepath: "", # where to store the qrcode, i.e. : /tmp/qrcode_1234.png
10
+ fonts: {
11
+ eot: File.expand_path("#{File.dirname(__FILE__)}/../../web/assets/fonts/LiberationSans-Regular.eot"),
12
+ woff: File.expand_path("#{File.dirname(__FILE__)}/../../web/assets/fonts/LiberationSans-Regular.woff"),
13
+ ttf: File.expand_path("#{File.dirname(__FILE__)}/../../web/assets/fonts/LiberationSans-Regular.ttf"),
14
+ svg: File.expand_path("#{File.dirname(__FILE__)}/../../web/assets/fonts/LiberationSans-Regular.svg")
15
+ },
16
+ bill_params: {
17
+ language: "it",
18
+ amount: 0.0,
19
+ currency: "CHF",
20
+ reference_type: "", # QRR = QR reference, SCOR = Creditor reference, NON = without reference
21
+ reference: "", # qr reference or creditor reference (iso-11649)
22
+ additionally_information: "",
23
+ bill_information_coded: "",
24
+ alternative_scheme_paramters: "",
25
+ creditor: {
26
+ address: {
27
+ type: "S",
28
+ name: "",
29
+ line1: "",
30
+ line2: "",
31
+ postal_code: "",
32
+ town: "",
33
+ country: "",
34
+ iban: ""
35
+ },
36
+ },
37
+ debtor: {
38
+ address: {
39
+ type: "S",
40
+ name: "",
41
+ line1: "",
42
+ line2: "",
43
+ postal_code: "",
44
+ town: "",
45
+ country: "",
46
+ },
47
+ }
48
+ },
49
+ output_params: {
50
+ format: "html"
51
+ }
52
+ }
53
+ end
54
+
55
+ def self.valid?(params)
56
+ if params.has_key?(:bill_type)
57
+
58
+ if !QRParams.base_params_valid?(params)
59
+ return false
60
+ end
61
+
62
+ if params[:bill_type] == QR_BILL_WITH_QR_REFERENCE
63
+ return QRParams.qr_bill_with_qr_reference_valid?(params)
64
+ elsif params[:bill_type] == QR_BILL_WITH_CREDITOR_REFERENCE
65
+ return QRParams.qr_bill_with_creditor_reference_valid?(params)
66
+ elsif params[:bill_type] == QR_BILL_WITOUTH_REFERENCE
67
+ return QRParams.qr_bill_without_reference_valid?(params)
68
+ else
69
+ return false
70
+ end
71
+ else
72
+ return false
73
+ end
74
+ end
75
+
76
+ def self.base_params_valid?(params)
77
+ # todo
78
+ return true
79
+ end
80
+
81
+ def self.qr_bill_with_qr_reference_valid?(params)
82
+ # todo
83
+ return true
84
+ end
85
+
86
+ def self.qr_bill_with_creditor_reference_valid?(params)
87
+ # todo
88
+ return true
89
+ end
90
+
91
+ def self.qr_bill_without_reference_valid?(params)
92
+ # todo
93
+ return true
94
+ end
95
+ end
@@ -0,0 +1,356 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
4
+ <metadata></metadata>
5
+ <defs>
6
+ <font id="liberation_sansregular" horiz-adv-x="1139" >
7
+ <font-face units-per-em="2048" ascent="1638" descent="-410" />
8
+ <missing-glyph horiz-adv-x="569" />
9
+ <glyph horiz-adv-x="0" />
10
+ <glyph unicode="&#xd;" horiz-adv-x="569" />
11
+ <glyph unicode=" " horiz-adv-x="569" />
12
+ <glyph unicode="&#x09;" horiz-adv-x="569" />
13
+ <glyph unicode="&#xa0;" horiz-adv-x="569" />
14
+ <glyph unicode="!" horiz-adv-x="569" d="M359 397h-148l-24 1012h196zM185 0v201h194v-201h-194z" />
15
+ <glyph unicode="&#x22;" horiz-adv-x="727" d="M618 966h-142l-20 443h184zM249 966h-141l-21 443h184z" />
16
+ <glyph unicode="#" d="M896 885l-78 -369h260v-108h-283l-88 -408h-110l86 408h-363l-84 -408h-110l84 408h-201v108h225l78 369h-252v108h274l89 408h110l-88 -408h363l88 408h110l-88 -408h211v-108h-233zM425 885l-80 -369h362l78 369h-360z" />
17
+ <glyph unicode="$" d="M518 20q-426 18 -496 359l170 37q25 -119 104.5 -179t221.5 -69v496q-177 44 -244.5 79t-109 80.5t-60 97.5t-18.5 125q0 155 112.5 242.5t319.5 96.5v131h124v-131q187 -9 289 -84.5t144 -235.5l-174 -33q-20 94 -81 146.5t-178 63.5v-445q179 -42 254.5 -77t119.5 -79 t67 -104t23 -141q0 -165 -121 -265t-343 -111v-162h-124v162zM934 394q0 65 -26 107t-75 69.5t-191 64.5v-468q141 9 216.5 67t75.5 160zM258 1048q0 -59 25 -100t74.5 -69t160.5 -56v421q-260 -14 -260 -196z" />
18
+ <glyph unicode="%" horiz-adv-x="1821" d="M1748 434q0 -215 -81 -330.5t-239 -115.5q-156 0 -235.5 112.5t-79.5 333.5q0 228 76.5 339.5t242.5 111.5q164 0 240 -114.5t76 -336.5zM527 0h-155l922 1409h157zM394 1421q159 0 236 -112t77 -334q0 -217 -79.5 -334t-237.5 -117t-237.5 116t-79.5 335q0 223 77 334.5 t244 111.5zM1600 434q0 179 -38.5 259.5t-129.5 80.5t-131.5 -79t-40.5 -261q0 -171 39.5 -253.5t130.5 -82.5q88 0 129 83.5t41 252.5zM560 975q0 176 -38 257t-128 81q-94 0 -134 -79.5t-40 -258.5q0 -173 40 -255.5t132 -82.5q87 0 127.5 84t40.5 254z" />
19
+ <glyph unicode="&#x26;" horiz-adv-x="1366" d="M1193 -12q-177 0 -298 127q-75 -65 -171 -100t-201 -35q-215 0 -333 103.5t-118 287.5q0 278 343 429q-33 62 -57 147t-24 155q0 150 91.5 232.5t259.5 82.5q151 0 243.5 -76t92.5 -208q0 -118 -91.5 -210t-317.5 -182q111 -205 293 -412q113 166 171 410l145 -43 q-63 -249 -212 -469q96 -98 208 -98q71 0 117 16v-135q-56 -22 -141 -22zM869 1133q0 72 -50 117.5t-136 45.5q-96 0 -146 -51.5t-50 -142.5q0 -114 65 -244q131 53 192.5 92t93 84t31.5 99zM795 217q-198 234 -319 457q-236 -100 -236 -301q0 -121 77.5 -191.5t211.5 -70.5 q71 0 142 27.5t124 78.5z" />
20
+ <glyph unicode="'" horiz-adv-x="391" d="M266 966h-141l-21 443h184z" />
21
+ <glyph unicode="(" horiz-adv-x="682" d="M127 532q0 289 90.5 519t278.5 433h174q-187 -208 -274.5 -442t-87.5 -512q0 -277 86.5 -510t275.5 -444h-174q-189 204 -279 434.5t-90 517.5v4z" />
22
+ <glyph unicode=")" horiz-adv-x="682" d="M555 528q0 -289 -90.5 -519t-278.5 -433h-174q188 210 275 442.5t87 511.5t-87.5 512t-274.5 442h174q189 -204 279 -434.5t90 -517.5v-4z" />
23
+ <glyph unicode="*" horiz-adv-x="797" d="M456 1114l264 103l45 -132l-282 -73l185 -250l-119 -72l-150 258l-156 -256l-119 72l189 248l-280 73l45 134l267 -107l-12 297h136z" />
24
+ <glyph unicode="+" horiz-adv-x="1196" d="M671 608v-428h-147v428h-424v146h424v428h147v-428h424v-146h-424z" />
25
+ <glyph unicode="," horiz-adv-x="569" d="M385 219v-168q0 -106 -19 -177t-59 -136h-123q94 136 94 262h-88v219h195z" />
26
+ <glyph unicode="-" horiz-adv-x="682" d="M91 464v160h500v-160h-500z" />
27
+ <glyph unicode="." horiz-adv-x="569" d="M187 0v219h195v-219h-195z" />
28
+ <glyph unicode="/" horiz-adv-x="569" d="M0 -20l411 1504h158l-407 -1504h-162z" />
29
+ <glyph unicode="0" d="M1059 705q0 -353 -124.5 -539t-367.5 -186t-365 185t-122 540q0 363 118.5 544t374.5 181q249 0 367.5 -183t118.5 -542zM876 705q0 305 -70.5 442t-232.5 137q-166 0 -238.5 -135t-72.5 -444q0 -300 73.5 -439t233.5 -139q159 0 233 142t74 436z" />
30
+ <glyph unicode="1" d="M156 0v153h359v1084l-318 -227v170l333 229h166v-1256h343v-153h-883z" />
31
+ <glyph unicode="2" d="M103 0v127q51 117 124.5 206.5t154.5 162t160.5 134.5t143.5 124t103.5 130t39.5 154q0 116 -68 180t-189 64q-115 0 -189.5 -62.5t-87.5 -175.5l-184 17q20 169 143.5 269t317.5 100q213 0 327.5 -100.5t114.5 -285.5q0 -82 -37.5 -163t-111.5 -162t-283 -251 q-115 -94 -183 -169.5t-98 -145.5h735v-153h-933z" />
32
+ <glyph unicode="3" d="M1049 389q0 -195 -124 -302t-354 -107q-214 0 -341.5 96.5t-151.5 285.5l186 17q36 -250 307 -250q136 0 213.5 67t77.5 199q0 115 -88.5 179.5t-255.5 64.5h-102v156h98q148 0 229.5 64.5t81.5 178.5q0 113 -66.5 178.5t-197.5 65.5q-119 0 -192.5 -61t-85.5 -172 l-181 14q20 173 143.5 270t317.5 97q212 0 329.5 -98.5t117.5 -274.5q0 -135 -75.5 -219.5t-219.5 -114.5v-4q158 -17 246 -106t88 -224z" />
33
+ <glyph unicode="4" d="M881 319v-319h-170v319h-664v140l645 950h189v-948h198v-142h-198zM711 1206q-2 -6 -28 -53t-39 -66l-361 -532l-54 -74l-16 -20h498v745z" />
34
+ <glyph unicode="5" d="M1053 459q0 -223 -132.5 -351t-367.5 -128q-197 0 -318 86t-153 249l182 21q57 -209 293 -209q145 0 227 87.5t82 240.5q0 133 -82.5 215t-222.5 82q-73 0 -136 -23t-126 -78h-176l47 758h801v-153h-637l-27 -447q117 90 291 90q208 0 331.5 -122t123.5 -318z" />
35
+ <glyph unicode="6" d="M1049 461q0 -223 -121 -352t-334 -129q-238 0 -364 177t-126 515q0 366 131 562t373 196q319 0 402 -287l-172 -31q-53 172 -232 172q-154 0 -238.5 -143.5t-84.5 -415.5q49 91 138 138.5t204 47.5q195 0 309.5 -122t114.5 -328zM866 453q0 153 -75 236t-209 83 q-126 0 -203.5 -73.5t-77.5 -202.5q0 -163 80.5 -267t206.5 -104q130 0 204 87.5t74 240.5z" />
36
+ <glyph unicode="7" d="M1036 1263q-216 -330 -305 -517t-133.5 -369t-44.5 -377h-188q0 270 114.5 568.5t382.5 687.5h-757v153h931v-146z" />
37
+ <glyph unicode="8" d="M1050 393q0 -195 -124 -304t-356 -109q-226 0 -353.5 107t-127.5 304q0 138 79 232t202 114v4q-115 27 -181.5 117t-66.5 211q0 161 120.5 261t323.5 100q208 0 328.5 -98t120.5 -265q0 -121 -67 -211t-183 -113v-4q135 -22 210 -114.5t75 -231.5zM828 1057 q0 239 -262 239q-127 0 -193.5 -60t-66.5 -179q0 -121 68.5 -184.5t193.5 -63.5q127 0 193.5 58.5t66.5 189.5zM863 410q0 131 -78 197.5t-219 66.5q-137 0 -214 -71.5t-77 -196.5q0 -291 297 -291q147 0 219 70.5t72 224.5z" />
38
+ <glyph unicode="9" d="M1042 733q0 -363 -132.5 -558t-377.5 -195q-165 0 -264.5 69.5t-142.5 224.5l172 27q54 -176 238 -176q155 0 240 144t89 411q-40 -90 -137 -144.5t-213 -54.5q-190 0 -304 130t-114 345q0 221 124 347.5t345 126.5q235 0 356 -174t121 -523zM846 907q0 170 -78 273.5 t-209 103.5q-130 0 -205 -88.5t-75 -239.5q0 -154 75 -243.5t203 -89.5q78 0 145 35.5t105.5 100.5t38.5 148z" />
39
+ <glyph unicode=":" horiz-adv-x="569" d="M187 875v207h195v-207h-195zM187 0v207h195v-207h-195z" />
40
+ <glyph unicode=";" horiz-adv-x="569" d="M385 207v-156q0 -106 -19 -177t-59 -136h-123q94 136 94 262h-88v207h195zM190 875v207h195v-207h-195z" />
41
+ <glyph unicode="&#x3c;" horiz-adv-x="1196" d="M101 571v205l995 418v-154l-858 -366l858 -367v-153z" />
42
+ <glyph unicode="=" horiz-adv-x="1196" d="M100 856v148h995v-148h-995zM100 344v148h995v-148h-995z" />
43
+ <glyph unicode="&#x3e;" horiz-adv-x="1196" d="M101 154v153l858 367l-858 366v154l995 -418v-205z" />
44
+ <glyph unicode="?" d="M1063 1032q0 -75 -22 -134t-63 -109t-134 -118l-80 -59q-72 -52 -107 -109.5t-36 -125.5h-175q2 69 21.5 121t50.5 92t70 71.5t79 60t78.5 57t68.5 63.5t48.5 79t18.5 103q0 114 -77.5 180t-217.5 66t-222 -70t-96 -192l-184 12q26 198 156 304t344 106q223 0 351 -105.5 t128 -292.5zM438 0v201h195v-201h-195z" />
45
+ <glyph unicode="@" horiz-adv-x="2079" d="M1902 755q0 -186 -57.5 -336.5t-160 -232.5t-229.5 -82q-99 0 -153 44t-54 132l3 70h-6q-66 -123 -163.5 -184.5t-210.5 -61.5q-157 0 -243.5 102t-86.5 283q0 164 64.5 305t180.5 224t257 83q219 0 301 -182h6l39 160h156l-116 -506q-37 -164 -37 -253q0 -94 81 -94 q80 0 147.5 69t106.5 190t39 268q0 179 -77 317.5t-222 213t-339 74.5q-242 0 -428 -107t-292 -308.5t-106 -451.5q0 -193 78.5 -340.5t227 -226.5t346.5 -79q145 0 294 37.5t309 124.5l55 -112q-145 -87 -314.5 -132.5t-343.5 -45.5q-241 0 -421.5 95.5t-276 272 t-95.5 406.5q0 280 124.5 509t345.5 356.5t495 127.5q241 0 416 -90.5t267.5 -255.5t92.5 -383zM1296 747q0 102 -66 164.5t-176 62.5q-101 0 -179.5 -63.5t-123.5 -176t-45 -243.5q0 -120 47.5 -188t146.5 -68q125 0 229 105t144 262q23 92 23 145z" />
46
+ <glyph unicode="A" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156z" />
47
+ <glyph unicode="B" horiz-adv-x="1366" d="M1258 397q0 -188 -137 -292.5t-381 -104.5h-572v1409h512q496 0 496 -342q0 -125 -70 -210t-198 -114q168 -20 259 -112.5t91 -233.5zM984 1044q0 114 -78 163t-226 49h-321v-446h321q153 0 228.5 57.5t75.5 176.5zM1065 412q0 249 -350 249h-356v-508h371q175 0 255 65 t80 194z" />
48
+ <glyph unicode="C" horiz-adv-x="1479" d="M792 1274q-234 0 -364 -150.5t-130 -412.5q0 -259 135.5 -416.5t366.5 -157.5q296 0 445 293l156 -78q-87 -182 -244.5 -277t-365.5 -95q-213 0 -368.5 88.5t-237 253t-81.5 389.5q0 337 182 528t504 191q225 0 376 -88t222 -261l-181 -60q-49 123 -157.5 188t-257.5 65z " />
49
+ <glyph unicode="D" horiz-adv-x="1479" d="M1381 719q0 -218 -85 -381.5t-241 -250.5t-360 -87h-527v1409h466q358 0 552.5 -179.5t194.5 -510.5zM1189 719q0 262 -143.5 399.5t-415.5 137.5h-271v-1103h314q155 0 272.5 68t180.5 196t63 302z" />
50
+ <glyph unicode="E" horiz-adv-x="1366" d="M168 0v1409h1069v-156h-878v-452h818v-154h-818v-491h919v-156h-1110z" />
51
+ <glyph unicode="F" horiz-adv-x="1251" d="M359 1253v-524h786v-158h-786v-571h-191v1409h1001v-156h-810z" />
52
+ <glyph unicode="G" horiz-adv-x="1593" d="M103 711q0 343 184 531t517 188q234 0 380 -79t225 -253l-182 -54q-60 120 -165.5 175t-262.5 55q-244 0 -373 -147.5t-129 -415.5q0 -267 137 -421.5t379 -154.5q138 0 257.5 42t193.5 114v254h-421v160h597v-486q-112 -114 -274.5 -176.5t-352.5 -62.5q-221 0 -381 88 t-244.5 253.5t-84.5 389.5z" />
53
+ <glyph unicode="H" horiz-adv-x="1479" d="M1121 0v653h-762v-653h-191v1409h191v-596h762v596h191v-1409h-191z" />
54
+ <glyph unicode="I" horiz-adv-x="569" d="M189 0v1409h191v-1409h-191z" />
55
+ <glyph unicode="J" horiz-adv-x="1024" d="M457 -20q-358 0 -425 370l187 31q18 -116 81 -181t158 -65q104 0 164 71.5t60 209.5v837h-271v156h461v-989q0 -205 -111 -322.5t-304 -117.5z" />
56
+ <glyph unicode="K" horiz-adv-x="1366" d="M1106 0l-563 680l-184 -140v-540h-191v1409h191v-706l679 706h225l-600 -612l680 -797h-237z" />
57
+ <glyph unicode="L" d="M168 0v1409h191v-1253h712v-156h-903z" />
58
+ <glyph unicode="M" horiz-adv-x="1706" d="M1366 0v940q0 156 9 300q-49 -179 -88 -280l-364 -960h-134l-369 960l-56 170l-33 110l3 -111l4 -189v-940h-170v1409h251l375 -977q20 -59 38.5 -126.5t24.5 -97.5q8 40 33.5 121.5t34.5 102.5l368 977h245v-1409h-172z" />
59
+ <glyph unicode="N" horiz-adv-x="1479" d="M1082 0l-754 1200l5 -97l5 -167v-936h-170v1409h222l762 -1208q-12 196 -12 284v924h172v-1409h-230z" />
60
+ <glyph unicode="O" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5z" />
61
+ <glyph unicode="P" horiz-adv-x="1366" d="M1258 985q0 -200 -130.5 -318t-354.5 -118h-414v-549h-191v1409h593q237 0 367 -111t130 -313zM1066 983q0 273 -328 273h-379v-556h387q320 0 320 283z" />
62
+ <glyph unicode="Q" horiz-adv-x="1593" d="M1495 711q0 -298 -150 -490t-417 -227q41 -126 107.5 -182t168.5 -56q55 0 115 13v-134q-93 -22 -178 -22q-151 0 -248.5 85.5t-159.5 285.5q-198 10 -341.5 100.5t-219 252t-75.5 374.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711 q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5q244 0 374.5 150.5t130.5 425.5z" />
63
+ <glyph unicode="R" horiz-adv-x="1479" d="M1164 0l-366 585h-439v-585h-191v1409h663q238 0 367.5 -106.5t129.5 -296.5q0 -157 -91.5 -264t-252.5 -135l400 -607h-220zM1136 1004q0 123 -83.5 187.5t-240.5 64.5h-453v-520h461q151 0 233.5 70.5t82.5 197.5z" />
64
+ <glyph unicode="S" horiz-adv-x="1366" d="M1272 389q0 -195 -152.5 -302t-429.5 -107q-515 0 -597 358l185 37q32 -127 136 -186.5t283 -59.5q185 0 285.5 63.5t100.5 186.5q0 69 -31.5 112t-88.5 71t-136 47t-175 41q-167 37 -253.5 74t-136.5 82.5t-76.5 106.5t-26.5 140q0 181 138.5 279t396.5 98 q240 0 367 -73.5t178 -250.5l-188 -33q-31 112 -118 162.5t-241 50.5q-169 0 -258 -56t-89 -167q0 -65 34.5 -107.5t99.5 -72t259 -72.5q65 -15 129.5 -30.5t123.5 -37t110.5 -50.5t89.5 -71t59.5 -99t21.5 -134z" />
65
+ <glyph unicode="T" horiz-adv-x="1251" d="M720 1253v-1253h-190v1253h-484v156h1158v-156h-484z" />
66
+ <glyph unicode="U" horiz-adv-x="1479" d="M731 -20q-173 0 -302 63t-200 183t-71 286v897h191v-881q0 -193 98 -293t283 -100q190 0 295.5 103.5t105.5 302.5v868h190v-879q0 -171 -72.5 -295t-205 -189.5t-312.5 -65.5z" />
67
+ <glyph unicode="V" horiz-adv-x="1366" d="M782 0h-198l-575 1409h201l390 -992l84 -249l84 249l388 992h201z" />
68
+ <glyph unicode="W" horiz-adv-x="1933" d="M1511 0h-228l-244 895q-24 84 -70 301q-26 -116 -44 -194t-273 -1002h-228l-415 1409h199l253 -895q45 -168 83 -346q24 110 55.5 240t277.5 1001h183l245 -877q56 -215 88 -364l9 35q27 115 44 187.5t281 1018.5h199z" />
69
+ <glyph unicode="X" horiz-adv-x="1366" d="M1112 0l-423 616l-432 -616h-211l536 732l-495 677h211l392 -553l381 553h211l-482 -670l523 -739h-211z" />
70
+ <glyph unicode="Y" horiz-adv-x="1366" d="M777 584v-584h-190v584l-542 825h210l429 -671l427 671h210z" />
71
+ <glyph unicode="Z" horiz-adv-x="1251" d="M1187 0h-1122v143l858 1110h-785v156h1002v-139l-858 -1114h905v-156z" />
72
+ <glyph unicode="[" horiz-adv-x="569" d="M146 -425v1909h407v-129h-233v-1651h233v-129h-407z" />
73
+ <glyph unicode="\" horiz-adv-x="569" d="M407 -20l-407 1504h158l411 -1504h-162z" />
74
+ <glyph unicode="]" horiz-adv-x="569" d="M16 -425v129h233v1651h-233v129h407v-1909h-407z" />
75
+ <glyph unicode="^" horiz-adv-x="961" d="M787 673l-309 633l-306 -633h-162l368 736h203l370 -736h-164z" />
76
+ <glyph unicode="_" d="M-31 -407v130h1193v-130h-1193z" />
77
+ <glyph unicode="`" horiz-adv-x="682" d="M436 1201l-330 278v29h207l217 -287v-20h-94z" />
78
+ <glyph unicode="a" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48z" />
79
+ <glyph unicode="b" d="M1053 546q0 -566 -398 -566q-123 0 -204.5 44.5t-132.5 143.5h-2q0 -31 -4 -94.5t-6 -73.5h-174q6 54 6 223v1261h180v-423q0 -65 -4 -153h4q50 104 132.5 149t204.5 45q205 0 301.5 -138t96.5 -418zM864 540q0 227 -60 325t-195 98q-152 0 -221.5 -104t-69.5 -330 q0 -213 68 -314.5t221 -101.5q136 0 196.5 100.5t60.5 326.5z" />
80
+ <glyph unicode="c" horiz-adv-x="1024" d="M275 546q0 -216 68 -320t205 -104q96 0 160.5 52t79.5 160l182 -12q-21 -156 -133 -249t-284 -93q-227 0 -346.5 143.5t-119.5 418.5q0 273 120 416.5t344 143.5q166 0 275.5 -86t137.5 -237l-185 -14q-14 90 -71 143t-162 53q-143 0 -207 -95t-64 -320z" />
81
+ <glyph unicode="d" d="M821 174q-50 -104 -132.5 -149t-204.5 -45q-205 0 -301.5 138t-96.5 418q0 566 398 566q123 0 205 -45t132 -143h2l-2 121v449h180v-1261q0 -169 6 -223h-172q-3 16 -6.5 74t-3.5 100h-4zM275 542q0 -227 60 -325t195 -98q153 0 222 106t69 329q0 215 -69 315t-220 100 q-136 0 -196.5 -100.5t-60.5 -326.5z" />
82
+ <glyph unicode="e" d="M276 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-240 0 -365.5 143t-125.5 425q0 268 125.5 411t358.5 143q477 0 477 -575v-24h-772zM862 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584z" />
83
+ <glyph unicode="f" horiz-adv-x="569" d="M361 951v-951h-180v951h-152v131h152v122q0 148 65 213t199 65q75 0 127 -12v-137q-45 8 -80 8q-69 0 -100 -35t-31 -127v-97h211v-131h-211z" />
84
+ <glyph unicode="g" d="M548 -425q-177 0 -282 69.5t-135 197.5l181 26q18 -75 79.5 -115.5t161.5 -40.5q269 0 269 315v174h-2q-51 -104 -140 -156.5t-208 -52.5q-199 0 -292.5 132t-93.5 415q0 287 100.5 423.5t305.5 136.5q115 0 199.5 -52.5t130.5 -149.5h2q0 30 4 104t8 81h171 q-6 -54 -6 -224v-827q0 -456 -453 -456zM822 541q0 132 -36 227.5t-101.5 146t-148.5 50.5q-138 0 -201 -100t-63 -324q0 -222 59 -319t202 -97q85 0 151 50t102 143.5t36 222.5z" />
85
+ <glyph unicode="h" d="M317 897q58 106 139.5 155.5t206.5 49.5q176 0 259.5 -87.5t83.5 -293.5v-721h-181v686q0 114 -21 169.5t-69 81.5t-133 26q-127 0 -203.5 -88t-76.5 -237v-638h-180v1484h180v-386q0 -61 -3.5 -126t-4.5 -75h3z" />
86
+ <glyph unicode="i" horiz-adv-x="455" d="M137 1312v172h180v-172h-180zM137 0v1082h180v-1082h-180z" />
87
+ <glyph unicode="j" horiz-adv-x="455" d="M137 1312v172h180v-172h-180zM317 -134q0 -153 -60 -222t-180 -69q-77 0 -127 9v139l62 -6q69 0 97 36t28 140v1189h180v-1216z" />
88
+ <glyph unicode="k" horiz-adv-x="1024" d="M816 0l-366 494l-132 -109v-385h-180v1484h180v-927l475 525h211l-439 -465l462 -617h-211z" />
89
+ <glyph unicode="l" horiz-adv-x="455" d="M138 0v1484h180v-1484h-180z" />
90
+ <glyph unicode="m" horiz-adv-x="1706" d="M768 0v686q0 157 -43 217t-155 60q-115 0 -182 -88t-67 -248v-627h-179v851q0 189 -6 231h170q1 -5 2 -27t2.5 -50.5t3.5 -107.5h3q58 115 133 160t183 45q123 0 194.5 -49t99.5 -156h3q56 109 135.5 157t192.5 48q164 0 238.5 -89t74.5 -292v-721h-178v686 q0 157 -43 217t-155 60q-118 0 -183.5 -87.5t-65.5 -248.5v-627h-178z" />
91
+ <glyph unicode="n" d="M825 0v686q0 107 -21 166t-67 85t-135 26q-130 0 -205 -89t-75 -247v-627h-180v851q0 189 -6 231h170q1 -5 2 -27t2.5 -50.5t3.5 -107.5h3q62 112 143.5 158.5t202.5 46.5q178 0 260.5 -88.5t82.5 -292.5v-721h-181z" />
92
+ <glyph unicode="o" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325z" />
93
+ <glyph unicode="p" d="M1053 546q0 -566 -398 -566q-250 0 -336 188h-5q4 -8 4 -170v-423h-180v1286q0 167 -6 221h174q1 -4 3 -28.5t4.5 -75.5t2.5 -70h4q48 100 127 146.5t208 46.5q200 0 299 -134t99 -421zM864 542q0 226 -61 323t-194 97q-107 0 -167.5 -45t-92 -140.5t-31.5 -248.5 q0 -213 68 -314t221 -101q134 0 195.5 98.5t61.5 330.5z" />
94
+ <glyph unicode="q" d="M484 -20q-206 0 -302 139t-96 417q0 566 398 566q123 0 203 -43.5t134 -144.5h2q0 30 4 103.5t8 78.5h173q-7 -59 -7 -295v-1226h-180v439l4 164h-2q-54 -107 -133 -152.5t-206 -45.5zM821 554q0 211 -69 313t-220 102q-137 0 -197 -102t-60 -325q0 -227 60.5 -325 t194.5 -98q153 0 222 109t69 326z" />
95
+ <glyph unicode="r" horiz-adv-x="682" d="M142 0v830q0 114 -6 252h170q8 -184 8 -221h4q43 139 99 190t158 51q36 0 73 -10v-165q-36 10 -96 10q-112 0 -171 -96.5t-59 -276.5v-564h-180z" />
96
+ <glyph unicode="s" horiz-adv-x="1024" d="M950 299q0 -153 -115.5 -236t-323.5 -83q-202 0 -311.5 66.5t-142.5 207.5l159 31q23 -87 95 -127.5t200 -40.5q137 0 200.5 42t63.5 126q0 64 -44 104t-142 66l-129 34q-155 40 -220.5 78.5t-102.5 93.5t-37 135q0 148 105.5 225.5t307.5 77.5q179 0 284.5 -63 t133.5 -202l-162 -20q-15 72 -80.5 110.5t-175.5 38.5q-122 0 -180 -37t-58 -112q0 -46 24 -76t71 -51t198 -58q143 -36 206 -66.5t99.5 -67.5t56.5 -85.5t20 -110.5z" />
97
+ <glyph unicode="t" horiz-adv-x="569" d="M554 8q-89 -24 -182 -24q-216 0 -216 245v722h-125v131h132l53 242h120v-242h200v-131h-200v-683q0 -78 25.5 -109.5t88.5 -31.5q36 0 104 14v-133z" />
98
+ <glyph unicode="u" d="M314 1082v-686q0 -107 21 -166t67 -85t135 -26q130 0 205 89t75 247v627h180v-851q0 -189 6 -231h-170q-1 5 -2 27t-2.5 50.5t-3.5 107.5h-3q-62 -112 -143.5 -158.5t-202.5 -46.5q-178 0 -260.5 88.5t-82.5 292.5v721h181z" />
99
+ <glyph unicode="v" horiz-adv-x="1024" d="M613 0h-213l-393 1082h192l238 -704q13 -40 69 -237l35 117l39 118l246 706h191z" />
100
+ <glyph unicode="w" horiz-adv-x="1479" d="M1174 0h-209l-189 765l-36 169q-9 -45 -28 -129.5t-204 -804.5h-208l-303 1082h178l183 -735q7 -24 43 -198l17 74l226 859h193l189 -743l46 -190l31 139l205 794h176z" />
101
+ <glyph unicode="x" horiz-adv-x="1024" d="M801 0l-291 444l-293 -444h-194l385 556l-367 526h199l270 -421l268 421h201l-367 -524l390 -558h-201z" />
102
+ <glyph unicode="y" horiz-adv-x="1024" d="M191 -425q-74 0 -124 11v135q38 -6 84 -6q168 0 266 247l17 43l-429 1077h192l228 -598q5 -14 12 -33.5t45 -130.5t41 -124l70 197l237 689h190l-416 -1082q-67 -173 -125 -257.5t-128.5 -126t-159.5 -41.5z" />
103
+ <glyph unicode="z" horiz-adv-x="1024" d="M83 0v137l605 806h-571v139h784v-137l-606 -806h627v-139h-839z" />
104
+ <glyph unicode="{" horiz-adv-x="684" d="M513 -425q-127 0 -195.5 77t-68.5 216v361q0 117 -52.5 174.5t-162.5 62.5v127q109 4 162 61.5t53 174.5v362q0 141 66.5 217t197.5 76h135v-129h-63q-91 0 -129.5 -53.5t-38.5 -161.5v-356q0 -94 -53 -162.5t-141 -89.5v-2q89 -21 141.5 -89t52.5 -165v-357 q0 -106 38.5 -160.5t129.5 -54.5h63v-129h-135z" />
105
+ <glyph unicode="|" horiz-adv-x="532" d="M183 -434v1918h166v-1918h-166z" />
106
+ <glyph unicode="}" horiz-adv-x="684" d="M94 -296q91 0 130.5 54.5t39.5 160.5v357q0 98 52 166t141 88v2q-86 20 -139.5 87.5t-53.5 164.5v356q0 108 -39.5 161.5t-130.5 53.5h-60v129h132q131 0 197.5 -76t66.5 -217v-362q0 -116 53 -174t164 -62v-127q-112 -4 -164.5 -62t-52.5 -175v-361q0 -138 -68.5 -215.5 t-195.5 -77.5h-132v129h60z" />
107
+ <glyph unicode="~" horiz-adv-x="1196" d="M844 553q-69 0 -141.5 22t-145.5 48q-129 45 -217 45q-67 0 -125 -20.5t-123 -67.5v143q111 84 263 84q52 0 115.5 -13t193.5 -59q31 -12 91 -28.5t105 -16.5q130 0 244 92v-149q-58 -42 -116.5 -61t-143.5 -19z" />
108
+ <glyph unicode="&#xa1;" horiz-adv-x="682" d="M266 685h148l24 -1012h-196zM440 1082v-201h-194v201h194z" />
109
+ <glyph unicode="&#xa2;" d="M596 277q96 0 160.5 52t79.5 160l182 -12q-19 -144 -114 -235t-242 -105v-168h-124v168q-199 18 -301 160.5t-102 399.5q0 253 102 396.5t301 160.5v155h124v-155q143 -15 233 -98t117 -222l-185 -14q-14 90 -71 143t-162 53q-143 0 -207 -95t-64 -320q0 -216 68 -320 t205 -104z" />
110
+ <glyph unicode="&#xa3;" d="M1104 311q-17 -150 -105 -230.5t-232 -80.5h-698v154q89 46 132 126t43 201v144h-186v129h186v280q0 195 103 295.5t299 100.5q147 0 247 -60.5t134 -169.5l-174 -57q-21 64 -76.5 101.5t-126.5 37.5q-114 0 -170 -57.5t-56 -182.5v-288h408v-129h-408v-126 q0 -119 -46 -212t-123 -134h483q174 0 203 176z" />
111
+ <glyph unicode="&#xa4;" d="M137 684q0 138 78 252l-100 100l104 103l99 -101q114 82 254 82q137 0 251 -80l97 97l104 -105l-96 -96q80 -117 80 -252q0 -138 -82 -252l100 -100l-102 -105l-101 101q-114 -78 -251 -78q-143 0 -252 80l-105 -105l-102 105l102 102q-78 114 -78 252zM291 686 q0 -117 83 -198.5t198 -81.5q114 0 197 81t83 199q0 117 -83.5 199t-196.5 82t-197 -81.5t-84 -199.5z" />
112
+ <glyph unicode="&#xa5;" d="M720 709h321v-125h-383v-154h383v-127h-383v-303h-178v303h-381v127h381l2 154h-383v125h320l-421 700h199l371 -647l375 647h199z" />
113
+ <glyph unicode="&#xa6;" horiz-adv-x="532" d="M183 706v778h166v-778h-166zM183 -434v779h166v-779h-166z" />
114
+ <glyph unicode="&#xa7;" d="M588 1484q173 0 279.5 -66.5t133.5 -193.5l-161 -20q-27 150 -252 150q-125 0 -189.5 -39.5t-64.5 -110.5q0 -48 30 -83t85.5 -61t185.5 -57q147 -35 225 -76.5t121 -100.5t43 -140q0 -99 -59.5 -174t-159.5 -99q112 -48 162.5 -112.5t50.5 -155.5q0 -148 -115.5 -232.5 t-325.5 -84.5q-209 0 -318.5 66.5t-143.5 205.5l161 31q20 -90 88 -131t213 -41q136 0 208.5 44t72.5 126q0 57 -33 95.5t-94.5 67.5t-212.5 66q-194 45 -279.5 123t-85.5 190q0 89 61.5 163t166.5 104q-96 32 -151.5 99t-55.5 153q0 139 105.5 216.5t308.5 77.5zM866 663 q0 72 -69.5 124t-245.5 93q-109 -6 -173.5 -59t-64.5 -137q0 -49 29.5 -85.5t85 -63.5t184.5 -60q119 2 186.5 52.5t67.5 135.5z" />
115
+ <glyph unicode="&#xa8;" horiz-adv-x="682" d="M439 1219v184h163v-184h-163zM45 1219v184h165v-184h-165z" />
116
+ <glyph unicode="&#xa9;" horiz-adv-x="1509" d="M1477 707q0 -193 -96.5 -361.5t-265 -265t-361.5 -96.5q-197 0 -366.5 100.5t-263 267t-93.5 355.5q0 193 97 361t265 265t361 97q194 0 362.5 -97.5t264.5 -264.5t96 -361zM1385 707q0 169 -84 313.5t-230.5 229.5t-316.5 85q-168 0 -314 -84.5t-230 -230.5t-84 -313 q0 -169 84.5 -315t229.5 -230t314 -84t316 84t231 230t84 315zM498 709q0 -155 71 -240.5t196 -85.5q158 0 233 156l115 -35q-62 -121 -146.5 -173t-201.5 -52q-188 0 -292 113t-104 317q0 203 100 313.5t289 110.5q244 0 340 -209l-114 -33q-32 69 -90 103t-134 34 q-127 0 -194.5 -80.5t-67.5 -238.5z" />
117
+ <glyph unicode="&#xaa;" horiz-adv-x="758" d="M260 651q-108 0 -171 58t-63 161q0 116 78.5 178t233.5 64l178 4v60q0 81 -35 118t-116 37q-67 0 -107.5 -29.5t-49.5 -105.5l-149 10q16 106 95.5 166t208.5 60q145 0 220.5 -62.5t75.5 -187.5v-308q0 -58 14 -83t49 -25q19 0 43 8v-104q-49 -13 -83 -13 q-73 0 -113.5 38t-44.5 103h-4q-73 -147 -260 -147zM299 762q90 0 153.5 59t63.5 138v65l-138 -4q-118 -6 -160 -39t-42 -98q0 -121 123 -121z" />
118
+ <glyph unicode="&#xab;" d="M886 141l-338 365v63l338 371h168v-31l-338 -372l340 -367v-29h-170zM419 141l-336 365v63l336 371h167v-31l-335 -372l337 -367v-29h-169z" />
119
+ <glyph unicode="&#xac;" horiz-adv-x="1196" d="M950 180v428h-850v146h995v-574h-145z" />
120
+ <glyph unicode="&#xad;" horiz-adv-x="682" d="M91 464v160h500v-160h-500z" />
121
+ <glyph unicode="&#xae;" horiz-adv-x="1509" d="M1477 707q0 -193 -96.5 -361.5t-265 -265t-361.5 -96.5q-197 0 -366.5 100.5t-263 267t-93.5 355.5q0 193 97 361t265 265t361 97q194 0 362.5 -97.5t264.5 -264.5t96 -361zM1385 707q0 169 -84 313.5t-230.5 229.5t-316.5 85q-168 0 -314 -84.5t-230 -230.5t-84 -313 q0 -169 84.5 -315t229.5 -230t314 -84t316 84t231 230t84 315zM955 289l-199 336h-161v-336h-127v831h307q142 0 217.5 -63t75.5 -174q0 -102 -52 -163.5t-137 -80.5l221 -350h-145zM941 881q0 69 -47.5 105t-128.5 36h-170v-301h182q80 0 122 42.5t42 117.5z" />
122
+ <glyph unicode="&#xaf;" horiz-adv-x="1131" d="M1148 1452h-1165v94h1165v-94z" />
123
+ <glyph unicode="&#xb0;" horiz-adv-x="819" d="M696 1145q0 -119 -84.5 -202t-202.5 -83t-202.5 84t-84.5 201t83.5 201t203.5 84t203.5 -83t83.5 -202zM587 1145q0 76 -51.5 128t-126.5 52t-126.5 -53t-51.5 -127t52.5 -127t125.5 -53q74 0 126 52.5t52 127.5z" />
124
+ <glyph unicode="&#xb1;" horiz-adv-x="1124" d="M636 680v-395h-147v395h-424v145h424v394h147v-394h424v-145h-424zM65 0v145h995v-145h-995z" />
125
+ <glyph unicode="&#xb2;" horiz-adv-x="682" d="M43 563l-2 103q31 69 95.5 134.5t171.5 139.5q97 68 141 124t44 114q0 62 -35.5 99.5t-109.5 37.5q-68 0 -112 -36.5t-52 -104.5l-133 8q13 107 93.5 173t209.5 66q127 0 201.5 -61.5t74.5 -171.5q0 -147 -188 -285q-122 -90 -172 -136t-70 -91h443v-113h-600z" />
126
+ <glyph unicode="&#xb3;" horiz-adv-x="682" d="M642 795q0 -116 -77.5 -180t-219.5 -64q-286 0 -318 227l136 13q18 -136 182 -136q160 0 160 148q0 137 -189 137h-61v109h57q80 0 126 36t46 101q0 60 -37 94.5t-108 34.5q-68 0 -110 -35t-48 -100l-135 12q13 109 91.5 169t205.5 60q130 0 204 -59.5t74 -157.5 q0 -75 -43 -130t-133 -75v-2q91 -9 144 -61.5t53 -140.5z" />
127
+ <glyph unicode="&#xb4;" horiz-adv-x="682" d="M72 1201v20l217 287h207v-29l-330 -278h-94z" />
128
+ <glyph unicode="&#xb5;" horiz-adv-x="1180" d="M140 -425v1507h181v-686q0 -138 53.5 -207.5t172.5 -69.5q128 0 201 87t73 249v627h180v-816q0 -76 18 -110.5t60 -34.5q25 0 54 8v-129q-65 -20 -113 -20q-91 0 -138.5 47t-52.5 147h-3q-106 -194 -299 -194q-67 0 -121.5 20.5t-85.5 58.5v-484h-180z" />
129
+ <glyph unicode="&#xb6;" horiz-adv-x="1100" d="M884 1307v-1571h-112v1571h-217v-1571h-113v958q-168 0 -265 92.5t-97 262.5q0 169 98.5 264.5t271.5 95.5h563v-102h-129z" />
130
+ <glyph unicode="&#xb7;" horiz-adv-x="682" d="M243 446v220h195v-220h-195z" />
131
+ <glyph unicode="&#xb8;" horiz-adv-x="682" d="M483 -253q0 -181 -274 -181q-57 0 -90 4v98q49 -6 86 -6q147 0 147 81q0 77 -133 77q-43 0 -57 -2l65 182h107l-39 -100q94 -3 141 -43.5t47 -109.5z" />
132
+ <glyph unicode="&#xb9;" horiz-adv-x="682" d="M80 563v107h211v620l-202 -138v120l210 137h123v-739h215v-107h-557z" />
133
+ <glyph unicode="&#xba;" horiz-adv-x="748" d="M723 1042q0 -188 -88 -289.5t-263 -101.5q-168 0 -256.5 100.5t-88.5 290.5q0 189 89 289.5t260 100.5q347 0 347 -390zM574 1042q0 154 -45.5 219.5t-149.5 65.5q-108 0 -154 -67.5t-46 -217.5q0 -145 45.5 -215.5t146.5 -70.5q111 0 157 69t46 217z" />
134
+ <glyph unicode="&#xbb;" d="M718 141h-168v29l338 367l-336 372v31h166l338 -371v-63zM253 141h-170v29l338 367l-336 372v31h168l335 -371v-63z" />
135
+ <glyph unicode="&#xbc;" horiz-adv-x="1708" d="M56 563v107h211v620l-202 -138v120l210 137h123v-739h215v-107h-557zM493 0h-148l881 1409h145zM1503 180v-178h-131v178h-406v111l386 557h151v-555h111v-113h-111zM1374 715q-21 -40 -82 -135l-199 -287h279v360z" />
136
+ <glyph unicode="&#xbd;" horiz-adv-x="1708" d="M56 563v107h211v620l-202 -138v120l210 137h123v-739h215v-107h-557zM493 0h-148l881 1409h145zM1053 2l-2 103q31 69 95.5 134.5t171.5 139.5q97 68 141 124t44 114q0 62 -35.5 99.5t-109.5 37.5q-68 0 -112 -36.5t-52 -104.5l-133 8q13 107 93.5 173t209.5 66 q127 0 201.5 -61.5t74.5 -171.5q0 -147 -188 -285q-122 -90 -172 -136t-70 -91h443v-113h-600z" />
137
+ <glyph unicode="&#xbe;" horiz-adv-x="1708" d="M513 0h-148l881 1409h145zM1503 180v-178h-131v178h-406v111l386 557h151v-555h111v-113h-111zM1374 715q-21 -40 -82 -135l-199 -287h279v360zM688 795q0 -116 -77.5 -180t-219.5 -64q-286 0 -318 227l136 13q18 -136 182 -136q160 0 160 148q0 137 -189 137h-61v109h57 q80 0 126 36t46 101q0 60 -37 94.5t-108 34.5q-68 0 -110 -35t-48 -100l-135 12q13 109 91.5 169t205.5 60q130 0 204 -59.5t74 -157.5q0 -75 -43 -130t-133 -75v-2q91 -9 144 -61.5t53 -140.5z" />
138
+ <glyph unicode="&#xbf;" horiz-adv-x="1251" d="M131 50q0 75 22 134t63 109t134 118l81 59q71 52 106 109.5t36 125.5h175q-2 -69 -21.5 -121t-50.5 -92t-70 -71.5t-79 -60t-78.5 -57t-68.5 -63.5t-48.5 -79t-18.5 -103q0 -114 77.5 -180t217.5 -66t222 70t96 192l184 -12q-26 -198 -156 -304t-344 -106 q-223 0 -351 105.5t-128 292.5zM756 1082v-201h-195v201h195z" />
139
+ <glyph unicode="&#xc0;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM750 1530l-310 217v29h207l217 -226v-20h-114z" />
140
+ <glyph unicode="&#xc1;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM547 1530v20l217 226h207v-29l-310 -217h-114z" />
141
+ <glyph unicode="&#xc2;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM1014 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
142
+ <glyph unicode="&#xc3;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM842 1530q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5 q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
143
+ <glyph unicode="&#xc4;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM803 1530v184h163v-184h-163zM409 1530v184h165v-184h-165z" />
144
+ <glyph unicode="&#xc5;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM928 1546q0 -100 -71 -171t-171 -71t-171 71t-71 171q0 101 71 171t171 70q99 0 170.5 -70.5t71.5 -170.5zM820 1546 q0 56 -39 95t-95 39q-57 0 -96 -39t-39 -95q0 -55 38 -96t97 -41q58 0 96 40.5t38 96.5z" />
145
+ <glyph unicode="&#xc6;" horiz-adv-x="2048" d="M969 0v412h-548l-198 -412h-199l686 1409h1209v-156h-759v-452h699v-154h-699v-491h800v-156h-991zM969 1262h-151l-28 -63l-299 -638h478v701z" />
146
+ <glyph unicode="&#xc7;" horiz-adv-x="1479" d="M792 1274q-234 0 -364 -150.5t-130 -412.5q0 -259 135.5 -416.5t366.5 -157.5q296 0 445 293l156 -78q-87 -182 -244.5 -277t-365.5 -95q-213 0 -368.5 88.5t-237 253t-81.5 389.5q0 337 182 528t504 191q225 0 376 -88t222 -261l-181 -60q-49 123 -157.5 188t-257.5 65z M993 -253q0 -181 -274 -181q-57 0 -90 4v98q49 -6 86 -6q147 0 147 81q0 77 -133 77q-43 0 -57 -2l65 182h107l-39 -100q94 -3 141 -43.5t47 -109.5z" />
147
+ <glyph unicode="&#xc8;" horiz-adv-x="1366" d="M168 0v1409h1069v-156h-878v-452h818v-154h-818v-491h919v-156h-1110zM735 1530l-310 217v29h207l217 -226v-20h-114z" />
148
+ <glyph unicode="&#xc9;" horiz-adv-x="1366" d="M168 0v1409h1069v-156h-878v-452h818v-154h-818v-491h919v-156h-1110zM551 1530v20l217 226h207v-29l-310 -217h-114z" />
149
+ <glyph unicode="&#xca;" horiz-adv-x="1366" d="M168 0v1409h1069v-156h-878v-452h818v-154h-818v-491h919v-156h-1110zM1037 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
150
+ <glyph unicode="&#xcb;" horiz-adv-x="1366" d="M168 0v1409h1069v-156h-878v-452h818v-154h-818v-491h919v-156h-1110zM816 1530v184h163v-184h-163zM422 1530v184h165v-184h-165z" />
151
+ <glyph unicode="&#xcc;" horiz-adv-x="569" d="M189 0v1409h191v-1409h-191zM319 1530l-310 217v29h207l217 -226v-20h-114z" />
152
+ <glyph unicode="&#xcd;" horiz-adv-x="569" d="M189 0v1409h191v-1409h-191zM142 1530v20l217 226h207v-29l-310 -217h-114z" />
153
+ <glyph unicode="&#xce;" horiz-adv-x="569" d="M189 0v1409h191v-1409h-191zM616 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
154
+ <glyph unicode="&#xcf;" horiz-adv-x="569" d="M189 0v1409h191v-1409h-191zM401 1530v184h163v-184h-163zM7 1530v184h165v-184h-165z" />
155
+ <glyph unicode="&#xd0;" horiz-adv-x="1479" d="M14 801h154v608h466q358 0 552.5 -179.5t194.5 -510.5q0 -218 -85 -381.5t-241 -250.5t-360 -87h-527v647h-154v154zM1189 719q0 262 -143.5 399.5t-415.5 137.5h-271v-455h406v-154h-406v-494h314q155 0 272.5 68t180.5 196t63 302z" />
156
+ <glyph unicode="&#xd1;" horiz-adv-x="1479" d="M1082 0l-754 1200l5 -97l5 -167v-936h-170v1409h222l762 -1208q-12 196 -12 284v924h172v-1409h-230zM909 1530q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5 q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
157
+ <glyph unicode="&#xd2;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5zM854 1530l-310 217v29h207l217 -226v-20h-114z" />
158
+ <glyph unicode="&#xd3;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5zM621 1530v20l217 226h207v-29l-310 -217h-114z" />
159
+ <glyph unicode="&#xd4;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5zM1131 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
160
+ <glyph unicode="&#xd5;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5zM941 1530q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
161
+ <glyph unicode="&#xd6;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5zM910 1530v184h163v-184h-163zM516 1530v184h165v-184h-165z" />
162
+ <glyph unicode="&#xd7;" horiz-adv-x="1196" d="M142 330l354 354l-352 352l104 103l350 -353l350 351l105 -105l-350 -348l352 -352l-102 -105l-353 353l-356 -355z" />
163
+ <glyph unicode="&#xd8;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-246 0 -414 112l-120 -145h-190l200 241q-174 192 -174 523q0 338 185 528.5t515 190.5q247 0 414 -110l121 146h192l-201 -242q172 -190 172 -513zM1300 711q0 224 -98 368l-709 -853q122 -91 302 -91 q244 0 374.5 150.5t130.5 425.5zM291 711q0 -229 101 -378l707 853q-124 88 -302 88q-242 0 -374 -148t-132 -415z" />
164
+ <glyph unicode="&#xd9;" horiz-adv-x="1479" d="M731 -20q-173 0 -302 63t-200 183t-71 286v897h191v-881q0 -193 98 -293t283 -100q190 0 295.5 103.5t105.5 302.5v868h190v-879q0 -171 -72.5 -295t-205 -189.5t-312.5 -65.5zM813 1530l-310 217v29h207l217 -226v-20h-114z" />
165
+ <glyph unicode="&#xda;" horiz-adv-x="1479" d="M731 -20q-173 0 -302 63t-200 183t-71 286v897h191v-881q0 -193 98 -293t283 -100q190 0 295.5 103.5t105.5 302.5v868h190v-879q0 -171 -72.5 -295t-205 -189.5t-312.5 -65.5zM565 1530v20l217 226h207v-29l-310 -217h-114z" />
166
+ <glyph unicode="&#xdb;" horiz-adv-x="1479" d="M731 -20q-173 0 -302 63t-200 183t-71 286v897h191v-881q0 -193 98 -293t283 -100q190 0 295.5 103.5t105.5 302.5v868h190v-879q0 -171 -72.5 -295t-205 -189.5t-312.5 -65.5zM1070 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
167
+ <glyph unicode="&#xdc;" horiz-adv-x="1479" d="M731 -20q-173 0 -302 63t-200 183t-71 286v897h191v-881q0 -193 98 -293t283 -100q190 0 295.5 103.5t105.5 302.5v868h190v-879q0 -171 -72.5 -295t-205 -189.5t-312.5 -65.5zM853 1530v184h163v-184h-163zM459 1530v184h165v-184h-165z" />
168
+ <glyph unicode="&#xdd;" horiz-adv-x="1366" d="M777 584v-584h-190v584l-542 825h210l429 -671l427 671h210zM536 1530v20l217 226h207v-29l-310 -217h-114z" />
169
+ <glyph unicode="&#xde;" horiz-adv-x="1366" d="M1258 735q0 -128 -58 -227.5t-167.5 -155t-259.5 -55.5h-414v-297h-191v1409h191v-252h402q239 0 368 -111t129 -311zM1066 731q0 134 -82 208.5t-246 74.5h-379v-576h387q153 0 236.5 77.5t83.5 215.5z" />
170
+ <glyph unicode="&#xdf;" horiz-adv-x="1251" d="M1167 295q0 -150 -94 -232.5t-264 -82.5q-171 0 -283 49l-2 164q52 -29 132 -49t149 -20q92 0 141 43t49 122q0 64 -42.5 115t-139.5 109q-92 54 -137.5 120t-45.5 152q0 61 28.5 111t82.5 95q58 48 84.5 90t26.5 92q0 77 -67 123.5t-176 46.5q-148 0 -217.5 -80 t-69.5 -242v-1021h-180v1027q0 227 117.5 342t349.5 115q190 0 302.5 -80.5t112.5 -216.5q0 -143 -113 -246q-79 -72 -96 -96.5t-17 -53.5q0 -38 27.5 -67.5t68.5 -58t89 -60.5q184 -124 184 -310z" />
171
+ <glyph unicode="&#xe0;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM624 1201l-330 278v29h207l217 -287v-20h-94z" />
172
+ <glyph unicode="&#xe1;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM412 1201v20l217 287h207v-29l-330 -278h-94z" />
173
+ <glyph unicode="&#xe2;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM880 1221v-20h-105l-219 169h-2l-232 -169h-104v20l234 270h204z" />
174
+ <glyph unicode="&#xe3;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM737 1201q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91 q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
175
+ <glyph unicode="&#xe4;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM674 1219v184h163v-184h-163zM280 1219v184h165v-184h-165z" />
176
+ <glyph unicode="&#xe5;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM799 1410q0 -100 -71 -171t-171 -71t-171 71t-71 171q0 101 71 171t171 70 q99 0 170.5 -70.5t71.5 -170.5zM691 1410q0 56 -39 95t-95 39q-57 0 -96 -39t-39 -95q0 -55 38 -96t97 -41q58 0 96 40.5t38 96.5z" />
177
+ <glyph unicode="&#xe6;" horiz-adv-x="1821" d="M968 503v-17q2 -181 77 -276t215 -95q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-321 0 -423 257q-79 -140 -184 -198.5t-251 -58.5q-167 0 -251.5 86t-84.5 236q0 174 119 262t361 92l240 4v59q0 135 -55.5 190.5t-176.5 55.5q-126 0 -182.5 -40t-69.5 -132 l-188 17q46 292 444 292q250 0 349 -139q118 139 346 139q477 0 477 -575v-24h-762zM786 534l-195 -4q-133 -3 -203.5 -29.5t-103.5 -77t-33 -124.5q0 -87 50 -135.5t143 -48.5q102 0 178.5 44.5t120 122t43.5 163.5v89zM1544 641q-15 171 -87 249.5t-207 78.5 q-127 0 -200.5 -85.5t-79.5 -242.5h574z" />
178
+ <glyph unicode="&#xe7;" horiz-adv-x="1024" d="M275 546q0 -216 68 -320t205 -104q96 0 160.5 52t79.5 160l182 -12q-21 -156 -133 -249t-284 -93q-227 0 -346.5 143.5t-119.5 418.5q0 273 120 416.5t344 143.5q166 0 275.5 -86t137.5 -237l-185 -14q-14 90 -71 143t-162 53q-143 0 -207 -95t-64 -320zM751 -253 q0 -181 -274 -181q-57 0 -90 4v98q49 -6 86 -6q147 0 147 81q0 77 -133 77q-43 0 -57 -2l65 182h107l-39 -100q94 -3 141 -43.5t47 -109.5z" />
179
+ <glyph unicode="&#xe8;" d="M276 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-240 0 -365.5 143t-125.5 425q0 268 125.5 411t358.5 143q477 0 477 -575v-24h-772zM862 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584zM657 1201 l-330 278v29h207l217 -287v-20h-94z" />
180
+ <glyph unicode="&#xe9;" d="M276 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-240 0 -365.5 143t-125.5 425q0 268 125.5 411t358.5 143q477 0 477 -575v-24h-772zM862 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584zM440 1201v20 l217 287h207v-29l-330 -278h-94z" />
181
+ <glyph unicode="&#xea;" d="M276 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-240 0 -365.5 143t-125.5 425q0 268 125.5 411t358.5 143q477 0 477 -575v-24h-772zM862 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584zM907 1221v-20 h-105l-219 169h-2l-232 -169h-104v20l234 270h204z" />
182
+ <glyph unicode="&#xeb;" d="M276 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-240 0 -365.5 143t-125.5 425q0 268 125.5 411t358.5 143q477 0 477 -575v-24h-772zM862 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584zM687 1219v184 h163v-184h-163zM293 1219v184h165v-184h-165z" />
183
+ <glyph unicode="&#xec;" horiz-adv-x="569" d="M194 0v1082h180v-1082h-180zM340 1201l-330 278v29h207l217 -287v-20h-94z" />
184
+ <glyph unicode="&#xed;" horiz-adv-x="569" d="M194 0v1082h180v-1082h-180zM135 1201v20l217 287h207v-29l-330 -278h-94z" />
185
+ <glyph unicode="&#xee;" horiz-adv-x="569" d="M194 0v1082h180v-1082h-180zM617 1221v-20h-105l-219 169h-2l-232 -169h-104v20l234 270h204z" />
186
+ <glyph unicode="&#xef;" horiz-adv-x="569" d="M194 0v1082h180v-1082h-180zM402 1219v184h163v-184h-163zM8 1219v184h165v-184h-165z" />
187
+ <glyph unicode="&#xf0;" d="M566 -20q-232 0 -356 129t-124 372q0 244 124 371t363 127q137 0 231 -59q-109 217 -234 331l-301 -133v114l218 94q-109 87 -242 158h209q80 -36 170 -102l306 132l-1 -112l-211 -92q171 -156 258 -359t87 -435v-6q0 -261 -124.5 -395.5t-372.5 -134.5zM874 481 q0 192 -70.5 278.5t-226.5 86.5q-157 0 -229.5 -87t-72.5 -278q0 -190 72 -279t217 -89q161 0 235.5 87.5t74.5 280.5z" />
188
+ <glyph unicode="&#xf1;" d="M829 0v686q0 107 -21 166t-67 85t-135 26q-130 0 -205 -89t-75 -247v-627h-180v851q0 189 -6 231h170q1 -5 2 -27t2.5 -50.5t3.5 -107.5h3q62 112 143.5 158.5t202.5 46.5q178 0 260.5 -88.5t82.5 -292.5v-721h-181zM737 1201q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5 q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
189
+ <glyph unicode="&#xf2;" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325zM659 1201 l-330 278v29h207l217 -287v-20h-94z" />
190
+ <glyph unicode="&#xf3;" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325zM431 1201v20 l217 287h207v-29l-330 -278h-94z" />
191
+ <glyph unicode="&#xf4;" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325zM902 1221 v-20h-105l-219 169h-2l-232 -169h-104v20l234 270h204z" />
192
+ <glyph unicode="&#xf5;" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325zM739 1201 q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
193
+ <glyph unicode="&#xf6;" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325zM689 1219 v184h163v-184h-163zM295 1219v184h165v-184h-165z" />
194
+ <glyph unicode="&#xf7;" horiz-adv-x="1124" d="M478 958v183h168v-183h-168zM65 608v146h995v-146h-995zM478 223v183h168v-183h-168z" />
195
+ <glyph unicode="&#xf8;" horiz-adv-x="1251" d="M1112 542q0 -284 -125 -423t-363 -139q-195 0 -313 98l-100 -116h-167l184 214q-83 138 -83 366q0 560 485 560q201 0 316 -91l91 105h167l-173 -201q81 -133 81 -373zM923 542q0 129 -23 221l-483 -562q68 -88 205 -88q162 0 231.5 104t69.5 325zM334 542 q0 -130 24 -215l482 561q-67 81 -207 81q-158 0 -228.5 -103.5t-70.5 -323.5z" />
196
+ <glyph unicode="&#xf9;" d="M320 1082v-686q0 -107 21 -166t67 -85t135 -26q130 0 205 89t75 247v627h180v-851q0 -189 6 -231h-170q-1 5 -2 27t-2.5 50.5t-3.5 107.5h-3q-62 -112 -143.5 -158.5t-202.5 -46.5q-178 0 -260.5 88.5t-82.5 292.5v721h181zM672 1201l-330 278v29h207l217 -287v-20h-94z " />
197
+ <glyph unicode="&#xfa;" d="M320 1082v-686q0 -107 21 -166t67 -85t135 -26q130 0 205 89t75 247v627h180v-851q0 -189 6 -231h-170q-1 5 -2 27t-2.5 50.5t-3.5 107.5h-3q-62 -112 -143.5 -158.5t-202.5 -46.5q-178 0 -260.5 88.5t-82.5 292.5v721h181zM415 1201v20l217 287h207v-29l-330 -278h-94z " />
198
+ <glyph unicode="&#xfb;" d="M320 1082v-686q0 -107 21 -166t67 -85t135 -26q130 0 205 89t75 247v627h180v-851q0 -189 6 -231h-170q-1 5 -2 27t-2.5 50.5t-3.5 107.5h-3q-62 -112 -143.5 -158.5t-202.5 -46.5q-178 0 -260.5 88.5t-82.5 292.5v721h181zM901 1221v-20h-105l-219 169h-2l-232 -169 h-104v20l234 270h204z" />
199
+ <glyph unicode="&#xfc;" d="M320 1082v-686q0 -107 21 -166t67 -85t135 -26q130 0 205 89t75 247v627h180v-851q0 -189 6 -231h-170q-1 5 -2 27t-2.5 50.5t-3.5 107.5h-3q-62 -112 -143.5 -158.5t-202.5 -46.5q-178 0 -260.5 88.5t-82.5 292.5v721h181zM676 1219v184h163v-184h-163zM282 1219v184 h165v-184h-165z" />
200
+ <glyph unicode="&#xfd;" horiz-adv-x="1024" d="M191 -425q-74 0 -124 11v135q38 -6 84 -6q168 0 266 247l17 43l-429 1077h192l228 -598q5 -14 12 -33.5t45 -130.5t41 -124l70 197l237 689h190l-416 -1082q-67 -173 -125 -257.5t-128.5 -126t-159.5 -41.5zM355 1201v20l217 287h207v-29l-330 -278h-94z" />
201
+ <glyph unicode="&#xfe;" d="M138 1484h180v-423q0 -65 -4 -153h6q48 100 127 146.5t208 46.5q200 0 299 -134t99 -421q0 -566 -398 -566q-250 0 -336 188h-5q4 -8 4 -170v-423h-180v1909zM864 542q0 226 -61 323t-194 97q-107 0 -167.5 -45t-92 -140.5t-31.5 -248.5q0 -213 68 -314t221 -101 q134 0 195.5 98.5t61.5 330.5z" />
202
+ <glyph unicode="&#xff;" horiz-adv-x="1024" d="M191 -425q-74 0 -124 11v135q38 -6 84 -6q168 0 266 247l17 43l-429 1077h192l228 -598q5 -14 12 -33.5t45 -130.5t41 -124l70 197l237 689h190l-416 -1082q-67 -173 -125 -257.5t-128.5 -126t-159.5 -41.5zM626 1219v184h163v-184h-163zM232 1219v184h165v-184h-165z " />
203
+ <glyph unicode="&#x131;" horiz-adv-x="569" d="M194 0v1082h180v-1082h-180z" />
204
+ <glyph unicode="&#x152;" horiz-adv-x="2048" d="M999 0q-67 -10 -210 -10q-323 0 -507.5 193t-184.5 528q0 332 184 520.5t510 188.5q107 0 212 -11h914v-156h-803v-452h743v-154h-743v-491h844v-156h-959zM789 145q82 0 134 4v1111q-44 4 -80.5 4h-51.5q-245 0 -372.5 -143t-127.5 -410q0 -268 131.5 -417t366.5 -149z " />
205
+ <glyph unicode="&#x153;" horiz-adv-x="1933" d="M1070 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-275 0 -396 183q-124 -183 -401 -183q-238 0 -363.5 144.5t-125.5 417.5q0 279 126.5 419.5t368.5 140.5q281 0 398 -177q126 177 386 177q477 0 477 -575v-24h-772zM881 542 q0 219 -69 323t-228 104q-162 0 -235.5 -106.5t-73.5 -320.5q0 -429 298 -429q164 0 236 104t72 325zM1656 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584z" />
206
+ <glyph unicode="&#x178;" horiz-adv-x="1366" d="M777 584v-584h-190v584l-542 825h210l429 -671l427 671h210zM799 1530v184h163v-184h-163zM405 1530v184h165v-184h-165z" />
207
+ <glyph unicode="&#x2c6;" horiz-adv-x="682" d="M662 1221v-20h-105l-219 169h-2l-232 -169h-104v20l234 270h204z" />
208
+ <glyph unicode="&#x2da;" horiz-adv-x="682" d="M535 1410q0 -100 -71 -171t-171 -71t-171 71t-71 171q0 101 71 171t171 70q99 0 170.5 -70.5t71.5 -170.5zM427 1410q0 56 -39 95t-95 39q-57 0 -96 -39t-39 -95q0 -55 38 -96t97 -41q58 0 96 40.5t38 96.5z" />
209
+ <glyph unicode="&#x2dc;" horiz-adv-x="682" d="M492 1201q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
210
+ <glyph unicode="&#x2000;" horiz-adv-x="899" />
211
+ <glyph unicode="&#x2001;" horiz-adv-x="1798" />
212
+ <glyph unicode="&#x2002;" horiz-adv-x="899" />
213
+ <glyph unicode="&#x2003;" horiz-adv-x="1798" />
214
+ <glyph unicode="&#x2004;" horiz-adv-x="599" />
215
+ <glyph unicode="&#x2005;" horiz-adv-x="449" />
216
+ <glyph unicode="&#x2006;" horiz-adv-x="299" />
217
+ <glyph unicode="&#x2007;" horiz-adv-x="299" />
218
+ <glyph unicode="&#x2008;" horiz-adv-x="224" />
219
+ <glyph unicode="&#x2009;" horiz-adv-x="359" />
220
+ <glyph unicode="&#x200a;" horiz-adv-x="99" />
221
+ <glyph unicode="&#x2010;" horiz-adv-x="682" d="M91 464v160h500v-160h-500z" />
222
+ <glyph unicode="&#x2011;" horiz-adv-x="682" d="M91 464v160h500v-160h-500z" />
223
+ <glyph unicode="&#x2012;" horiz-adv-x="682" d="M91 464v160h500v-160h-500z" />
224
+ <glyph unicode="&#x2013;" d="M0 451v137h1138v-137h-1138z" />
225
+ <glyph unicode="&#x2014;" horiz-adv-x="2048" d="M0 451v137h2048v-137h-2048z" />
226
+ <glyph unicode="&#x2018;" horiz-adv-x="455" d="M127 952v146q0 97 18.5 170.5t61.5 140.5h121q-95 -137 -95 -262h89v-195h-195z" />
227
+ <glyph unicode="&#x2019;" horiz-adv-x="455" d="M328 1264q0 -105 -19 -176.5t-59 -135.5h-123q94 136 94 260h-88v197h195v-145z" />
228
+ <glyph unicode="&#x201a;" horiz-adv-x="455" d="M328 51q0 -106 -19 -177t-59 -136h-123q94 136 94 262h-88v195h195v-144z" />
229
+ <glyph unicode="&#x201c;" horiz-adv-x="682" d="M407 952v146q0 95 18 169.5t60 141.5h122q-94 -136 -94 -262h88v-195h-194zM75 952v146q0 97 18.5 170.5t61.5 140.5h121q-95 -137 -95 -262h89v-195h-195z" />
230
+ <glyph unicode="&#x201d;" horiz-adv-x="682" d="M607 1264q0 -93 -17 -166t-62 -146h-121q94 136 94 262h-88v195h194v-145zM276 1264q0 -105 -19 -176.5t-59 -135.5h-123q94 136 94 262h-88v195h195v-145z" />
231
+ <glyph unicode="&#x201e;" horiz-adv-x="682" d="M607 51q0 -95 -17.5 -168.5t-61.5 -144.5h-121q94 136 94 262h-88v195h194v-144zM276 51q0 -106 -19 -177t-59 -136h-123q94 136 94 262h-88v195h195v-144z" />
232
+ <glyph unicode="&#x2022;" horiz-adv-x="717" d="M636 682q0 -113 -81.5 -197t-199.5 -84q-113 0 -193.5 83t-80.5 198t81 194.5t193 79.5q116 0 198.5 -80.5t82.5 -193.5z" />
233
+ <glyph unicode="&#x2026;" horiz-adv-x="2048" d="M1576 0v219h194v-219h-194zM929 0v219h192v-219h-192zM278 0v219h195v-219h-195z" />
234
+ <glyph unicode="&#x202f;" horiz-adv-x="359" />
235
+ <glyph unicode="&#x2039;" horiz-adv-x="682" d="M424 141l-336 365v63l336 371h167v-31l-335 -372l337 -367v-29h-169z" />
236
+ <glyph unicode="&#x203a;" horiz-adv-x="682" d="M257 141h-168v29l338 367l-336 372v31h166l337 -371v-63z" />
237
+ <glyph unicode="&#x2044;" horiz-adv-x="342" d="M-268 0h-148l881 1409h145z" />
238
+ <glyph unicode="&#x205f;" horiz-adv-x="449" />
239
+ <glyph unicode="&#x2074;" horiz-adv-x="682" d="M551 741v-178h-131v178h-406v111l386 557h151v-555h111v-113h-111zM422 1276q-21 -40 -82 -135l-199 -287h279v360z" />
240
+ <glyph unicode="&#x20ac;" d="M691 126q100 0 160 50t74 141l185 -14q-30 -155 -139.5 -239t-283.5 -84q-217 0 -343.5 131t-156.5 391h-171l40 129h120l-3 78l3 86h-160l40 127h129q32 257 156 382.5t343 125.5q175 0 284.5 -84.5t138.5 -238.5l-185 -14q-14 91 -74.5 141t-166.5 50 q-142 0 -217.5 -87t-96.5 -275h446l-40 -127h-413q-3 -24 -3 -86q0 -40 4 -78h452l-40 -129h-404q22 -195 103 -285.5t219 -90.5z" />
241
+ <glyph unicode="&#x2122;" horiz-adv-x="2048" d="M1691 634v619l-9 -22l-11 -32l-230 -565h-108l-163 413l-77 206l-1 -20l-1 -17v-582h-128v775h190l223 -563l15 -42l74 192l168 413h184v-775h-126zM577 1298v-664h-134v664h-255v111h650v-111h-261z" />
242
+ <glyph unicode="&#x2219;" horiz-adv-x="569" d="M187 446v220h195v-220h-195z" />
243
+ <glyph unicode="&#x25fc;" horiz-adv-x="1080" d="M0 1080h1080v-1080h-1080v1080z" />
244
+ <glyph unicode="&#xfb01;" horiz-adv-x="1024" d="M361 951v-951h-180v951h-152v131h152v122q0 148 65 213t199 65q75 0 127 -12v-137q-45 8 -80 8q-69 0 -100 -35t-31 -127v-97h211v-131h-211zM706 1312v172h180v-172h-180zM706 0v1082h180v-1082h-180z" />
245
+ <glyph unicode="&#xfb02;" horiz-adv-x="1024" d="M361 951v-951h-180v951h-152v131h152v122q0 148 65 213t199 65q75 0 127 -12v-137q-45 8 -80 8q-69 0 -100 -35t-31 -127v-97h211v-131h-211zM707 0v1484h180v-1484h-180z" />
246
+ <glyph horiz-adv-x="602" d="M416 1530l-310 217v29h207l217 -226v-20h-114z" />
247
+ <glyph horiz-adv-x="602" d="M72 1530v20l217 226h207v-29l-310 -217h-114z" />
248
+ <glyph horiz-adv-x="664" d="M662 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
249
+ <glyph horiz-adv-x="647" d="M439 1530v184h163v-184h-163zM45 1530v184h165v-184h-165z" />
250
+ <glyph horiz-adv-x="672" d="M492 1530q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
251
+ <hkern u1="&#x20;" u2="Y" k="37" />
252
+ <hkern u1="&#x20;" u2="T" k="37" />
253
+ <hkern u1="&#x20;" u2="A" k="113" />
254
+ <hkern u1="&#x31;" u2="&#x31;" k="152" />
255
+ <hkern u1="A" u2="&#x2019;" k="152" />
256
+ <hkern u1="A" u2="y" k="37" />
257
+ <hkern u1="A" u2="w" k="37" />
258
+ <hkern u1="A" u2="v" k="37" />
259
+ <hkern u1="A" u2="Y" k="152" />
260
+ <hkern u1="A" u2="W" k="76" />
261
+ <hkern u1="A" u2="V" k="152" />
262
+ <hkern u1="A" u2="T" k="152" />
263
+ <hkern u1="A" u2="&#x20;" k="113" />
264
+ <hkern u1="F" u2="A" k="113" />
265
+ <hkern u1="F" u2="&#x2e;" k="227" />
266
+ <hkern u1="F" u2="&#x2c;" k="227" />
267
+ <hkern u1="L" u2="&#x2019;" k="113" />
268
+ <hkern u1="L" u2="y" k="76" />
269
+ <hkern u1="L" u2="Y" k="152" />
270
+ <hkern u1="L" u2="W" k="152" />
271
+ <hkern u1="L" u2="V" k="152" />
272
+ <hkern u1="L" u2="T" k="152" />
273
+ <hkern u1="L" u2="&#x20;" k="76" />
274
+ <hkern u1="P" u2="A" k="152" />
275
+ <hkern u1="P" u2="&#x2e;" k="264" />
276
+ <hkern u1="P" u2="&#x2c;" k="264" />
277
+ <hkern u1="P" u2="&#x20;" k="37" />
278
+ <hkern u1="R" u2="Y" k="37" />
279
+ <hkern u1="R" u2="W" k="37" />
280
+ <hkern u1="R" u2="V" k="37" />
281
+ <hkern u1="R" u2="T" k="37" />
282
+ <hkern u1="T" u2="y" k="113" />
283
+ <hkern u1="T" u2="w" k="113" />
284
+ <hkern u1="T" u2="u" k="76" />
285
+ <hkern u1="T" u2="s" k="227" />
286
+ <hkern u1="T" u2="r" k="76" />
287
+ <hkern u1="T" u2="o" k="227" />
288
+ <hkern u1="T" u2="i" k="76" />
289
+ <hkern u1="T" u2="e" k="227" />
290
+ <hkern u1="T" u2="c" k="227" />
291
+ <hkern u1="T" u2="a" k="227" />
292
+ <hkern u1="T" u2="O" k="37" />
293
+ <hkern u1="T" u2="A" k="152" />
294
+ <hkern u1="T" u2="&#x3b;" k="227" />
295
+ <hkern u1="T" u2="&#x3a;" k="227" />
296
+ <hkern u1="T" u2="&#x2e;" k="227" />
297
+ <hkern u1="T" u2="&#x2d;" k="113" />
298
+ <hkern u1="T" u2="&#x2c;" k="227" />
299
+ <hkern u1="T" u2="&#x20;" k="37" />
300
+ <hkern u1="V" u2="y" k="76" />
301
+ <hkern u1="V" u2="u" k="76" />
302
+ <hkern u1="V" u2="r" k="76" />
303
+ <hkern u1="V" u2="o" k="113" />
304
+ <hkern u1="V" u2="i" k="37" />
305
+ <hkern u1="V" u2="e" k="113" />
306
+ <hkern u1="V" u2="a" k="152" />
307
+ <hkern u1="V" u2="A" k="152" />
308
+ <hkern u1="V" u2="&#x3b;" k="76" />
309
+ <hkern u1="V" u2="&#x3a;" k="76" />
310
+ <hkern u1="V" u2="&#x2e;" k="188" />
311
+ <hkern u1="V" u2="&#x2d;" k="113" />
312
+ <hkern u1="V" u2="&#x2c;" k="188" />
313
+ <hkern u1="W" u2="y" k="18" />
314
+ <hkern u1="W" u2="u" k="37" />
315
+ <hkern u1="W" u2="r" k="37" />
316
+ <hkern u1="W" u2="o" k="37" />
317
+ <hkern u1="W" u2="e" k="37" />
318
+ <hkern u1="W" u2="a" k="76" />
319
+ <hkern u1="W" u2="A" k="76" />
320
+ <hkern u1="W" u2="&#x3b;" k="37" />
321
+ <hkern u1="W" u2="&#x3a;" k="37" />
322
+ <hkern u1="W" u2="&#x2e;" k="113" />
323
+ <hkern u1="W" u2="&#x2d;" k="37" />
324
+ <hkern u1="W" u2="&#x2c;" k="113" />
325
+ <hkern u1="Y" u2="v" k="113" />
326
+ <hkern u1="Y" u2="u" k="113" />
327
+ <hkern u1="Y" u2="q" k="188" />
328
+ <hkern u1="Y" u2="p" k="152" />
329
+ <hkern u1="Y" u2="o" k="188" />
330
+ <hkern u1="Y" u2="i" k="76" />
331
+ <hkern u1="Y" u2="e" k="188" />
332
+ <hkern u1="Y" u2="a" k="152" />
333
+ <hkern u1="Y" u2="A" k="152" />
334
+ <hkern u1="Y" u2="&#x3b;" k="133" />
335
+ <hkern u1="Y" u2="&#x3a;" k="113" />
336
+ <hkern u1="Y" u2="&#x2e;" k="264" />
337
+ <hkern u1="Y" u2="&#x2d;" k="188" />
338
+ <hkern u1="Y" u2="&#x2c;" k="264" />
339
+ <hkern u1="Y" u2="&#x20;" k="37" />
340
+ <hkern u1="f" u2="&#x2019;" k="-37" />
341
+ <hkern u1="f" u2="f" k="37" />
342
+ <hkern u1="r" u2="&#x2019;" k="-76" />
343
+ <hkern u1="r" u2="&#x2e;" k="113" />
344
+ <hkern u1="r" u2="&#x2c;" k="113" />
345
+ <hkern u1="v" u2="&#x2e;" k="152" />
346
+ <hkern u1="v" u2="&#x2c;" k="152" />
347
+ <hkern u1="w" u2="&#x2e;" k="113" />
348
+ <hkern u1="w" u2="&#x2c;" k="113" />
349
+ <hkern u1="y" u2="&#x2e;" k="152" />
350
+ <hkern u1="y" u2="&#x2c;" k="152" />
351
+ <hkern u1="&#x2018;" u2="&#x2018;" k="37" />
352
+ <hkern u1="&#x2019;" u2="&#x2019;" k="37" />
353
+ <hkern u1="&#x2019;" u2="s" k="37" />
354
+ <hkern u1="&#x2019;" u2="&#x20;" k="76" />
355
+ </font>
356
+ </defs></svg>
metadata CHANGED
@@ -1,26 +1,137 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qr-bills
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damiano Radice
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-24 00:00:00.000000000 Z
12
- dependencies: []
13
- description: ''
14
- email: damoiser@gmail.com
11
+ date: 2020-07-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: i18n
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.8.3
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 1.8.3
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rqrcode
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.1.2
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '2'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 1.1.2
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '2'
53
+ - !ruby/object:Gem::Dependency
54
+ name: rmagick
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 4.1.2
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '5'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 4.1.2
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '5'
73
+ - !ruby/object:Gem::Dependency
74
+ name: rspec
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '3.9'
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '3.9'
87
+ - !ruby/object:Gem::Dependency
88
+ name: rake
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '13.0'
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: '13.0'
101
+ description: 'QR-bills support for swiss payments, for full documentation please refer
102
+ to github repo: https://github.com/damoiser/qr-bills'
103
+ email: damoiser+qrbill@gmail.com
15
104
  executables: []
16
105
  extensions: []
17
106
  extra_rdoc_files: []
18
107
  files:
108
+ - config/locales/de.yml
109
+ - config/locales/en.yml
110
+ - config/locales/fr.yml
111
+ - config/locales/it.yml
19
112
  - lib/qr-bills.rb
20
- homepage: https://rubygems.org/gems/qr-bills
113
+ - lib/qr-bills/qr-exceptions.rb
114
+ - lib/qr-bills/qr-generator.rb
115
+ - lib/qr-bills/qr-html-layout.rb
116
+ - lib/qr-bills/qr-params.rb
117
+ - web/assets/fonts/LiberationSans-Regular.eot
118
+ - web/assets/fonts/LiberationSans-Regular.svg
119
+ - web/assets/fonts/LiberationSans-Regular.ttf
120
+ - web/assets/fonts/LiberationSans-Regular.woff
121
+ - web/assets/images/amoint_40x15mm.png
122
+ - web/assets/images/payable_by_65x25mm.png
123
+ - web/assets/images/scissors_symbol.png
124
+ - web/assets/images/swiss_cross.png
125
+ homepage: https://github.com/damoiser/qr-bills
21
126
  licenses:
22
127
  - MIT
23
- metadata: {}
128
+ metadata:
129
+ bug_tracker_uri: https://github.com/damoiser/qr-bills/issues
130
+ changelog_uri: https://github.com/damoiser/qr-bills/CHANGELOG.md
131
+ documentation_uri: https://github.com/damoiser/qr-bills/README.md
132
+ homepage_uri: https://github.com/damoiser/qr-bills
133
+ source_code_uri: https://github.com/damoiser/qr-bills
134
+ wiki_uri: https://github.com/damoiser/qr-bills
24
135
  post_install_message:
25
136
  rdoc_options: []
26
137
  require_paths:
@@ -29,15 +140,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
29
140
  requirements:
30
141
  - - ">="
31
142
  - !ruby/object:Gem::Version
32
- version: '0'
143
+ version: 2.7.1
33
144
  required_rubygems_version: !ruby/object:Gem::Requirement
34
145
  requirements:
35
146
  - - ">="
36
147
  - !ruby/object:Gem::Version
37
148
  version: '0'
38
149
  requirements: []
39
- rubyforge_project:
40
- rubygems_version: 2.4.5
150
+ rubygems_version: 3.1.2
41
151
  signing_key:
42
152
  specification_version: 4
43
153
  summary: QR-bills support for swiss payments