Mollie Payments for WooCommerce - Version 2.0

Version Description

Download this release

Release Info

Developer l.vangunst
Plugin Icon wp plugin Mollie Payments for WooCommerce
Version 2.0
Comparing to
See all releases

Version 2.0

Files changed (83) hide show
  1. assets/images/banktransfer.png +0 -0
  2. assets/images/banktransfer@2x.png +0 -0
  3. assets/images/belfius.png +0 -0
  4. assets/images/belfius@2x.png +0 -0
  5. assets/images/bitcoin.png +0 -0
  6. assets/images/bitcoin@2x.png +0 -0
  7. assets/images/creditcard.png +0 -0
  8. assets/images/creditcard@2x.png +0 -0
  9. assets/images/ideal.png +0 -0
  10. assets/images/ideal@2x.png +0 -0
  11. assets/images/mistercash.png +0 -0
  12. assets/images/mistercash@2x.png +0 -0
  13. assets/images/paypal.png +0 -0
  14. assets/images/paypal@2x.png +0 -0
  15. assets/images/paysafecard.png +0 -0
  16. assets/images/paysafecard@2x.png +0 -0
  17. assets/images/sofort.png +0 -0
  18. assets/images/sofort@2x.png +0 -0
  19. assets/js/settings.js +12 -0
  20. i18n/languages/mollie-payments-for-woocommerce-de_DE.mo +0 -0
  21. i18n/languages/mollie-payments-for-woocommerce-de_DE.po +573 -0
  22. i18n/languages/mollie-payments-for-woocommerce-fr_FR.mo +0 -0
  23. i18n/languages/mollie-payments-for-woocommerce-fr_FR.po +576 -0
  24. i18n/languages/mollie-payments-for-woocommerce-nl_NL.mo +0 -0
  25. i18n/languages/mollie-payments-for-woocommerce-nl_NL.po +577 -0
  26. i18n/languages/mollie-payments-for-woocommerce.pot +530 -0
  27. includes/mollie-api-php/LICENSE +8 -0
  28. includes/mollie-api-php/README.mdown +145 -0
  29. includes/mollie-api-php/build.xml +75 -0
  30. includes/mollie-api-php/composer.json +26 -0
  31. includes/mollie-api-php/examples/1-new-payment.php +69 -0
  32. includes/mollie-api-php/examples/2-webhook-verification.php +54 -0
  33. includes/mollie-api-php/examples/3-return-page.php +35 -0
  34. includes/mollie-api-php/examples/4-ideal-payment.php +96 -0
  35. includes/mollie-api-php/examples/5-payments-history.php +28 -0
  36. includes/mollie-api-php/examples/6-list-activated-methods.php +33 -0
  37. includes/mollie-api-php/examples/7-refund-payment.php +35 -0
  38. includes/mollie-api-php/examples/8-custom-payment-webhook.php +71 -0
  39. includes/mollie-api-php/examples/initialize.php +11 -0
  40. includes/mollie-api-php/phpunit.xml +17 -0
  41. includes/mollie-api-php/src/Mollie/API/Autoloader.php +68 -0
  42. includes/mollie-api-php/src/Mollie/API/Client.php +306 -0
  43. includes/mollie-api-php/src/Mollie/API/CompatibilityChecker.php +158 -0
  44. includes/mollie-api-php/src/Mollie/API/Exception.php +54 -0
  45. includes/mollie-api-php/src/Mollie/API/Exception/IncompatiblePlatform.php +38 -0
  46. includes/mollie-api-php/src/Mollie/API/Object/Issuer.php +55 -0
  47. includes/mollie-api-php/src/Mollie/API/Object/List.php +54 -0
  48. includes/mollie-api-php/src/Mollie/API/Object/Method.php +132 -0
  49. includes/mollie-api-php/src/Mollie/API/Object/Payment.php +279 -0
  50. includes/mollie-api-php/src/Mollie/API/Object/Payment/Refund.php +61 -0
  51. includes/mollie-api-php/src/Mollie/API/Resource/Base.php +250 -0
  52. includes/mollie-api-php/src/Mollie/API/Resource/Issuers.php +44 -0
  53. includes/mollie-api-php/src/Mollie/API/Resource/Methods.php +44 -0
  54. includes/mollie-api-php/src/Mollie/API/Resource/Payments.php +102 -0
  55. includes/mollie-api-php/src/Mollie/API/Resource/Payments/Refunds.php +69 -0
  56. includes/mollie-api-php/src/Mollie/API/cacert.pem +3860 -0
  57. includes/mollie-api-php/tests/apiUnitTest.php +277 -0
  58. includes/mollie-api-php/tests/bootstrap.php +5 -0
  59. includes/mollie-api-php/tests/compatibilityCheckerUnitTest.php +110 -0
  60. includes/mollie/wc/autoload.php +72 -0
  61. includes/mollie/wc/exception.php +2 -0
  62. includes/mollie/wc/exception/couldnotconnecttomollie.php +2 -0
  63. includes/mollie/wc/exception/incompatibleplatform.php +6 -0
  64. includes/mollie/wc/exception/invalidapikey.php +2 -0
  65. includes/mollie/wc/gateway/abstract.php +774 -0
  66. includes/mollie/wc/gateway/banktransfer.php +199 -0
  67. includes/mollie/wc/gateway/belfius.php +40 -0
  68. includes/mollie/wc/gateway/bitcoin.php +27 -0
  69. includes/mollie/wc/gateway/creditcard.php +63 -0
  70. includes/mollie/wc/gateway/ideal.php +95 -0
  71. includes/mollie/wc/gateway/mistercash.php +40 -0
  72. includes/mollie/wc/gateway/paypal.php +65 -0
  73. includes/mollie/wc/gateway/paysafecard.php +27 -0
  74. includes/mollie/wc/gateway/sofort.php +65 -0
  75. includes/mollie/wc/helper/api.php +66 -0
  76. includes/mollie/wc/helper/data.php +458 -0
  77. includes/mollie/wc/helper/settings.php +421 -0
  78. includes/mollie/wc/helper/status.php +176 -0
  79. includes/mollie/wc/plugin.php +351 -0
  80. includes/woocommerce_functions.php +38 -0
  81. license.txt +357 -0
  82. mollie-payments-for-woocommerce.php +99 -0
  83. readme.txt +114 -0
assets/images/banktransfer.png ADDED
Binary file
assets/images/banktransfer@2x.png ADDED
Binary file
assets/images/belfius.png ADDED
Binary file
assets/images/belfius@2x.png ADDED
Binary file
assets/images/bitcoin.png ADDED
Binary file
assets/images/bitcoin@2x.png ADDED
Binary file
assets/images/creditcard.png ADDED
Binary file
assets/images/creditcard@2x.png ADDED
Binary file
assets/images/ideal.png ADDED
Binary file
assets/images/ideal@2x.png ADDED
Binary file
assets/images/mistercash.png ADDED
Binary file
assets/images/mistercash@2x.png ADDED
Binary file
assets/images/paypal.png ADDED
Binary file
assets/images/paypal@2x.png ADDED
Binary file
assets/images/paysafecard.png ADDED
Binary file
assets/images/paysafecard@2x.png ADDED
Binary file
assets/images/sofort.png ADDED
Binary file
assets/images/sofort@2x.png ADDED
Binary file
assets/js/settings.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function($) {
2
+ $('#mollie-payments-for-woocommerce_test_mode_enabled').change(function() {
3
+ if ($(this).is(':checked'))
4
+ {
5
+ $('#mollie-payments-for-woocommerce_test_api_key').attr('required', true).closest('tr').show();
6
+ }
7
+ else
8
+ {
9
+ $('#mollie-payments-for-woocommerce_test_api_key').removeAttr('required').closest('tr').hide();
10
+ }
11
+ }).change();
12
+ });
i18n/languages/mollie-payments-for-woocommerce-de_DE.mo ADDED
Binary file
i18n/languages/mollie-payments-for-woocommerce-de_DE.po ADDED
@@ -0,0 +1,573 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 Mollie Payments for WooCommerce
2
+ # This file is distributed under the same license as the Mollie Payments for WooCommerce package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Mollie Payments for WooCommerce 2.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/mollie-payments-for-woocommerce\n"
7
+ "POT-Creation-Date: 2015-08-14 13:09+0200\n"
8
+ "PO-Revision-Date: 2015-08-14 13:09+0200\n"
9
+ "Last-Translator: Lennard van Gunst <lennard@mollie.com>\n"
10
+ "Language-Team: Mollie <info@mollie.com>\n"
11
+ "Language: de\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Poedit 1.8.4\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+
18
+ #: includes/mollie/wc/gateway/abstract.php:60
19
+ msgid "Enable/Disable"
20
+ msgstr "Einschalten/Ausschalten"
21
+
22
+ #: includes/mollie/wc/gateway/abstract.php:62
23
+ msgid "Enable %s"
24
+ msgstr "Einschalten %s"
25
+
26
+ #: includes/mollie/wc/gateway/abstract.php:66
27
+ msgid "Title"
28
+ msgstr "Titel"
29
+
30
+ #: includes/mollie/wc/gateway/abstract.php:68
31
+ msgid "This controls the title which the user sees during checkout. Default <code>%s</code>"
32
+ msgstr ""
33
+ "Hiermit zeigen Sie den Titel an die Ihre Kunde sehen während der checkout. Standard <code>%s</"
34
+ "code>"
35
+
36
+ #: includes/mollie/wc/gateway/abstract.php:73
37
+ msgid "Display logo"
38
+ msgstr "Logo anzeigen"
39
+
40
+ #: includes/mollie/wc/gateway/abstract.php:75
41
+ msgid "Display logo on checkout page. Default <code>enabled</code>"
42
+ msgstr "Logo anzeigen auf checkout Seite. Standard <code>aktiviert</code>"
43
+
44
+ #: includes/mollie/wc/gateway/abstract.php:79 includes/mollie/wc/helper/settings.php:330
45
+ msgid "Description"
46
+ msgstr "Umschreibung"
47
+
48
+ #: includes/mollie/wc/gateway/abstract.php:81
49
+ msgid ""
50
+ "Payment method description that the customer will see on your checkout. Default <code>%s</code>"
51
+ msgstr ""
52
+ "Umschreibung Zahlungsmethode die Ihre Kunde sehen in Ihren checkout. Standard <code>%s</code>"
53
+
54
+ #: includes/mollie/wc/gateway/abstract.php:111 includes/mollie/wc/gateway/abstract.php:146
55
+ #: includes/mollie/wc/helper/settings.php:187
56
+ msgid "Test mode enabled."
57
+ msgstr "Test Modus eingeschaltet"
58
+
59
+ #: includes/mollie/wc/gateway/abstract.php:123
60
+ msgid "Gateway Disabled"
61
+ msgstr "Eingangstor ausgeschaltet"
62
+
63
+ #. translators: The surrounding %s's Will be replaced by a link to the global
64
+ #. setting page
65
+ #: includes/mollie/wc/gateway/abstract.php:148
66
+ msgid "No API key provided. Please %sset you Mollie API key%s first."
67
+ msgstr "Kein API key eingetragen. Bitte %sfüllen Sie erst der Mollie API key%s aus."
68
+
69
+ #. translators: Placeholder 1: payment method title. The surrounding %s's Will
70
+ #. be replaced by a link to the Mollie profile
71
+ #: includes/mollie/wc/gateway/abstract.php:160
72
+ msgid ""
73
+ "%s not enabled in your Mollie profile. You can enabled it by editing your %sMollie profile%s."
74
+ msgstr ""
75
+ "%s nicht eingeschaltet in Ihres Mollie Profil. Sie können es einschalten in Ihres %sMollie "
76
+ "Profil%s."
77
+
78
+ #. translators: Placeholder 1: WooCommerce currency, placeholder 2: Supported
79
+ #. Mollie currencies
80
+ #: includes/mollie/wc/gateway/abstract.php:173
81
+ msgid "Shop currency %s not supported by Mollie. Mollie only supports: %s."
82
+ msgstr "Geschäft Valuta %s nicht unterstützt durch Mollie. Mollie understützt nur: %s."
83
+
84
+ #: includes/mollie/wc/gateway/abstract.php:196
85
+ msgid "Could not load order %s"
86
+ msgstr "Kann Bestellung nicht einladen %s"
87
+
88
+ #: includes/mollie/wc/gateway/abstract.php:213
89
+ msgid "Awaiting payment confirmation."
90
+ msgstr "Warten auf Zahlungsbestätigung"
91
+
92
+ #. translators: Placeholder 1: Payment method title, placeholder 2: payment ID
93
+ #: includes/mollie/wc/gateway/abstract.php:276
94
+ msgid "%s payment started (%s)."
95
+ msgstr "%s anfang Zahlung (%s)."
96
+
97
+ #: includes/mollie/wc/gateway/abstract.php:278 includes/mollie/wc/gateway/abstract.php:401
98
+ #: includes/mollie/wc/gateway/abstract.php:432 includes/mollie/wc/gateway/abstract.php:457
99
+ #: includes/mollie/wc/gateway/abstract.php:476
100
+ msgid "test mode"
101
+ msgstr "test Modus"
102
+
103
+ #. translators: Placeholder 1: Payment method title
104
+ #: includes/mollie/wc/gateway/abstract.php:291
105
+ msgid "Could not create %s payment."
106
+ msgstr "Kann Zahlung %s nicht anmachen."
107
+
108
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment
109
+ #. status, placeholder 3: payment ID
110
+ #: includes/mollie/wc/gateway/abstract.php:398
111
+ msgid "%s payment %s (%s)."
112
+ msgstr "%s Zahlung %s (%s)."
113
+
114
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
115
+ #: includes/mollie/wc/gateway/abstract.php:430
116
+ msgid "Order completed using %s payment (%s)."
117
+ msgstr "Bestellung abgerundet mit %s Zahlung (%s)."
118
+
119
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
120
+ #: includes/mollie/wc/gateway/abstract.php:455
121
+ msgid "%s payment cancelled (%s)."
122
+ msgstr "%s Zahlung annulliert (%s)."
123
+
124
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
125
+ #: includes/mollie/wc/gateway/abstract.php:474
126
+ msgid "%s payment expired (%s)."
127
+ msgstr "%s Zahlung verstrichen (%s)."
128
+
129
+ #: includes/mollie/wc/gateway/abstract.php:490
130
+ msgid ""
131
+ "You have cancelled your payment. Please complete your order with a different payment method."
132
+ msgstr ""
133
+ "Sie haben Ihre Zahlung annuliert. Bitte komplettieren Sie Ihre Bestellung mit einer anderen "
134
+ "Zahlungsmethode."
135
+
136
+ #. translators: Placeholder 1: currency, placeholder 2: refunded amount,
137
+ #. placeholder 3: optional refund reason, placeholder 4: payment ID,
138
+ #. placeholder 5: refund ID
139
+ #: includes/mollie/wc/gateway/abstract.php:550
140
+ msgid "Refunded %s%s (reason: %s) - Payment ID: %s, Refund: %s"
141
+ msgstr "Rückgezahlt %s%s (Grund: %s) - Zahlung ID: %s, Rückzahlung: %s"
142
+
143
+ #: includes/mollie/wc/gateway/abstract.php:619
144
+ msgid "Payment"
145
+ msgstr "Zahlung"
146
+
147
+ #: includes/mollie/wc/gateway/abstract.php:640
148
+ msgid "We have not received a definite payment status."
149
+ msgstr "Wir haben nicht einen definitiven Zahlungsstatus empfangen."
150
+
151
+ #: includes/mollie/wc/gateway/abstract.php:645
152
+ msgid ""
153
+ "We have not received a definite payment status. You will receive an email as soon as we "
154
+ "receive a confirmation of the bank/merchant."
155
+ msgstr ""
156
+ "Wir haben nicht einen definitiven Zahlungsstatus empfangen. Sie empfangen eine E-mail wenn wir "
157
+ "die Bestätigung der Bank/des Vertreter empfangen haben."
158
+
159
+ #: includes/mollie/wc/gateway/banktransfer.php:32
160
+ msgid "Expiry date"
161
+ msgstr "Ablaufdatum"
162
+
163
+ #: includes/mollie/wc/gateway/banktransfer.php:34
164
+ msgid "Number of days after the payment will expire. Default <code>%d</code> days"
165
+ msgstr "Anzahl Tage wann die Zahlung verstreiche. Standard <code>%d</code> Tage"
166
+
167
+ #: includes/mollie/wc/gateway/banktransfer.php:43
168
+ msgid "Mail payment instructions"
169
+ msgstr "E-mail Zahlung Gebrauchsanleitung"
170
+
171
+ #. translators: Placeholder 1: enabled or disabled
172
+ #: includes/mollie/wc/gateway/banktransfer.php:45
173
+ msgid ""
174
+ "Should Mollie automatically mail the payment instructions to the customer? Default <code>%s</"
175
+ "code>"
176
+ msgstr ""
177
+ "Sollte Mollie automatisch eine E-mail schicken mit einer Zahlung Gebrauchsanleitung an Ihren "
178
+ "Kunde? Standard <code>%s</code>"
179
+
180
+ #: includes/mollie/wc/gateway/banktransfer.php:45 includes/mollie/wc/helper/settings.php:181
181
+ msgid "Disabled"
182
+ msgstr "Ausgeschaltet"
183
+
184
+ #: includes/mollie/wc/gateway/banktransfer.php:48
185
+ msgid ""
186
+ "If you disable this option the customer still has an option to send the payment instructions "
187
+ "to an email address on the Mollie payment screen."
188
+ msgstr ""
189
+ "Wenn Sie diese Alternative ausschaltet ist es noch möglich vor Ihrem Kunde um die Zahlung "
190
+ "Gebrauchsanleitung zu schicken per E-mail in den Mollie Zahlungsschirm."
191
+
192
+ #: includes/mollie/wc/gateway/banktransfer.php:93
193
+ msgid "Bank Transfer"
194
+ msgstr "Banküberweisung"
195
+
196
+ #. translators: Placeholder 1: consumer name, placeholder 2: consumer IBAN,
197
+ #. placeholder 3: consumer BIC
198
+ #: includes/mollie/wc/gateway/banktransfer.php:144 includes/mollie/wc/gateway/ideal.php:86
199
+ #: includes/mollie/wc/gateway/sofort.php:56
200
+ msgid "Payment completed by <strong>%s</strong> (IBAN: %s, BIC: %s)"
201
+ msgstr "Zahlung abgerundet durch <strong>%s</strong> (IBAN: %s, BIC: %s)"
202
+
203
+ #: includes/mollie/wc/gateway/banktransfer.php:154
204
+ msgid ""
205
+ "Please complete your payment by transferring the total amount to the following bank account:"
206
+ msgstr ""
207
+ "Bitte runden Sie die Zahlung ab um das ganze Betrag zu überweisen zu dem folgenden Konto:"
208
+
209
+ #. translators: Placeholder 1: 'Stichting Mollie Payments'
210
+ #: includes/mollie/wc/gateway/banktransfer.php:158
211
+ msgid "Beneficiary: %s"
212
+ msgstr "Bevorzugte: %s"
213
+
214
+ #: includes/mollie/wc/gateway/banktransfer.php:159
215
+ msgid "IBAN: <strong>%s</strong>"
216
+ msgstr "IBAN: <strong>%s</strong>"
217
+
218
+ #: includes/mollie/wc/gateway/banktransfer.php:160
219
+ msgid "BIC: %s"
220
+ msgstr "BIC: %s"
221
+
222
+ #. translators: Placeholder 1: Payment reference e.g. RF49-0000-4716-6216
223
+ #. (SEPA) or +++513/7587/59959+++ (Belgium)
224
+ #: includes/mollie/wc/gateway/banktransfer.php:165
225
+ msgid "Payment reference: %s"
226
+ msgstr "Zahlungs Referenznummer: %s"
227
+
228
+ #. translators: Placeholder 1: Payment reference e.g. RF49-0000-4716-6216
229
+ #. (SEPA) or +++513/7587/59959+++ (Belgium)
230
+ #: includes/mollie/wc/gateway/banktransfer.php:170
231
+ msgid "Please provide the payment reference <strong>%s</strong>"
232
+ msgstr "Bitte benutzen Sie die Zahlungs Refenznummer <strong>%s</strong>"
233
+
234
+ #: includes/mollie/wc/gateway/banktransfer.php:183
235
+ msgid "The payment will expire on <strong>%s</strong>."
236
+ msgstr "Die Zahlung verstreiche am <strong>%s</strong>."
237
+
238
+ #: includes/mollie/wc/gateway/banktransfer.php:190
239
+ msgid ""
240
+ "The payment will expire on <strong>%s</strong>. Please make sure you transfer the total amount "
241
+ "before this date."
242
+ msgstr ""
243
+ "Die Zahlung verstreiche am <strong>%s</strong>. Bitte überweisen Sie den ganzen Betrag vor "
244
+ "diesem Datum."
245
+
246
+ #: includes/mollie/wc/gateway/belfius.php:30
247
+ msgid "Belfius Direct Net"
248
+ msgstr "Belfius Direct Net"
249
+
250
+ #: includes/mollie/wc/gateway/bitcoin.php:17
251
+ msgid "Bitcoin"
252
+ msgstr "Bitcoin"
253
+
254
+ #: includes/mollie/wc/gateway/creditcard.php:30
255
+ msgid "Credit card"
256
+ msgstr "Credit card"
257
+
258
+ #. translators: Placeholder 1: card holder
259
+ #: includes/mollie/wc/gateway/creditcard.php:56
260
+ msgid "Payment completed by <strong>%s</strong>"
261
+ msgstr "Zahlung abgerundet durch <strong>%s</strong>"
262
+
263
+ #: includes/mollie/wc/gateway/ideal.php:33
264
+ msgid "iDEAL"
265
+ msgstr "iDEAL"
266
+
267
+ #. translators: Default iDEAL description, displayed above issuer drop down
268
+ #: includes/mollie/wc/gateway/ideal.php:42
269
+ msgid "Select your bank"
270
+ msgstr "Wähl Ihre Bank"
271
+
272
+ #: includes/mollie/wc/gateway/mistercash.php:30
273
+ msgid "Bancontact / Mister Cash"
274
+ msgstr "Bancontact / Mister Cash"
275
+
276
+ #: includes/mollie/wc/gateway/paypal.php:30
277
+ msgid "PayPal"
278
+ msgstr "PayPal"
279
+
280
+ #. translators: Placeholder 1: PayPal consumer name, placeholder 2: PayPal
281
+ #. email, placeholder 3: PayPal transaction ID
282
+ #: includes/mollie/wc/gateway/paypal.php:56
283
+ msgid "Payment completed by <strong>%s</strong> - %s (PayPal transaction ID: %s)"
284
+ msgstr "Zahlung abgerundet durch <strong>%s</strong> - %s (PayPal transaktion ID: %s)"
285
+
286
+ #: includes/mollie/wc/gateway/paysafecard.php:17
287
+ msgid "paysafecard"
288
+ msgstr "paysafecard"
289
+
290
+ #: includes/mollie/wc/gateway/sofort.php:30
291
+ msgid "SOFORT Banking"
292
+ msgstr "SOFORT Banking"
293
+
294
+ #: includes/mollie/wc/helper/api.php:35
295
+ msgid "No API key provided."
296
+ msgstr "Kein API key eingegeben."
297
+
298
+ #: includes/mollie/wc/helper/api.php:39
299
+ msgid ""
300
+ "Invalid API key. The API key must start with 'live_' or 'test_' and can't further contain any "
301
+ "special characters."
302
+ msgstr ""
303
+ "API key ist ungültig. Der API key muss anfangen mit ‘live_’ oder ‘test_’ und kann nicht "
304
+ "anderes speziales Zeichen enthalten."
305
+
306
+ #: includes/mollie/wc/helper/settings.php:109
307
+ msgid "Error"
308
+ msgstr "Fehler"
309
+
310
+ #: includes/mollie/wc/helper/settings.php:119
311
+ msgid "Mollie status:"
312
+ msgstr "Mollie Status:"
313
+
314
+ #: includes/mollie/wc/helper/settings.php:120
315
+ msgid "Connected"
316
+ msgstr "Angeheftet"
317
+
318
+ #: includes/mollie/wc/helper/settings.php:180
319
+ msgid "Gateway enabled"
320
+ msgstr "Eingangstor eingeschaltet"
321
+
322
+ #: includes/mollie/wc/helper/settings.php:180
323
+ msgid "Enabled"
324
+ msgstr "Eingeschaltet"
325
+
326
+ #: includes/mollie/wc/helper/settings.php:181
327
+ msgid "Gateway disabled"
328
+ msgstr "Eingangstor ausgeschaltet"
329
+
330
+ #. translators: The surrounding %s's Will be replaced by a link to the Mollie
331
+ #. profile
332
+ #: includes/mollie/wc/helper/settings.php:192
333
+ msgid "The following payment methods are activated in your %sMollie profile%s:"
334
+ msgstr "Folgende Zahlungsmethode sind aktiviert in Ihres %sMollie Profil%s:"
335
+
336
+ #: includes/mollie/wc/helper/settings.php:202
337
+ msgid "Refresh"
338
+ msgstr "Erfrischen"
339
+
340
+ #: includes/mollie/wc/helper/settings.php:226
341
+ msgid "Edit"
342
+ msgstr "Anpassen"
343
+
344
+ #. translators: Default payment description. {order_number} and {order_date}
345
+ #. are available tags.
346
+ #: includes/mollie/wc/helper/settings.php:257
347
+ msgid "Order {order_number}"
348
+ msgstr "Bestellung {order_number}"
349
+
350
+ #: includes/mollie/wc/helper/settings.php:260
351
+ msgid "Log plugin events."
352
+ msgstr "Wiedergeben der Fehler in den Plug-in."
353
+
354
+ #: includes/mollie/wc/helper/settings.php:265
355
+ msgid "View logs"
356
+ msgstr "Sehen Logbuch"
357
+
358
+ #. translators: Placeholder 1: Location of the log files
359
+ #: includes/mollie/wc/helper/settings.php:271
360
+ msgid "Log files are saved to <code>%s</code>"
361
+ msgstr "Protokolldateien werden gespeichert zu <code>%s</code>"
362
+
363
+ #: includes/mollie/wc/helper/settings.php:278 includes/mollie/wc/plugin.php:279
364
+ msgid "Mollie settings"
365
+ msgstr "Mollie Einstellungen"
366
+
367
+ #: includes/mollie/wc/helper/settings.php:281
368
+ msgid ""
369
+ "The following options are required to use the plugin and are used by all Mollie payment methods"
370
+ msgstr ""
371
+ "Folgende Alternative sind verpflichtet um Mollie Payments zu verwenden und werden verwendet "
372
+ "durch alle Mollie Zahlungsmethode"
373
+
374
+ #: includes/mollie/wc/helper/settings.php:285
375
+ msgid "Live API key"
376
+ msgstr "Live API key"
377
+
378
+ #. translators: Placeholder 1: API key mode (live or test). The surrounding
379
+ #. %s's Will be replaced by a link to the Mollie profile
380
+ #: includes/mollie/wc/helper/settings.php:290 includes/mollie/wc/helper/settings.php:316
381
+ msgid ""
382
+ "The API key is used to connect to Mollie. You can find your <strong>%s</strong> API key in "
383
+ "your %sMollie profile%s"
384
+ msgstr "Der API key wird benutzt um "
385
+
386
+ #: includes/mollie/wc/helper/settings.php:296
387
+ msgid "Live API key should start with live_"
388
+ msgstr "Live API key muss anfangen mit live_"
389
+
390
+ #: includes/mollie/wc/helper/settings.php:304
391
+ msgid "Enable test mode"
392
+ msgstr "test Modus einschalten"
393
+
394
+ #: includes/mollie/wc/helper/settings.php:307
395
+ msgid "Enable test mode if you want to test the plugin without using real payments."
396
+ msgstr "Schalten test Modus ein wenn Sie testen möchten ohne wirkliche Zahlungen"
397
+
398
+ #: includes/mollie/wc/helper/settings.php:311
399
+ msgid "Test API key"
400
+ msgstr "Test API key"
401
+
402
+ #: includes/mollie/wc/helper/settings.php:322
403
+ msgid "Test API key should start with test_"
404
+ msgstr "Test API key muss anfangen mit test_"
405
+
406
+ #. translators: Placeholder 1: Default payment description, placeholder 2: list
407
+ #. of available tags
408
+ #: includes/mollie/wc/helper/settings.php:333
409
+ msgid ""
410
+ "Payment description send to Mollie. Default <code>%s</code><br/>You can use the following "
411
+ "tags: %s"
412
+ msgstr ""
413
+ "Zahlungsumschreibung gesendet an Mollie. Standard <code>%s</code><br/>Sie können die folgenden "
414
+ "Tags verwenden: %s"
415
+
416
+ #: includes/mollie/wc/helper/settings.php:339
417
+ msgid "Payment screen language"
418
+ msgstr "Zahlungsschirm Sprache"
419
+
420
+ #: includes/mollie/wc/helper/settings.php:342
421
+ msgid "Detect using browser language"
422
+ msgstr "Benutzte Sprache entdecken des Webbrowsers"
423
+
424
+ #. translators: Placeholder 1: Current WordPress locale
425
+ #: includes/mollie/wc/helper/settings.php:344
426
+ msgid "Send WordPress language (%s)"
427
+ msgstr "Schicke WordPress Sprache (%s)"
428
+
429
+ #: includes/mollie/wc/helper/settings.php:344
430
+ msgid "default"
431
+ msgstr "Standard"
432
+
433
+ #: includes/mollie/wc/helper/settings.php:345
434
+ msgid "Dutch"
435
+ msgstr "Niederländisch"
436
+
437
+ #: includes/mollie/wc/helper/settings.php:346
438
+ msgid "Flemish (Belgium)"
439
+ msgstr "Flämisch (Belgien)"
440
+
441
+ #: includes/mollie/wc/helper/settings.php:347
442
+ msgid "English"
443
+ msgstr "Englisch"
444
+
445
+ #: includes/mollie/wc/helper/settings.php:348
446
+ msgid "German"
447
+ msgstr "Deutsch"
448
+
449
+ #: includes/mollie/wc/helper/settings.php:349
450
+ msgid "Spanish"
451
+ msgstr "Spanisch"
452
+
453
+ #: includes/mollie/wc/helper/settings.php:350
454
+ msgid "French"
455
+ msgstr "Französisch"
456
+
457
+ #: includes/mollie/wc/helper/settings.php:351
458
+ msgid "French (Belgium)"
459
+ msgstr "Französisch (Belgien)"
460
+
461
+ #: includes/mollie/wc/helper/settings.php:357
462
+ msgid "Debug Log"
463
+ msgstr "Debug Logbuch"
464
+
465
+ #. translators: Placeholder 1: Plugin name, placeholder 2: required WooCommerce
466
+ #. version, placeholder 3: used WooCommerce version
467
+ #: includes/mollie/wc/helper/status.php:53
468
+ msgid ""
469
+ "The %s plugin requires at least WooCommerce version %s, you are using version %s. Please "
470
+ "update your WooCommerce plugin."
471
+ msgstr ""
472
+ "Um %s Plug-in zu benutzen haben Sie mindestens die Woocommerce Version %s nötig, Sie benutzen "
473
+ "die Version %s. Sie müssen die letzte Version von WooCommerce Plug-in herunterladen."
474
+
475
+ #: includes/mollie/wc/helper/status.php:64
476
+ msgid "Mollie API client not installed. Please make sure the plugin is installed correctly."
477
+ msgstr ""
478
+ "Mollie API client ist nicht installiert. Bitte kontrolliere Sie ob der Plug-in gut installiert "
479
+ "ist."
480
+
481
+ #. translators: Placeholder 1: Required PHP version, placeholder 2: current PHP
482
+ #. version
483
+ #: includes/mollie/wc/helper/status.php:82
484
+ msgid "The client requires PHP version >= %s, you have %s."
485
+ msgstr "Der Client erfordert PHP Version >= %s, Sie haben %s."
486
+
487
+ #: includes/mollie/wc/helper/status.php:89
488
+ msgid ""
489
+ "The Mollie API client requires the PHP extension JSON to be enabled. Please enable the 'json' "
490
+ "extension in your PHP configuration."
491
+ msgstr ""
492
+ "Mollie API client erfordert das die PHP Erweiterung JSON ist eingeschaltet. Bitte schalten Sie "
493
+ "die Erweiterung ’json’ ein in Ihre PHP Konfiguration."
494
+
495
+ #: includes/mollie/wc/helper/status.php:93
496
+ msgid ""
497
+ "The Mollie API client requires the PHP extension cURL to be enabled. Please enable the 'curl' "
498
+ "extension in your PHP configuration."
499
+ msgstr ""
500
+ "Mollie API client erfordert das die PHP Erweiterung cURL ist eingeschaltet. Bitte schalten Sie "
501
+ "die Erweiterung ’curl’ ein in Ihre PHP Konfiguration."
502
+
503
+ #. translators: Placeholder 1: The required cURL function names
504
+ #: includes/mollie/wc/helper/status.php:99
505
+ msgid ""
506
+ "The Mollie API client requires the following PHP cURL functions to be available: %s. Please "
507
+ "make sure all of these functions are available."
508
+ msgstr ""
509
+ "Mollie API client erfordert das die folgende PHP cURL Funktionen verfügbar sind: %s. Bitte "
510
+ "kontrolliere ob alle genannte Funktionen verfügbar sind."
511
+
512
+ #: includes/mollie/wc/plugin.php:286
513
+ msgid "Logs"
514
+ msgstr "Logbuch"
515
+
516
+ #: mollie-payments-for-woocommerce.php:49
517
+ msgid "Could not activate plugin %s"
518
+ msgstr "Kann plugin %s nicht aktivieren"
519
+
520
+ #: mollie-payments-for-woocommerce.php:93
521
+ msgid "%s deactivated because it depends on WooCommerce."
522
+ msgstr "%s deaktiviert weil es abhängt von WooCommerce."
523
+
524
+ #. Plugin Name of the plugin/theme
525
+ msgid "Mollie Payments for WooCommerce"
526
+ msgstr "Mollie Payments for WooCommerce"
527
+
528
+ #. Plugin URI of the plugin/theme
529
+ msgid "https://github.com/mollie/WooCommerce"
530
+ msgstr "https://github.com/mollie/WooCommerce"
531
+
532
+ #. Description of the plugin/theme
533
+ msgid ""
534
+ "Accept payments in WooCommerce with Mollie iDEAL, Credit Card, Bancontact/Mister Cash, Bank "
535
+ "Transfer, PayPal, Bitcoin, paysafecard and SOFORT Banking"
536
+ msgstr ""
537
+
538
+ #. Author of the plugin/theme
539
+ msgid "Mollie"
540
+ msgstr "Mollie"
541
+
542
+ #. Author URI of the plugin/theme
543
+ msgid "https://www.mollie.com"
544
+ msgstr "https://www.mollie.com"
545
+
546
+ #~ msgid ""
547
+ #~ "This payment method is not supported by this plugin. Please check if there is an update "
548
+ #~ "available."
549
+ #~ msgstr ""
550
+ #~ "Diese Zahlungsmethode wird nicht unterstützt durch diese Plug-in. Bitte kontrolliere Sie ob "
551
+ #~ "eine Auffüllung verfügbar ist."
552
+
553
+ #~ msgid "Not supported"
554
+ #~ msgstr "Nicht unterstützt"
555
+
556
+ #~ msgid ""
557
+ #~ "No active Mollie payment methods found. Please check your Mollie profile which payment "
558
+ #~ "methods are activated."
559
+ #~ msgstr ""
560
+ #~ "Keine aktiven Mollie Zahlungsmethode gefunden. Bitte kontrolliere Sie Ihres Mollie Profil "
561
+ #~ "welche Zahlungsmethode aktiviert sind."
562
+
563
+ #~ msgid "Mollie payments for WooCommerce"
564
+ #~ msgstr "Mollie payments für WooCommerce"
565
+
566
+ #~ msgid "Order %"
567
+ #~ msgstr "Bestellung %"
568
+
569
+ #~ msgid "Log plugin events. <a href=\"%s\">View logs</a>"
570
+ #~ msgstr "Wiedergeben der Fehler in den Plug-in. <a href=\"%s\">Sehen Logbuch</a>"
571
+
572
+ #~ msgid "https://www.mollie.com/"
573
+ #~ msgstr "https://www.mollie.com/"
i18n/languages/mollie-payments-for-woocommerce-fr_FR.mo ADDED
Binary file
i18n/languages/mollie-payments-for-woocommerce-fr_FR.po ADDED
@@ -0,0 +1,576 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 Mollie Payments for WooCommerce
2
+ # This file is distributed under the same license as the Mollie Payments for WooCommerce package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Mollie Payments for WooCommerce 2.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/mollie-payments-for-woocommerce\n"
7
+ "POT-Creation-Date: 2015-08-14 13:08+0200\n"
8
+ "PO-Revision-Date: 2015-08-14 13:09+0200\n"
9
+ "Last-Translator: Lennard van Gunst <lennard@mollie.com>\n"
10
+ "Language-Team: Mollie <info@mollie.com>\n"
11
+ "Language: fr\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Poedit 1.8.4\n"
16
+ "Plural-Forms: nplurals=2; plural=(n > 1);\n"
17
+
18
+ #: includes/mollie/wc/gateway/abstract.php:60
19
+ msgid "Enable/Disable"
20
+ msgstr "Activer/Désactiver"
21
+
22
+ #: includes/mollie/wc/gateway/abstract.php:62
23
+ msgid "Enable %s"
24
+ msgstr "Activer %s"
25
+
26
+ #: includes/mollie/wc/gateway/abstract.php:66
27
+ msgid "Title"
28
+ msgstr "Titre"
29
+
30
+ #: includes/mollie/wc/gateway/abstract.php:68
31
+ msgid "This controls the title which the user sees during checkout. Default <code>%s</code>"
32
+ msgstr ""
33
+ "Ceci contrôle le titre que l’utilisateur voit lors du la commande. Default <code>%s</code>"
34
+
35
+ #: includes/mollie/wc/gateway/abstract.php:73
36
+ msgid "Display logo"
37
+ msgstr "Afficher le logo"
38
+
39
+ #: includes/mollie/wc/gateway/abstract.php:75
40
+ msgid "Display logo on checkout page. Default <code>enabled</code>"
41
+ msgstr "Affichage logo sur la page de commande. Default <code>activé</code>"
42
+
43
+ #: includes/mollie/wc/gateway/abstract.php:79 includes/mollie/wc/helper/settings.php:330
44
+ msgid "Description"
45
+ msgstr "Description"
46
+
47
+ #: includes/mollie/wc/gateway/abstract.php:81
48
+ msgid ""
49
+ "Payment method description that the customer will see on your checkout. Default <code>%s</code>"
50
+ msgstr ""
51
+ "Méthode de paiement description que le client vera lors du passage de la commande. Default "
52
+ "<code>%s</code>"
53
+
54
+ #: includes/mollie/wc/gateway/abstract.php:111 includes/mollie/wc/gateway/abstract.php:146
55
+ #: includes/mollie/wc/helper/settings.php:187
56
+ msgid "Test mode enabled."
57
+ msgstr "Mode de test activé."
58
+
59
+ #: includes/mollie/wc/gateway/abstract.php:123
60
+ msgid "Gateway Disabled"
61
+ msgstr "Passerelle désactivée"
62
+
63
+ #. translators: The surrounding %s's Will be replaced by a link to the global
64
+ #. setting page
65
+ #: includes/mollie/wc/gateway/abstract.php:148
66
+ msgid "No API key provided. Please %sset you Mollie API key%s first."
67
+ msgstr "Pas de API key fournie. S'il vous plaît %sset vous Mollie API key%s en premier."
68
+
69
+ #. translators: Placeholder 1: payment method title. The surrounding %s's Will
70
+ #. be replaced by a link to the Mollie profile
71
+ #: includes/mollie/wc/gateway/abstract.php:160
72
+ msgid ""
73
+ "%s not enabled in your Mollie profile. You can enabled it by editing your %sMollie profile%s."
74
+ msgstr ""
75
+ "%s pas activé dans votre Mollie profil . Vous pouvez lui a permis en éditant votre %sMollie "
76
+ "profile%s."
77
+
78
+ #. translators: Placeholder 1: WooCommerce currency, placeholder 2: Supported
79
+ #. Mollie currencies
80
+ #: includes/mollie/wc/gateway/abstract.php:173
81
+ msgid "Shop currency %s not supported by Mollie. Mollie only supports: %s."
82
+ msgstr "monnaie de la boutique %s n’est pas supporté par Mollie . Mollie seuls supports: %s"
83
+
84
+ #: includes/mollie/wc/gateway/abstract.php:196
85
+ msgid "Could not load order %s"
86
+ msgstr "pourrait pas charger ordre %s"
87
+
88
+ #: includes/mollie/wc/gateway/abstract.php:213
89
+ msgid "Awaiting payment confirmation."
90
+ msgstr "En attente de la confirmation de paiement."
91
+
92
+ #. translators: Placeholder 1: Payment method title, placeholder 2: payment ID
93
+ #: includes/mollie/wc/gateway/abstract.php:276
94
+ msgid "%s payment started (%s)."
95
+ msgstr "%s paiement a commencé (%s)."
96
+
97
+ #: includes/mollie/wc/gateway/abstract.php:278 includes/mollie/wc/gateway/abstract.php:401
98
+ #: includes/mollie/wc/gateway/abstract.php:432 includes/mollie/wc/gateway/abstract.php:457
99
+ #: includes/mollie/wc/gateway/abstract.php:476
100
+ msgid "test mode"
101
+ msgstr "mode test"
102
+
103
+ #. translators: Placeholder 1: Payment method title
104
+ #: includes/mollie/wc/gateway/abstract.php:291
105
+ msgid "Could not create %s payment."
106
+ msgstr "Impossible de créer %s paiement."
107
+
108
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment
109
+ #. status, placeholder 3: payment ID
110
+ #: includes/mollie/wc/gateway/abstract.php:398
111
+ msgid "%s payment %s (%s)."
112
+ msgstr "%s paiement %s (%s)."
113
+
114
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
115
+ #: includes/mollie/wc/gateway/abstract.php:430
116
+ msgid "Order completed using %s payment (%s)."
117
+ msgstr "ordre terminé en utilisant %s paiement (%s)"
118
+
119
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
120
+ #: includes/mollie/wc/gateway/abstract.php:455
121
+ msgid "%s payment cancelled (%s)."
122
+ msgstr "%s paiement annulé (%s)."
123
+
124
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
125
+ #: includes/mollie/wc/gateway/abstract.php:474
126
+ msgid "%s payment expired (%s)."
127
+ msgstr "%s paiement expiré (%s)."
128
+
129
+ #: includes/mollie/wc/gateway/abstract.php:490
130
+ msgid ""
131
+ "You have cancelled your payment. Please complete your order with a different payment method."
132
+ msgstr ""
133
+ "Vous avez annulé votre paiement . S'il vous plaît compléter votre commande avec un autre "
134
+ "méthode de paiement."
135
+
136
+ #. translators: Placeholder 1: currency, placeholder 2: refunded amount,
137
+ #. placeholder 3: optional refund reason, placeholder 4: payment ID,
138
+ #. placeholder 5: refund ID
139
+ #: includes/mollie/wc/gateway/abstract.php:550
140
+ msgid "Refunded %s%s (reason: %s) - Payment ID: %s, Refund: %s"
141
+ msgstr "remboursé %s%s (raison: %s) - Paiement ID: %s, Rembourse: %s"
142
+
143
+ #: includes/mollie/wc/gateway/abstract.php:619
144
+ msgid "Payment"
145
+ msgstr "paiement"
146
+
147
+ #: includes/mollie/wc/gateway/abstract.php:640
148
+ msgid "We have not received a definite payment status."
149
+ msgstr "Nous avons pas reçu un statut de paiement définitif."
150
+
151
+ #: includes/mollie/wc/gateway/abstract.php:645
152
+ msgid ""
153
+ "We have not received a definite payment status. You will receive an email as soon as we "
154
+ "receive a confirmation of the bank/merchant."
155
+ msgstr ""
156
+ "Nous avons pas reçu un statut de paiement définitif. Vous recevrez un email dès que nous "
157
+ "recevrons une confirmation de la banque /merchant"
158
+
159
+ #: includes/mollie/wc/gateway/banktransfer.php:32
160
+ msgid "Expiry date"
161
+ msgstr "date d'expiration"
162
+
163
+ #: includes/mollie/wc/gateway/banktransfer.php:34
164
+ msgid "Number of days after the payment will expire. Default <code>%d</code> days"
165
+ msgstr "Nombre de jours après le paiement expirera. Default <code>%d</code> jours"
166
+
167
+ #: includes/mollie/wc/gateway/banktransfer.php:43
168
+ msgid "Mail payment instructions"
169
+ msgstr "Les instructions de paiement par mail "
170
+
171
+ #. translators: Placeholder 1: enabled or disabled
172
+ #: includes/mollie/wc/gateway/banktransfer.php:45
173
+ msgid ""
174
+ "Should Mollie automatically mail the payment instructions to the customer? Default <code>%s</"
175
+ "code>"
176
+ msgstr ""
177
+ "Devrait Mollie automatiquement envoye les instructions de paiement pour le client par mail? "
178
+ "Default <code>%s</code>"
179
+
180
+ #: includes/mollie/wc/gateway/banktransfer.php:45 includes/mollie/wc/helper/settings.php:181
181
+ msgid "Disabled"
182
+ msgstr "Désactivé"
183
+
184
+ #: includes/mollie/wc/gateway/banktransfer.php:48
185
+ msgid ""
186
+ "If you disable this option the customer still has an option to send the payment instructions "
187
+ "to an email address on the Mollie payment screen."
188
+ msgstr ""
189
+ "Si vous désactivez cette option, le client a toujours une option pour envoyer les instructions "
190
+ "de paiement à une adresse e-mail sur l'écran de paiement de Mollie."
191
+
192
+ #: includes/mollie/wc/gateway/banktransfer.php:93
193
+ msgid "Bank Transfer"
194
+ msgstr "Transfert Bancaire"
195
+
196
+ #. translators: Placeholder 1: consumer name, placeholder 2: consumer IBAN,
197
+ #. placeholder 3: consumer BIC
198
+ #: includes/mollie/wc/gateway/banktransfer.php:144 includes/mollie/wc/gateway/ideal.php:86
199
+ #: includes/mollie/wc/gateway/sofort.php:56
200
+ msgid "Payment completed by <strong>%s</strong> (IBAN: %s, BIC: %s)"
201
+ msgstr "ordre terminé par <strong>%s</strong> (IBAN: %s, BIC: %s)"
202
+
203
+ #: includes/mollie/wc/gateway/banktransfer.php:154
204
+ msgid ""
205
+ "Please complete your payment by transferring the total amount to the following bank account:"
206
+ msgstr ""
207
+ "S'il vous plaît terminé votre paiement par transférer le montant total sur le compte bancaire "
208
+ "suivant:"
209
+
210
+ #. translators: Placeholder 1: 'Stichting Mollie Payments'
211
+ #: includes/mollie/wc/gateway/banktransfer.php:158
212
+ msgid "Beneficiary: %s"
213
+ msgstr "bénéficiaire: %s"
214
+
215
+ #: includes/mollie/wc/gateway/banktransfer.php:159
216
+ msgid "IBAN: <strong>%s</strong>"
217
+ msgstr "IBAN: <strong>%s</strong>"
218
+
219
+ #: includes/mollie/wc/gateway/banktransfer.php:160
220
+ msgid "BIC: %s"
221
+ msgstr "BIC: %s"
222
+
223
+ #. translators: Placeholder 1: Payment reference e.g. RF49-0000-4716-6216
224
+ #. (SEPA) or +++513/7587/59959+++ (Belgium)
225
+ #: includes/mollie/wc/gateway/banktransfer.php:165
226
+ msgid "Payment reference: %s"
227
+ msgstr "Référence de paiement: %s"
228
+
229
+ #. translators: Placeholder 1: Payment reference e.g. RF49-0000-4716-6216
230
+ #. (SEPA) or +++513/7587/59959+++ (Belgium)
231
+ #: includes/mollie/wc/gateway/banktransfer.php:170
232
+ msgid "Please provide the payment reference <strong>%s</strong>"
233
+ msgstr "S'il vous plaît fournir la référence de paiement <strong>%s</strong>"
234
+
235
+ #: includes/mollie/wc/gateway/banktransfer.php:183
236
+ msgid "The payment will expire on <strong>%s</strong>."
237
+ msgstr "le paiement expirera le <strong>%s</strong>."
238
+
239
+ #: includes/mollie/wc/gateway/banktransfer.php:190
240
+ msgid ""
241
+ "The payment will expire on <strong>%s</strong>. Please make sure you transfer the total amount "
242
+ "before this date."
243
+ msgstr ""
244
+ "le paiement expirera le <strong>%s</strong>. S'il vous plaît faire sûr que vous transférez le "
245
+ "montant total avant cette date."
246
+
247
+ #: includes/mollie/wc/gateway/belfius.php:30
248
+ msgid "Belfius Direct Net"
249
+ msgstr "Belfius Direct Net"
250
+
251
+ #: includes/mollie/wc/gateway/bitcoin.php:17
252
+ msgid "Bitcoin"
253
+ msgstr "Bitcoin"
254
+
255
+ #: includes/mollie/wc/gateway/creditcard.php:30
256
+ msgid "Credit card"
257
+ msgstr "Carte de crédit"
258
+
259
+ #. translators: Placeholder 1: card holder
260
+ #: includes/mollie/wc/gateway/creditcard.php:56
261
+ msgid "Payment completed by <strong>%s</strong>"
262
+ msgstr "paiement terminé par <strong>%s<strong>"
263
+
264
+ #: includes/mollie/wc/gateway/ideal.php:33
265
+ msgid "iDEAL"
266
+ msgstr "iDEAL"
267
+
268
+ #. translators: Default iDEAL description, displayed above issuer drop down
269
+ #: includes/mollie/wc/gateway/ideal.php:42
270
+ msgid "Select your bank"
271
+ msgstr "Sélectionnez votre banque"
272
+
273
+ #: includes/mollie/wc/gateway/mistercash.php:30
274
+ msgid "Bancontact / Mister Cash"
275
+ msgstr "Bancontact / Mister Cash"
276
+
277
+ #: includes/mollie/wc/gateway/paypal.php:30
278
+ msgid "PayPal"
279
+ msgstr "Sélectionnez votre banque"
280
+
281
+ #. translators: Placeholder 1: PayPal consumer name, placeholder 2: PayPal
282
+ #. email, placeholder 3: PayPal transaction ID
283
+ #: includes/mollie/wc/gateway/paypal.php:56
284
+ msgid "Payment completed by <strong>%s</strong> - %s (PayPal transaction ID: %s)"
285
+ msgstr "paiement terminé par <strong>%s<strong> - %s (PayPal transaction ID: %s)"
286
+
287
+ #: includes/mollie/wc/gateway/paysafecard.php:17
288
+ msgid "paysafecard"
289
+ msgstr "paysafecard"
290
+
291
+ #: includes/mollie/wc/gateway/sofort.php:30
292
+ msgid "SOFORT Banking"
293
+ msgstr "SOFORT Banking"
294
+
295
+ #: includes/mollie/wc/helper/api.php:35
296
+ msgid "No API key provided."
297
+ msgstr "Pas de API key fournie "
298
+
299
+ #: includes/mollie/wc/helper/api.php:39
300
+ msgid ""
301
+ "Invalid API key. The API key must start with 'live_' or 'test_' and can't further contain any "
302
+ "special characters."
303
+ msgstr ""
304
+ "API key invalide. Le API key doit commencer par 'Live_' ou 'test_' et ne peut pas contenir "
305
+ "plus de caractères spéciaux."
306
+
307
+ #: includes/mollie/wc/helper/settings.php:109
308
+ msgid "Error"
309
+ msgstr "Erreur"
310
+
311
+ #: includes/mollie/wc/helper/settings.php:119
312
+ msgid "Mollie status:"
313
+ msgstr "Mollie état:"
314
+
315
+ #: includes/mollie/wc/helper/settings.php:120
316
+ msgid "Connected"
317
+ msgstr "Connecté"
318
+
319
+ #: includes/mollie/wc/helper/settings.php:180
320
+ msgid "Gateway enabled"
321
+ msgstr "Passerelle activé"
322
+
323
+ #: includes/mollie/wc/helper/settings.php:180
324
+ msgid "Enabled"
325
+ msgstr "Activé"
326
+
327
+ #: includes/mollie/wc/helper/settings.php:181
328
+ msgid "Gateway disabled"
329
+ msgstr "Passerelle désactivé"
330
+
331
+ #. translators: The surrounding %s's Will be replaced by a link to the Mollie
332
+ #. profile
333
+ #: includes/mollie/wc/helper/settings.php:192
334
+ msgid "The following payment methods are activated in your %sMollie profile%s:"
335
+ msgstr "Les moyens de paiement suivants sont activés en votre %sMollie profile%s:"
336
+
337
+ #: includes/mollie/wc/helper/settings.php:202
338
+ msgid "Refresh"
339
+ msgstr "Rafraîchir"
340
+
341
+ #: includes/mollie/wc/helper/settings.php:226
342
+ msgid "Edit"
343
+ msgstr "éditer"
344
+
345
+ #. translators: Default payment description. {order_number} and {order_date}
346
+ #. are available tags.
347
+ #: includes/mollie/wc/helper/settings.php:257
348
+ msgid "Order {order_number}"
349
+ msgstr "Ordre {order_number}"
350
+
351
+ #: includes/mollie/wc/helper/settings.php:260
352
+ msgid "Log plugin events."
353
+ msgstr "Log plugin événements."
354
+
355
+ #: includes/mollie/wc/helper/settings.php:265
356
+ msgid "View logs"
357
+ msgstr "Regarde le logs"
358
+
359
+ #. translators: Placeholder 1: Location of the log files
360
+ #: includes/mollie/wc/helper/settings.php:271
361
+ msgid "Log files are saved to <code>%s</code>"
362
+ msgstr "Les fichiers journaux sont enregistrés <code>%s</code>"
363
+
364
+ #: includes/mollie/wc/helper/settings.php:278 includes/mollie/wc/plugin.php:279
365
+ msgid "Mollie settings"
366
+ msgstr "Paramètres Mollie"
367
+
368
+ #: includes/mollie/wc/helper/settings.php:281
369
+ msgid ""
370
+ "The following options are required to use the plugin and are used by all Mollie payment methods"
371
+ msgstr ""
372
+ "Les options suivantes sont requises pour utiliser les paiements de Mollie et sont utilisés par "
373
+ "toutes les méthodes paiement de Mollie."
374
+
375
+ #: includes/mollie/wc/helper/settings.php:285
376
+ msgid "Live API key"
377
+ msgstr "Live API key"
378
+
379
+ #. translators: Placeholder 1: API key mode (live or test). The surrounding
380
+ #. %s's Will be replaced by a link to the Mollie profile
381
+ #: includes/mollie/wc/helper/settings.php:290 includes/mollie/wc/helper/settings.php:316
382
+ msgid ""
383
+ "The API key is used to connect to Mollie. You can find your <strong>%s</strong> API key in "
384
+ "your %sMollie profile%s"
385
+ msgstr ""
386
+ "Ce API key est utilisé pour se connecter à Mollie. Vous pouvez trouver votre <strong>%s</"
387
+ "strong> API key dans votre %sMollie profil%s"
388
+
389
+ #: includes/mollie/wc/helper/settings.php:296
390
+ msgid "Live API key should start with live_"
391
+ msgstr "Live API key devrait commencer par live_"
392
+
393
+ #: includes/mollie/wc/helper/settings.php:304
394
+ msgid "Enable test mode"
395
+ msgstr "Activé mode de test"
396
+
397
+ #: includes/mollie/wc/helper/settings.php:307
398
+ msgid "Enable test mode if you want to test the plugin without using real payments."
399
+ msgstr "Activé mode de test si vous souhaitez tester le plugin sans utiliser les paiements réels"
400
+
401
+ #: includes/mollie/wc/helper/settings.php:311
402
+ msgid "Test API key"
403
+ msgstr "Test API key"
404
+
405
+ #: includes/mollie/wc/helper/settings.php:322
406
+ msgid "Test API key should start with test_"
407
+ msgstr "Test API key devrait commencer avec test_"
408
+
409
+ #. translators: Placeholder 1: Default payment description, placeholder 2: list
410
+ #. of available tags
411
+ #: includes/mollie/wc/helper/settings.php:333
412
+ msgid ""
413
+ "Payment description send to Mollie. Default <code>%s</code><br/>You can use the following "
414
+ "tags: %s"
415
+ msgstr ""
416
+ "Paiement Description envoyer à Mollie. Default <code>%s</code><br/>Vous pouvez utiliser les "
417
+ "balises suivantes: %s"
418
+
419
+ #: includes/mollie/wc/helper/settings.php:339
420
+ msgid "Payment screen language"
421
+ msgstr "Paiement langue de l'écran"
422
+
423
+ #: includes/mollie/wc/helper/settings.php:342
424
+ msgid "Detect using browser language"
425
+ msgstr "Détecter utilisant la langue du navigateur"
426
+
427
+ #. translators: Placeholder 1: Current WordPress locale
428
+ #: includes/mollie/wc/helper/settings.php:344
429
+ msgid "Send WordPress language (%s)"
430
+ msgstr "Envoyer langue WordPress (%s) "
431
+
432
+ #: includes/mollie/wc/helper/settings.php:344
433
+ msgid "default"
434
+ msgstr "défaut"
435
+
436
+ #: includes/mollie/wc/helper/settings.php:345
437
+ msgid "Dutch"
438
+ msgstr "Néerlandais"
439
+
440
+ #: includes/mollie/wc/helper/settings.php:346
441
+ msgid "Flemish (Belgium)"
442
+ msgstr "Flamande (Belgique)"
443
+
444
+ #: includes/mollie/wc/helper/settings.php:347
445
+ msgid "English"
446
+ msgstr "Anglais"
447
+
448
+ #: includes/mollie/wc/helper/settings.php:348
449
+ msgid "German"
450
+ msgstr "Allemand"
451
+
452
+ #: includes/mollie/wc/helper/settings.php:349
453
+ msgid "Spanish"
454
+ msgstr "Espagnol "
455
+
456
+ #: includes/mollie/wc/helper/settings.php:350
457
+ msgid "French"
458
+ msgstr "Français"
459
+
460
+ #: includes/mollie/wc/helper/settings.php:351
461
+ msgid "French (Belgium)"
462
+ msgstr "Français (Belgique) "
463
+
464
+ #: includes/mollie/wc/helper/settings.php:357
465
+ msgid "Debug Log"
466
+ msgstr "Debug log"
467
+
468
+ #. translators: Placeholder 1: Plugin name, placeholder 2: required WooCommerce
469
+ #. version, placeholder 3: used WooCommerce version
470
+ #: includes/mollie/wc/helper/status.php:53
471
+ msgid ""
472
+ "The %s plugin requires at least WooCommerce version %s, you are using version %s. Please "
473
+ "update your WooCommerce plugin."
474
+ msgstr ""
475
+ "Le plugin %s nécessite au moins la version WooCommerce %s, vous utilisez la version %s S'il "
476
+ "vous plaît mettre à jour votre plugin WooCommerce."
477
+
478
+ #: includes/mollie/wc/helper/status.php:64
479
+ msgid "Mollie API client not installed. Please make sure the plugin is installed correctly."
480
+ msgstr ""
481
+ "Mollie client API pas installé. S'il vous plaît assurez-vous que le plugin est installé "
482
+ "correctement."
483
+
484
+ #. translators: Placeholder 1: Required PHP version, placeholder 2: current PHP
485
+ #. version
486
+ #: includes/mollie/wc/helper/status.php:82
487
+ msgid "The client requires PHP version >= %s, you have %s."
488
+ msgstr "Le client nécessite la version de PHP >= %s, vous avez %s."
489
+
490
+ #: includes/mollie/wc/helper/status.php:89
491
+ msgid ""
492
+ "The Mollie API client requires the PHP extension JSON to be enabled. Please enable the 'json' "
493
+ "extension in your PHP configuration."
494
+ msgstr ""
495
+ "Le client Mollie API nécessite l'extension PHP JSON doit être activé. S'il vous plaît "
496
+ "permettre le 'json’ extension dans votre PHP configuration."
497
+
498
+ #: includes/mollie/wc/helper/status.php:93
499
+ msgid ""
500
+ "The Mollie API client requires the PHP extension cURL to be enabled. Please enable the 'curl' "
501
+ "extension in your PHP configuration."
502
+ msgstr ""
503
+ "Le client Mollie API nécessite l'extension PHP cURL doit être activé. S'il vous plaît "
504
+ "permettre le ‘curl’ extension dans votre PHP configuration."
505
+
506
+ #. translators: Placeholder 1: The required cURL function names
507
+ #: includes/mollie/wc/helper/status.php:99
508
+ msgid ""
509
+ "The Mollie API client requires the following PHP cURL functions to be available: %s. Please "
510
+ "make sure all of these functions are available."
511
+ msgstr ""
512
+ "Le client Mollie API nécessite les fonctions cURL de PHP suivants pour être disponibles: %s. "
513
+ "S’il vous plaît assurez-vous que toutes ces fonctions sont disponibles."
514
+
515
+ #: includes/mollie/wc/plugin.php:286
516
+ msgid "Logs"
517
+ msgstr "Logs"
518
+
519
+ #: mollie-payments-for-woocommerce.php:49
520
+ msgid "Could not activate plugin %s"
521
+ msgstr "pourrait pas active plugin %s"
522
+
523
+ #: mollie-payments-for-woocommerce.php:93
524
+ msgid "%s deactivated because it depends on WooCommerce."
525
+ msgstr "%s désactivée car elle dépend de WooCommerce."
526
+
527
+ #. Plugin Name of the plugin/theme
528
+ msgid "Mollie Payments for WooCommerce"
529
+ msgstr "Mollie Payments for WooCommerce"
530
+
531
+ #. Plugin URI of the plugin/theme
532
+ msgid "https://github.com/mollie/WooCommerce"
533
+ msgstr "https://github.com/mollie/WooCommerce"
534
+
535
+ #. Description of the plugin/theme
536
+ msgid ""
537
+ "Accept payments in WooCommerce with Mollie iDEAL, Credit Card, Bancontact/Mister Cash, Bank "
538
+ "Transfer, PayPal, Bitcoin, paysafecard and SOFORT Banking"
539
+ msgstr ""
540
+
541
+ #. Author of the plugin/theme
542
+ msgid "Mollie"
543
+ msgstr "Mollie"
544
+
545
+ #. Author URI of the plugin/theme
546
+ msgid "https://www.mollie.com"
547
+ msgstr "https://www.mollie.com"
548
+
549
+ #~ msgid ""
550
+ #~ "This payment method is not supported by this plugin. Please check if there is an update "
551
+ #~ "available."
552
+ #~ msgstr ""
553
+ #~ "Ce mode de paiement est pas pris en charge par ce plugin . S'il vous plaît vérifier si il "
554
+ #~ "ya une mise à jour disponible ."
555
+
556
+ #~ msgid "Not supported"
557
+ #~ msgstr "Non supporté"
558
+
559
+ #~ msgid ""
560
+ #~ "No active Mollie payment methods found. Please check your Mollie profile which payment "
561
+ #~ "methods are activated."
562
+ #~ msgstr ""
563
+ #~ "Aucune méthode de paiement Mollie actifs trouvés . S'il vous plaît vérifier votre profil "
564
+ #~ "Mollie quelles méthodes de paiement sont activées ."
565
+
566
+ #~ msgid "Mollie payments for WooCommerce"
567
+ #~ msgstr "Mollie paiements pour WooCommerce"
568
+
569
+ #~ msgid "Order %"
570
+ #~ msgstr "Ordre %"
571
+
572
+ #~ msgid "Log plugin events. <a href=\"%s\">View logs</a>"
573
+ #~ msgstr "log plugin événements. <a href=\"%s\">regarde le logs</a>"
574
+
575
+ #~ msgid "https://www.mollie.com/"
576
+ #~ msgstr "https://www.mollie.com/"
i18n/languages/mollie-payments-for-woocommerce-nl_NL.mo ADDED
Binary file
i18n/languages/mollie-payments-for-woocommerce-nl_NL.po ADDED
@@ -0,0 +1,577 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 Mollie Payments for WooCommerce
2
+ # This file is distributed under the same license as the Mollie Payments for WooCommerce package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Mollie Payments for WooCommerce 2.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/mollie-payments-for-woocommerce\n"
7
+ "POT-Creation-Date: 2015-08-14 13:07+0200\n"
8
+ "PO-Revision-Date: 2015-08-14 13:07+0200\n"
9
+ "Last-Translator: Lennard van Gunst <lennard@mollie.com>\n"
10
+ "Language-Team: Mollie <info@mollie.nl>\n"
11
+ "Language: nl\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Poedit 1.8.4\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Poedit-Basepath: ../..\n"
18
+ "X-Poedit-SearchPath-0: .\n"
19
+
20
+ #: includes/mollie/wc/gateway/abstract.php:60
21
+ msgid "Enable/Disable"
22
+ msgstr "In-/uitschakelen"
23
+
24
+ #: includes/mollie/wc/gateway/abstract.php:62
25
+ msgid "Enable %s"
26
+ msgstr "%s inschakelen"
27
+
28
+ #: includes/mollie/wc/gateway/abstract.php:66
29
+ msgid "Title"
30
+ msgstr "Titel"
31
+
32
+ #: includes/mollie/wc/gateway/abstract.php:68
33
+ msgid "This controls the title which the user sees during checkout. Default <code>%s</code>"
34
+ msgstr "De titel welke de gebruiker ziet in de winkelwagen. Standaard <code>%s</code>"
35
+
36
+ #: includes/mollie/wc/gateway/abstract.php:73
37
+ msgid "Display logo"
38
+ msgstr "Logo weergeven"
39
+
40
+ #: includes/mollie/wc/gateway/abstract.php:75
41
+ msgid "Display logo on checkout page. Default <code>enabled</code>"
42
+ msgstr "Logo weergeven in de winkelwagen. Standaard <code>ingeschakeld</code>"
43
+
44
+ #: includes/mollie/wc/gateway/abstract.php:79 includes/mollie/wc/helper/settings.php:330
45
+ msgid "Description"
46
+ msgstr "Omschrijving"
47
+
48
+ #: includes/mollie/wc/gateway/abstract.php:81
49
+ msgid ""
50
+ "Payment method description that the customer will see on your checkout. Default <code>%s</code>"
51
+ msgstr "Betaalmethode omschrijving is zichtbaar in de winkelwagen. Standaard <code>%s</code>"
52
+
53
+ #: includes/mollie/wc/gateway/abstract.php:111 includes/mollie/wc/gateway/abstract.php:146
54
+ #: includes/mollie/wc/helper/settings.php:187
55
+ msgid "Test mode enabled."
56
+ msgstr "Test modus ingeschakeld."
57
+
58
+ #: includes/mollie/wc/gateway/abstract.php:123
59
+ msgid "Gateway Disabled"
60
+ msgstr "Gateway uitgeschakeld"
61
+
62
+ #. translators: The surrounding %s's Will be replaced by a link to the global
63
+ #. setting page
64
+ #: includes/mollie/wc/gateway/abstract.php:148
65
+ msgid "No API key provided. Please %sset you Mollie API key%s first."
66
+ msgstr "Geen API key ingesteld. %sStel een API key in%s."
67
+
68
+ #. translators: Placeholder 1: payment method title. The surrounding %s's Will
69
+ #. be replaced by a link to the Mollie profile
70
+ #: includes/mollie/wc/gateway/abstract.php:160
71
+ msgid ""
72
+ "%s not enabled in your Mollie profile. You can enabled it by editing your %sMollie profile%s."
73
+ msgstr ""
74
+ "%s is niet ingeschakeld in je Mollie profiel. Je kunt de betaalmethode inschakelen in je "
75
+ "%sMollie profiel%s."
76
+
77
+ #. translators: Placeholder 1: WooCommerce currency, placeholder 2: Supported
78
+ #. Mollie currencies
79
+ #: includes/mollie/wc/gateway/abstract.php:173
80
+ msgid "Shop currency %s not supported by Mollie. Mollie only supports: %s."
81
+ msgstr "Winkel valuta %s wordt niet door Mollie ondersteund. Mollie ondersteunt alleen: %s."
82
+
83
+ #: includes/mollie/wc/gateway/abstract.php:196
84
+ msgid "Could not load order %s"
85
+ msgstr "Kan bestelling %s niet laden"
86
+
87
+ #: includes/mollie/wc/gateway/abstract.php:213
88
+ msgid "Awaiting payment confirmation."
89
+ msgstr "In afwachting van betaling bevestiging."
90
+
91
+ #. translators: Placeholder 1: Payment method title, placeholder 2: payment ID
92
+ #: includes/mollie/wc/gateway/abstract.php:276
93
+ msgid "%s payment started (%s)."
94
+ msgstr "%s betaling gestart (%s)."
95
+
96
+ #: includes/mollie/wc/gateway/abstract.php:278 includes/mollie/wc/gateway/abstract.php:401
97
+ #: includes/mollie/wc/gateway/abstract.php:432 includes/mollie/wc/gateway/abstract.php:457
98
+ #: includes/mollie/wc/gateway/abstract.php:476
99
+ msgid "test mode"
100
+ msgstr "test modus"
101
+
102
+ #. translators: Placeholder 1: Payment method title
103
+ #: includes/mollie/wc/gateway/abstract.php:291
104
+ msgid "Could not create %s payment."
105
+ msgstr "Kon geen %s betaling aanmaken."
106
+
107
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment
108
+ #. status, placeholder 3: payment ID
109
+ #: includes/mollie/wc/gateway/abstract.php:398
110
+ msgid "%s payment %s (%s)."
111
+ msgstr "%s betaling %s (%s)."
112
+
113
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
114
+ #: includes/mollie/wc/gateway/abstract.php:430
115
+ msgid "Order completed using %s payment (%s)."
116
+ msgstr "Bestelling afgerond met %s betaling (%s)."
117
+
118
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
119
+ #: includes/mollie/wc/gateway/abstract.php:455
120
+ msgid "%s payment cancelled (%s)."
121
+ msgstr "%s betaling geannuleerd (%s)."
122
+
123
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
124
+ #: includes/mollie/wc/gateway/abstract.php:474
125
+ msgid "%s payment expired (%s)."
126
+ msgstr "%s betaling verlopen (%s)."
127
+
128
+ #: includes/mollie/wc/gateway/abstract.php:490
129
+ msgid ""
130
+ "You have cancelled your payment. Please complete your order with a different payment method."
131
+ msgstr ""
132
+ "Je hebt de betaling geannuleerd. U kunt de bestelling afronden met een andere betaalmethode."
133
+
134
+ #. translators: Placeholder 1: currency, placeholder 2: refunded amount,
135
+ #. placeholder 3: optional refund reason, placeholder 4: payment ID,
136
+ #. placeholder 5: refund ID
137
+ #: includes/mollie/wc/gateway/abstract.php:550
138
+ msgid "Refunded %s%s (reason: %s) - Payment ID: %s, Refund: %s"
139
+ msgstr "Terugstorting %s%s (reden: %s) - Payment ID: %s, Refund: %s"
140
+
141
+ #: includes/mollie/wc/gateway/abstract.php:619
142
+ msgid "Payment"
143
+ msgstr "Betaling"
144
+
145
+ #: includes/mollie/wc/gateway/abstract.php:640
146
+ msgid "We have not received a definite payment status."
147
+ msgstr "We hebben nog geen definitieve status van de betaling ontvangen."
148
+
149
+ #: includes/mollie/wc/gateway/abstract.php:645
150
+ msgid ""
151
+ "We have not received a definite payment status. You will receive an email as soon as we "
152
+ "receive a confirmation of the bank/merchant."
153
+ msgstr ""
154
+ "We hebben nog geen definitieve status van de betaling ontvangen. U ontvangt een e-mail zodra "
155
+ "wij een bevestiging van de bank ontvangen."
156
+
157
+ #: includes/mollie/wc/gateway/banktransfer.php:32
158
+ msgid "Expiry date"
159
+ msgstr "Verloopdatum"
160
+
161
+ #: includes/mollie/wc/gateway/banktransfer.php:34
162
+ msgid "Number of days after the payment will expire. Default <code>%d</code> days"
163
+ msgstr "Aantal dagen waarna de betaling zal verlopen. Standaard <code>%d</code> dagen"
164
+
165
+ #: includes/mollie/wc/gateway/banktransfer.php:43
166
+ msgid "Mail payment instructions"
167
+ msgstr "Mail betalingsinstructies"
168
+
169
+ #. translators: Placeholder 1: enabled or disabled
170
+ #: includes/mollie/wc/gateway/banktransfer.php:45
171
+ msgid ""
172
+ "Should Mollie automatically mail the payment instructions to the customer? Default <code>%s</"
173
+ "code>"
174
+ msgstr ""
175
+ "Laat Mollie automatisch de betaalinstructies mailen naar de klant. Standaard <code>%s</code>"
176
+
177
+ #: includes/mollie/wc/gateway/banktransfer.php:45 includes/mollie/wc/helper/settings.php:181
178
+ msgid "Disabled"
179
+ msgstr "Uitgeschakeld"
180
+
181
+ #: includes/mollie/wc/gateway/banktransfer.php:48
182
+ msgid ""
183
+ "If you disable this option the customer still has an option to send the payment instructions "
184
+ "to an email address on the Mollie payment screen."
185
+ msgstr ""
186
+ "Als je deze instelling uitschakelt kan de klant op het Mollie betaalscherm er zelf nog voor "
187
+ "kiezen om de betaalinstructies te versturen naar een e-mailadres."
188
+
189
+ #: includes/mollie/wc/gateway/banktransfer.php:93
190
+ msgid "Bank Transfer"
191
+ msgstr "Overboeking"
192
+
193
+ #. translators: Placeholder 1: consumer name, placeholder 2: consumer IBAN,
194
+ #. placeholder 3: consumer BIC
195
+ #: includes/mollie/wc/gateway/banktransfer.php:144 includes/mollie/wc/gateway/ideal.php:86
196
+ #: includes/mollie/wc/gateway/sofort.php:56
197
+ msgid "Payment completed by <strong>%s</strong> (IBAN: %s, BIC: %s)"
198
+ msgstr "Betaling afgerond door <strong>%s</strong> (IBAN: %s, BIC: %s)"
199
+
200
+ #: includes/mollie/wc/gateway/banktransfer.php:154
201
+ msgid ""
202
+ "Please complete your payment by transferring the total amount to the following bank account:"
203
+ msgstr "Rond de betaling af door het totale bedrag over te boeken naar de volgende rekening:"
204
+
205
+ #. translators: Placeholder 1: 'Stichting Mollie Payments'
206
+ #: includes/mollie/wc/gateway/banktransfer.php:158
207
+ msgid "Beneficiary: %s"
208
+ msgstr "Begunstigde: %s"
209
+
210
+ #: includes/mollie/wc/gateway/banktransfer.php:159
211
+ msgid "IBAN: <strong>%s</strong>"
212
+ msgstr "IBAN: <strong>%s</strong>"
213
+
214
+ #: includes/mollie/wc/gateway/banktransfer.php:160
215
+ msgid "BIC: %s"
216
+ msgstr "BIC: %s"
217
+
218
+ #. translators: Placeholder 1: Payment reference e.g. RF49-0000-4716-6216
219
+ #. (SEPA) or +++513/7587/59959+++ (Belgium)
220
+ #: includes/mollie/wc/gateway/banktransfer.php:165
221
+ msgid "Payment reference: %s"
222
+ msgstr "Betalingskenmerk: %s"
223
+
224
+ #. translators: Placeholder 1: Payment reference e.g. RF49-0000-4716-6216
225
+ #. (SEPA) or +++513/7587/59959+++ (Belgium)
226
+ #: includes/mollie/wc/gateway/banktransfer.php:170
227
+ msgid "Please provide the payment reference <strong>%s</strong>"
228
+ msgstr "Gelieve het betalingskenmerk <strong>%s</strong> op te geven bij de overboeking"
229
+
230
+ #: includes/mollie/wc/gateway/banktransfer.php:183
231
+ msgid "The payment will expire on <strong>%s</strong>."
232
+ msgstr "De betaling zal op <strong>%s</strong> verlopen."
233
+
234
+ #: includes/mollie/wc/gateway/banktransfer.php:190
235
+ msgid ""
236
+ "The payment will expire on <strong>%s</strong>. Please make sure you transfer the total amount "
237
+ "before this date."
238
+ msgstr ""
239
+ "De betaling zal op <strong>%s</strong> verlopen. Zorg dat u het totale bedrag voor deze datum "
240
+ "heeft overgeboekt."
241
+
242
+ #: includes/mollie/wc/gateway/belfius.php:30
243
+ msgid "Belfius Direct Net"
244
+ msgstr "Belfius Direct Net"
245
+
246
+ #: includes/mollie/wc/gateway/bitcoin.php:17
247
+ msgid "Bitcoin"
248
+ msgstr "Bitcoin"
249
+
250
+ #: includes/mollie/wc/gateway/creditcard.php:30
251
+ msgid "Credit card"
252
+ msgstr "Creditcard"
253
+
254
+ #. translators: Placeholder 1: card holder
255
+ #: includes/mollie/wc/gateway/creditcard.php:56
256
+ msgid "Payment completed by <strong>%s</strong>"
257
+ msgstr "Betaling afgerond door <strong>%s</strong>"
258
+
259
+ #: includes/mollie/wc/gateway/ideal.php:33
260
+ msgid "iDEAL"
261
+ msgstr "iDEAL"
262
+
263
+ #. translators: Default iDEAL description, displayed above issuer drop down
264
+ #: includes/mollie/wc/gateway/ideal.php:42
265
+ msgid "Select your bank"
266
+ msgstr "Selecteer uw bank"
267
+
268
+ #: includes/mollie/wc/gateway/mistercash.php:30
269
+ msgid "Bancontact / Mister Cash"
270
+ msgstr "Bancontact / Mister Cash"
271
+
272
+ #: includes/mollie/wc/gateway/paypal.php:30
273
+ msgid "PayPal"
274
+ msgstr "PayPal"
275
+
276
+ #. translators: Placeholder 1: PayPal consumer name, placeholder 2: PayPal
277
+ #. email, placeholder 3: PayPal transaction ID
278
+ #: includes/mollie/wc/gateway/paypal.php:56
279
+ msgid "Payment completed by <strong>%s</strong> - %s (PayPal transaction ID: %s)"
280
+ msgstr "Betaling afgerond door <strong>%s</strong> - %s (PayPal transactie ID: %s)"
281
+
282
+ #: includes/mollie/wc/gateway/paysafecard.php:17
283
+ msgid "paysafecard"
284
+ msgstr "paysafecard"
285
+
286
+ #: includes/mollie/wc/gateway/sofort.php:30
287
+ msgid "SOFORT Banking"
288
+ msgstr "SOFORT Banking"
289
+
290
+ #: includes/mollie/wc/helper/api.php:35
291
+ msgid "No API key provided."
292
+ msgstr "Geen API key ingesteld."
293
+
294
+ #: includes/mollie/wc/helper/api.php:39
295
+ msgid ""
296
+ "Invalid API key. The API key must start with 'live_' or 'test_' and can't further contain any "
297
+ "special characters."
298
+ msgstr ""
299
+ "Ongeldige API key ingesteld. De API key moet beginnen met 'live_’ of 'test_’ en mag verder "
300
+ "geen speciale tekens bevatten."
301
+
302
+ #: includes/mollie/wc/helper/settings.php:109
303
+ msgid "Error"
304
+ msgstr "Fout"
305
+
306
+ #: includes/mollie/wc/helper/settings.php:119
307
+ msgid "Mollie status:"
308
+ msgstr "Mollie status:"
309
+
310
+ #: includes/mollie/wc/helper/settings.php:120
311
+ msgid "Connected"
312
+ msgstr "Verbonden"
313
+
314
+ #: includes/mollie/wc/helper/settings.php:180
315
+ msgid "Gateway enabled"
316
+ msgstr "Gateway ingeschakeld"
317
+
318
+ #: includes/mollie/wc/helper/settings.php:180
319
+ msgid "Enabled"
320
+ msgstr "Ingeschakeld"
321
+
322
+ #: includes/mollie/wc/helper/settings.php:181
323
+ msgid "Gateway disabled"
324
+ msgstr "Gateway uitgeschakeld"
325
+
326
+ #. translators: The surrounding %s's Will be replaced by a link to the Mollie
327
+ #. profile
328
+ #: includes/mollie/wc/helper/settings.php:192
329
+ msgid "The following payment methods are activated in your %sMollie profile%s:"
330
+ msgstr "De volgende betaalmethodes zijn ingeschakeld in je %sMollie profiel%s:"
331
+
332
+ #: includes/mollie/wc/helper/settings.php:202
333
+ msgid "Refresh"
334
+ msgstr "Ververs"
335
+
336
+ #: includes/mollie/wc/helper/settings.php:226
337
+ msgid "Edit"
338
+ msgstr "Bewerk"
339
+
340
+ #. translators: Default payment description. {order_number} and {order_date}
341
+ #. are available tags.
342
+ #: includes/mollie/wc/helper/settings.php:257
343
+ msgid "Order {order_number}"
344
+ msgstr "Bestelling {order_number}"
345
+
346
+ #: includes/mollie/wc/helper/settings.php:260
347
+ msgid "Log plugin events."
348
+ msgstr "Log plugin events."
349
+
350
+ #: includes/mollie/wc/helper/settings.php:265
351
+ msgid "View logs"
352
+ msgstr "Bekijk logboeken"
353
+
354
+ #. translators: Placeholder 1: Location of the log files
355
+ #: includes/mollie/wc/helper/settings.php:271
356
+ msgid "Log files are saved to <code>%s</code>"
357
+ msgstr "Logboeken worden opgeslagen in <code>%s</code>"
358
+
359
+ #: includes/mollie/wc/helper/settings.php:278 includes/mollie/wc/plugin.php:279
360
+ msgid "Mollie settings"
361
+ msgstr "Mollie instellingen"
362
+
363
+ #: includes/mollie/wc/helper/settings.php:281
364
+ msgid ""
365
+ "The following options are required to use the plugin and are used by all Mollie payment methods"
366
+ msgstr "De volgende instellingen zijn nodig om gebruik te maken van de Mollie plugin."
367
+
368
+ #: includes/mollie/wc/helper/settings.php:285
369
+ msgid "Live API key"
370
+ msgstr "Live API key"
371
+
372
+ #. translators: Placeholder 1: API key mode (live or test). The surrounding
373
+ #. %s's Will be replaced by a link to the Mollie profile
374
+ #: includes/mollie/wc/helper/settings.php:290 includes/mollie/wc/helper/settings.php:316
375
+ msgid ""
376
+ "The API key is used to connect to Mollie. You can find your <strong>%s</strong> API key in "
377
+ "your %sMollie profile%s"
378
+ msgstr ""
379
+ "De API key wordt gebruikt om verbinding te maken met Mollie. Je kan je <strong>%s</strong> API "
380
+ "key vinden in je %sMollie profiel%s"
381
+
382
+ #: includes/mollie/wc/helper/settings.php:296
383
+ msgid "Live API key should start with live_"
384
+ msgstr "Live API key moet beginnen met live_"
385
+
386
+ #: includes/mollie/wc/helper/settings.php:304
387
+ msgid "Enable test mode"
388
+ msgstr "Test modus inschakelen"
389
+
390
+ #: includes/mollie/wc/helper/settings.php:307
391
+ msgid "Enable test mode if you want to test the plugin without using real payments."
392
+ msgstr ""
393
+ "Schakel de test modus in wanneer u de plugin wilt testen zonder echte betalingen te moeten "
394
+ "doen."
395
+
396
+ #: includes/mollie/wc/helper/settings.php:311
397
+ msgid "Test API key"
398
+ msgstr "Test API key"
399
+
400
+ #: includes/mollie/wc/helper/settings.php:322
401
+ msgid "Test API key should start with test_"
402
+ msgstr "Test API key moet beginnen met test_"
403
+
404
+ #. translators: Placeholder 1: Default payment description, placeholder 2: list
405
+ #. of available tags
406
+ #: includes/mollie/wc/helper/settings.php:333
407
+ msgid ""
408
+ "Payment description send to Mollie. Default <code>%s</code><br/>You can use the following "
409
+ "tags: %s"
410
+ msgstr ""
411
+ "Betaling beschrijving. Standaard <code>%s</code><br/> Je kunt gebruik maken van de volgende "
412
+ "tags: %s"
413
+
414
+ #: includes/mollie/wc/helper/settings.php:339
415
+ msgid "Payment screen language"
416
+ msgstr "Taal betaalscherm"
417
+
418
+ #: includes/mollie/wc/helper/settings.php:342
419
+ msgid "Detect using browser language"
420
+ msgstr "Detecteren met behulp van de internet browser taal"
421
+
422
+ #. translators: Placeholder 1: Current WordPress locale
423
+ #: includes/mollie/wc/helper/settings.php:344
424
+ msgid "Send WordPress language (%s)"
425
+ msgstr "Stuur de WordPress taal door (%s)"
426
+
427
+ #: includes/mollie/wc/helper/settings.php:344
428
+ msgid "default"
429
+ msgstr "standaard"
430
+
431
+ #: includes/mollie/wc/helper/settings.php:345
432
+ msgid "Dutch"
433
+ msgstr "Nederlands"
434
+
435
+ #: includes/mollie/wc/helper/settings.php:346
436
+ msgid "Flemish (Belgium)"
437
+ msgstr "Vlaams (België)"
438
+
439
+ #: includes/mollie/wc/helper/settings.php:347
440
+ msgid "English"
441
+ msgstr "Engels"
442
+
443
+ #: includes/mollie/wc/helper/settings.php:348
444
+ msgid "German"
445
+ msgstr "Duits"
446
+
447
+ #: includes/mollie/wc/helper/settings.php:349
448
+ msgid "Spanish"
449
+ msgstr "Spaans"
450
+
451
+ #: includes/mollie/wc/helper/settings.php:350
452
+ msgid "French"
453
+ msgstr "Frans"
454
+
455
+ #: includes/mollie/wc/helper/settings.php:351
456
+ msgid "French (Belgium)"
457
+ msgstr "Frans (België)"
458
+
459
+ #: includes/mollie/wc/helper/settings.php:357
460
+ msgid "Debug Log"
461
+ msgstr "Debug Log"
462
+
463
+ #. translators: Placeholder 1: Plugin name, placeholder 2: required WooCommerce
464
+ #. version, placeholder 3: used WooCommerce version
465
+ #: includes/mollie/wc/helper/status.php:53
466
+ msgid ""
467
+ "The %s plugin requires at least WooCommerce version %s, you are using version %s. Please "
468
+ "update your WooCommerce plugin."
469
+ msgstr ""
470
+ "De %s plugin heeft minimaal WooCommerce versie %s nodig, jij gebruikt versie %s. Update de "
471
+ "WooCommerce plugin."
472
+
473
+ #: includes/mollie/wc/helper/status.php:64
474
+ msgid "Mollie API client not installed. Please make sure the plugin is installed correctly."
475
+ msgstr "Mollie API client niet geïnstalleerd. Zorg er voor dat de plugin juist is geïnstalleerd."
476
+
477
+ #. translators: Placeholder 1: Required PHP version, placeholder 2: current PHP
478
+ #. version
479
+ #: includes/mollie/wc/helper/status.php:82
480
+ msgid "The client requires PHP version >= %s, you have %s."
481
+ msgstr "De API client heeft PHP versie >= %s nodig, jij gebruikt versie %s."
482
+
483
+ #: includes/mollie/wc/helper/status.php:89
484
+ msgid ""
485
+ "The Mollie API client requires the PHP extension JSON to be enabled. Please enable the 'json' "
486
+ "extension in your PHP configuration."
487
+ msgstr ""
488
+ "De Mollie API client heeft de PHP extensie JSON nodig om te werken. Schakel de PHP extensie "
489
+ "'json' in."
490
+
491
+ #: includes/mollie/wc/helper/status.php:93
492
+ msgid ""
493
+ "The Mollie API client requires the PHP extension cURL to be enabled. Please enable the 'curl' "
494
+ "extension in your PHP configuration."
495
+ msgstr ""
496
+ "De Mollie API client heeft de PHP extensie cURL nodig om te werken. Schakel de PHP extensie "
497
+ "‘curl’ in."
498
+
499
+ #. translators: Placeholder 1: The required cURL function names
500
+ #: includes/mollie/wc/helper/status.php:99
501
+ msgid ""
502
+ "The Mollie API client requires the following PHP cURL functions to be available: %s. Please "
503
+ "make sure all of these functions are available."
504
+ msgstr ""
505
+ "De Mollie API client heeft de volgende PHP cURL functies nodig: %s. Zorg dat al deze functies "
506
+ "beschikbaar zijn."
507
+
508
+ #: includes/mollie/wc/plugin.php:286
509
+ msgid "Logs"
510
+ msgstr "Logboeken"
511
+
512
+ #: mollie-payments-for-woocommerce.php:49
513
+ msgid "Could not activate plugin %s"
514
+ msgstr "Kan plugin %s niet activeren"
515
+
516
+ #: mollie-payments-for-woocommerce.php:93
517
+ msgid "%s deactivated because it depends on WooCommerce."
518
+ msgstr "%s gedeactiveerd omdat het afhankelijk is van de plugin WooCommerce."
519
+
520
+ #. Plugin Name of the plugin/theme
521
+ msgid "Mollie Payments for WooCommerce"
522
+ msgstr "Mollie Payments for WooCommerce"
523
+
524
+ #. Plugin URI of the plugin/theme
525
+ msgid "https://github.com/mollie/WooCommerce"
526
+ msgstr "https://github.com/mollie/WooCommerce"
527
+
528
+ #. Description of the plugin/theme
529
+ msgid ""
530
+ "Accept payments in WooCommerce with Mollie iDEAL, Credit Card, Bancontact/Mister Cash, Bank "
531
+ "Transfer, PayPal, Bitcoin, paysafecard and SOFORT Banking"
532
+ msgstr ""
533
+ "Accepteer betalingen in WooCommerce met Mollie iDEAL, Creditcard, Bancontact/Mister Cash, "
534
+ "Overboeking, PayPal, Bitcoin, paysafecard en SOFORT Banking"
535
+
536
+ #. Author of the plugin/theme
537
+ msgid "Mollie"
538
+ msgstr "Mollie"
539
+
540
+ #. Author URI of the plugin/theme
541
+ msgid "https://www.mollie.com"
542
+ msgstr "https://www.mollie.com"
543
+
544
+ #~ msgid ""
545
+ #~ "This payment method is not supported by this plugin. Please check if there is an update "
546
+ #~ "available."
547
+ #~ msgstr ""
548
+ #~ "Deze betaalmethode wordt niet ondersteunt door deze plugin. Controleer of er een update "
549
+ #~ "beschikbaar is voor deze plugin."
550
+
551
+ #~ msgid "Not supported"
552
+ #~ msgstr "Niet ondersteund"
553
+
554
+ #~ msgid ""
555
+ #~ "No active Mollie payment methods found. Please check your Mollie profile which payment "
556
+ #~ "methods are activated."
557
+ #~ msgstr ""
558
+ #~ "Geen actieve Mollie betaalmethodes gevonden. Controleer in je Mollie profiel welke "
559
+ #~ "betaalmethodes zijn geactiveerd."
560
+
561
+ #~ msgid "Mollie payments for WooCommerce"
562
+ #~ msgstr "Mollie payments for WooCommerce"
563
+
564
+ #~ msgid "Order %"
565
+ #~ msgstr "Bestelling %"
566
+
567
+ #~ msgid "Log plugin events. <a href=\"%s\">View logs</a>"
568
+ #~ msgstr "Log plugin events. <a href=\"%s\">Bekijk logboeken</a>"
569
+
570
+ #~ msgid "https://www.mollie.com/"
571
+ #~ msgstr "https://www.mollie.com/"
572
+
573
+ #~ msgid "Payment completed by <strong>%s</strong> (%s)"
574
+ #~ msgstr "Betaling afgerond door <strong>%s</strong> (%s)"
575
+
576
+ #~ msgid "Gateway not enabled"
577
+ #~ msgstr "Gateway niet ingeschakeld"
i18n/languages/mollie-payments-for-woocommerce.pot ADDED
@@ -0,0 +1,530 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 Mollie Payments for WooCommerce
2
+ # This file is distributed under the same license as the Mollie Payments for WooCommerce package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Mollie Payments for WooCommerce 2.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/mollie-payments-"
7
+ "for-woocommerce\n"
8
+ "POT-Creation-Date: 2015-08-14 10:53:59+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
15
+
16
+ #: includes/mollie/wc/gateway/abstract.php:60
17
+ msgid "Enable/Disable"
18
+ msgstr ""
19
+
20
+ #: includes/mollie/wc/gateway/abstract.php:62
21
+ msgid "Enable %s"
22
+ msgstr ""
23
+
24
+ #: includes/mollie/wc/gateway/abstract.php:66
25
+ msgid "Title"
26
+ msgstr ""
27
+
28
+ #: includes/mollie/wc/gateway/abstract.php:68
29
+ msgid ""
30
+ "This controls the title which the user sees during checkout. Default <code>"
31
+ "%s</code>"
32
+ msgstr ""
33
+
34
+ #: includes/mollie/wc/gateway/abstract.php:73
35
+ msgid "Display logo"
36
+ msgstr ""
37
+
38
+ #: includes/mollie/wc/gateway/abstract.php:75
39
+ msgid "Display logo on checkout page. Default <code>enabled</code>"
40
+ msgstr ""
41
+
42
+ #: includes/mollie/wc/gateway/abstract.php:79
43
+ #: includes/mollie/wc/helper/settings.php:330
44
+ msgid "Description"
45
+ msgstr ""
46
+
47
+ #: includes/mollie/wc/gateway/abstract.php:81
48
+ msgid ""
49
+ "Payment method description that the customer will see on your checkout. "
50
+ "Default <code>%s</code>"
51
+ msgstr ""
52
+
53
+ #: includes/mollie/wc/gateway/abstract.php:111
54
+ #: includes/mollie/wc/gateway/abstract.php:146
55
+ #: includes/mollie/wc/helper/settings.php:187
56
+ msgid "Test mode enabled."
57
+ msgstr ""
58
+
59
+ #: includes/mollie/wc/gateway/abstract.php:123
60
+ msgid "Gateway Disabled"
61
+ msgstr ""
62
+
63
+ #. translators: The surrounding %s's Will be replaced by a link to the global
64
+ #. setting page
65
+ #: includes/mollie/wc/gateway/abstract.php:148
66
+ msgid "No API key provided. Please %sset you Mollie API key%s first."
67
+ msgstr ""
68
+
69
+ #. translators: Placeholder 1: payment method title. The surrounding %s's Will
70
+ #. be replaced by a link to the Mollie profile
71
+ #: includes/mollie/wc/gateway/abstract.php:160
72
+ msgid ""
73
+ "%s not enabled in your Mollie profile. You can enabled it by editing your "
74
+ "%sMollie profile%s."
75
+ msgstr ""
76
+
77
+ #. translators: Placeholder 1: WooCommerce currency, placeholder 2: Supported
78
+ #. Mollie currencies
79
+ #: includes/mollie/wc/gateway/abstract.php:173
80
+ msgid "Shop currency %s not supported by Mollie. Mollie only supports: %s."
81
+ msgstr ""
82
+
83
+ #: includes/mollie/wc/gateway/abstract.php:196
84
+ msgid "Could not load order %s"
85
+ msgstr ""
86
+
87
+ #: includes/mollie/wc/gateway/abstract.php:213
88
+ msgid "Awaiting payment confirmation."
89
+ msgstr ""
90
+
91
+ #. translators: Placeholder 1: Payment method title, placeholder 2: payment ID
92
+ #: includes/mollie/wc/gateway/abstract.php:276
93
+ msgid "%s payment started (%s)."
94
+ msgstr ""
95
+
96
+ #: includes/mollie/wc/gateway/abstract.php:278
97
+ #: includes/mollie/wc/gateway/abstract.php:401
98
+ #: includes/mollie/wc/gateway/abstract.php:432
99
+ #: includes/mollie/wc/gateway/abstract.php:457
100
+ #: includes/mollie/wc/gateway/abstract.php:476
101
+ msgid "test mode"
102
+ msgstr ""
103
+
104
+ #. translators: Placeholder 1: Payment method title
105
+ #: includes/mollie/wc/gateway/abstract.php:291
106
+ msgid "Could not create %s payment."
107
+ msgstr ""
108
+
109
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment
110
+ #. status, placeholder 3: payment ID
111
+ #: includes/mollie/wc/gateway/abstract.php:398
112
+ msgid "%s payment %s (%s)."
113
+ msgstr ""
114
+
115
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
116
+ #: includes/mollie/wc/gateway/abstract.php:430
117
+ msgid "Order completed using %s payment (%s)."
118
+ msgstr ""
119
+
120
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
121
+ #: includes/mollie/wc/gateway/abstract.php:455
122
+ msgid "%s payment cancelled (%s)."
123
+ msgstr ""
124
+
125
+ #. translators: Placeholder 1: payment method title, placeholder 2: payment ID
126
+ #: includes/mollie/wc/gateway/abstract.php:474
127
+ msgid "%s payment expired (%s)."
128
+ msgstr ""
129
+
130
+ #: includes/mollie/wc/gateway/abstract.php:490
131
+ msgid ""
132
+ "You have cancelled your payment. Please complete your order with a different "
133
+ "payment method."
134
+ msgstr ""
135
+
136
+ #. translators: Placeholder 1: currency, placeholder 2: refunded amount,
137
+ #. placeholder 3: optional refund reason, placeholder 4: payment ID,
138
+ #. placeholder 5: refund ID
139
+ #: includes/mollie/wc/gateway/abstract.php:550
140
+ msgid "Refunded %s%s (reason: %s) - Payment ID: %s, Refund: %s"
141
+ msgstr ""
142
+
143
+ #: includes/mollie/wc/gateway/abstract.php:619
144
+ msgid "Payment"
145
+ msgstr ""
146
+
147
+ #: includes/mollie/wc/gateway/abstract.php:640
148
+ msgid "We have not received a definite payment status."
149
+ msgstr ""
150
+
151
+ #: includes/mollie/wc/gateway/abstract.php:645
152
+ msgid ""
153
+ "We have not received a definite payment status. You will receive an email as "
154
+ "soon as we receive a confirmation of the bank/merchant."
155
+ msgstr ""
156
+
157
+ #: includes/mollie/wc/gateway/banktransfer.php:32
158
+ msgid "Expiry date"
159
+ msgstr ""
160
+
161
+ #: includes/mollie/wc/gateway/banktransfer.php:34
162
+ msgid ""
163
+ "Number of days after the payment will expire. Default <code>%d</code> days"
164
+ msgstr ""
165
+
166
+ #: includes/mollie/wc/gateway/banktransfer.php:43
167
+ msgid "Mail payment instructions"
168
+ msgstr ""
169
+
170
+ #. translators: Placeholder 1: enabled or disabled
171
+ #: includes/mollie/wc/gateway/banktransfer.php:45
172
+ msgid ""
173
+ "Should Mollie automatically mail the payment instructions to the customer? "
174
+ "Default <code>%s</code>"
175
+ msgstr ""
176
+
177
+ #: includes/mollie/wc/gateway/banktransfer.php:45
178
+ #: includes/mollie/wc/helper/settings.php:181
179
+ msgid "Disabled"
180
+ msgstr ""
181
+
182
+ #: includes/mollie/wc/gateway/banktransfer.php:48
183
+ msgid ""
184
+ "If you disable this option the customer still has an option to send the "
185
+ "payment instructions to an email address on the Mollie payment screen."
186
+ msgstr ""
187
+
188
+ #: includes/mollie/wc/gateway/banktransfer.php:93
189
+ msgid "Bank Transfer"
190
+ msgstr ""
191
+
192
+ #. translators: Placeholder 1: consumer name, placeholder 2: consumer IBAN,
193
+ #. placeholder 3: consumer BIC
194
+ #: includes/mollie/wc/gateway/banktransfer.php:144
195
+ #: includes/mollie/wc/gateway/ideal.php:86
196
+ #: includes/mollie/wc/gateway/sofort.php:56
197
+ msgid "Payment completed by <strong>%s</strong> (IBAN: %s, BIC: %s)"
198
+ msgstr ""
199
+
200
+ #: includes/mollie/wc/gateway/banktransfer.php:154
201
+ msgid ""
202
+ "Please complete your payment by transferring the total amount to the "
203
+ "following bank account:"
204
+ msgstr ""
205
+
206
+ #. translators: Placeholder 1: 'Stichting Mollie Payments'
207
+ #: includes/mollie/wc/gateway/banktransfer.php:158
208
+ msgid "Beneficiary: %s"
209
+ msgstr ""
210
+
211
+ #: includes/mollie/wc/gateway/banktransfer.php:159
212
+ msgid "IBAN: <strong>%s</strong>"
213
+ msgstr ""
214
+
215
+ #: includes/mollie/wc/gateway/banktransfer.php:160
216
+ msgid "BIC: %s"
217
+ msgstr ""
218
+
219
+ #. translators: Placeholder 1: Payment reference e.g. RF49-0000-4716-6216
220
+ #. (SEPA) or +++513/7587/59959+++ (Belgium)
221
+ #: includes/mollie/wc/gateway/banktransfer.php:165
222
+ msgid "Payment reference: %s"
223
+ msgstr ""
224
+
225
+ #. translators: Placeholder 1: Payment reference e.g. RF49-0000-4716-6216
226
+ #. (SEPA) or +++513/7587/59959+++ (Belgium)
227
+ #: includes/mollie/wc/gateway/banktransfer.php:170
228
+ msgid "Please provide the payment reference <strong>%s</strong>"
229
+ msgstr ""
230
+
231
+ #: includes/mollie/wc/gateway/banktransfer.php:183
232
+ msgid "The payment will expire on <strong>%s</strong>."
233
+ msgstr ""
234
+
235
+ #: includes/mollie/wc/gateway/banktransfer.php:190
236
+ msgid ""
237
+ "The payment will expire on <strong>%s</strong>. Please make sure you "
238
+ "transfer the total amount before this date."
239
+ msgstr ""
240
+
241
+ #: includes/mollie/wc/gateway/belfius.php:30
242
+ msgid "Belfius Direct Net"
243
+ msgstr ""
244
+
245
+ #: includes/mollie/wc/gateway/bitcoin.php:17
246
+ msgid "Bitcoin"
247
+ msgstr ""
248
+
249
+ #: includes/mollie/wc/gateway/creditcard.php:30
250
+ msgid "Credit card"
251
+ msgstr ""
252
+
253
+ #. translators: Placeholder 1: card holder
254
+ #: includes/mollie/wc/gateway/creditcard.php:56
255
+ msgid "Payment completed by <strong>%s</strong>"
256
+ msgstr ""
257
+
258
+ #: includes/mollie/wc/gateway/ideal.php:33
259
+ msgid "iDEAL"
260
+ msgstr ""
261
+
262
+ #. translators: Default iDEAL description, displayed above issuer drop down
263
+ #: includes/mollie/wc/gateway/ideal.php:42
264
+ msgid "Select your bank"
265
+ msgstr ""
266
+
267
+ #: includes/mollie/wc/gateway/mistercash.php:30
268
+ msgid "Bancontact / Mister Cash"
269
+ msgstr ""
270
+
271
+ #: includes/mollie/wc/gateway/paypal.php:30
272
+ msgid "PayPal"
273
+ msgstr ""
274
+
275
+ #. translators: Placeholder 1: PayPal consumer name, placeholder 2: PayPal
276
+ #. email, placeholder 3: PayPal transaction ID
277
+ #: includes/mollie/wc/gateway/paypal.php:56
278
+ msgid ""
279
+ "Payment completed by <strong>%s</strong> - %s (PayPal transaction ID: %s)"
280
+ msgstr ""
281
+
282
+ #: includes/mollie/wc/gateway/paysafecard.php:17
283
+ msgid "paysafecard"
284
+ msgstr ""
285
+
286
+ #: includes/mollie/wc/gateway/sofort.php:30
287
+ msgid "SOFORT Banking"
288
+ msgstr ""
289
+
290
+ #: includes/mollie/wc/helper/api.php:35
291
+ msgid "No API key provided."
292
+ msgstr ""
293
+
294
+ #: includes/mollie/wc/helper/api.php:39
295
+ msgid ""
296
+ "Invalid API key. The API key must start with 'live_' or 'test_' and can't "
297
+ "further contain any special characters."
298
+ msgstr ""
299
+
300
+ #: includes/mollie/wc/helper/settings.php:109
301
+ msgid "Error"
302
+ msgstr ""
303
+
304
+ #: includes/mollie/wc/helper/settings.php:119
305
+ msgid "Mollie status:"
306
+ msgstr ""
307
+
308
+ #: includes/mollie/wc/helper/settings.php:120
309
+ msgid "Connected"
310
+ msgstr ""
311
+
312
+ #: includes/mollie/wc/helper/settings.php:180
313
+ msgid "Gateway enabled"
314
+ msgstr ""
315
+
316
+ #: includes/mollie/wc/helper/settings.php:180
317
+ msgid "Enabled"
318
+ msgstr ""
319
+
320
+ #: includes/mollie/wc/helper/settings.php:181
321
+ msgid "Gateway disabled"
322
+ msgstr ""
323
+
324
+ #. translators: The surrounding %s's Will be replaced by a link to the Mollie
325
+ #. profile
326
+ #: includes/mollie/wc/helper/settings.php:192
327
+ msgid "The following payment methods are activated in your %sMollie profile%s:"
328
+ msgstr ""
329
+
330
+ #: includes/mollie/wc/helper/settings.php:202
331
+ msgid "Refresh"
332
+ msgstr ""
333
+
334
+ #: includes/mollie/wc/helper/settings.php:226
335
+ msgid "Edit"
336
+ msgstr ""
337
+
338
+ #. translators: Default payment description. {order_number} and {order_date}
339
+ #. are available tags.
340
+ #: includes/mollie/wc/helper/settings.php:257
341
+ msgid "Order {order_number}"
342
+ msgstr ""
343
+
344
+ #: includes/mollie/wc/helper/settings.php:260
345
+ msgid "Log plugin events."
346
+ msgstr ""
347
+
348
+ #: includes/mollie/wc/helper/settings.php:265
349
+ msgid "View logs"
350
+ msgstr ""
351
+
352
+ #. translators: Placeholder 1: Location of the log files
353
+ #: includes/mollie/wc/helper/settings.php:271
354
+ msgid "Log files are saved to <code>%s</code>"
355
+ msgstr ""
356
+
357
+ #: includes/mollie/wc/helper/settings.php:278
358
+ #: includes/mollie/wc/plugin.php:279
359
+ msgid "Mollie settings"
360
+ msgstr ""
361
+
362
+ #: includes/mollie/wc/helper/settings.php:281
363
+ msgid ""
364
+ "The following options are required to use the plugin and are used by all "
365
+ "Mollie payment methods"
366
+ msgstr ""
367
+
368
+ #: includes/mollie/wc/helper/settings.php:285
369
+ msgid "Live API key"
370
+ msgstr ""
371
+
372
+ #. translators: Placeholder 1: API key mode (live or test). The surrounding
373
+ #. %s's Will be replaced by a link to the Mollie profile
374
+ #: includes/mollie/wc/helper/settings.php:290
375
+ #: includes/mollie/wc/helper/settings.php:316
376
+ msgid ""
377
+ "The API key is used to connect to Mollie. You can find your <strong>%s</"
378
+ "strong> API key in your %sMollie profile%s"
379
+ msgstr ""
380
+
381
+ #: includes/mollie/wc/helper/settings.php:296
382
+ msgid "Live API key should start with live_"
383
+ msgstr ""
384
+
385
+ #: includes/mollie/wc/helper/settings.php:304
386
+ msgid "Enable test mode"
387
+ msgstr ""
388
+
389
+ #: includes/mollie/wc/helper/settings.php:307
390
+ msgid ""
391
+ "Enable test mode if you want to test the plugin without using real payments."
392
+ msgstr ""
393
+
394
+ #: includes/mollie/wc/helper/settings.php:311
395
+ msgid "Test API key"
396
+ msgstr ""
397
+
398
+ #: includes/mollie/wc/helper/settings.php:322
399
+ msgid "Test API key should start with test_"
400
+ msgstr ""
401
+
402
+ #. translators: Placeholder 1: Default payment description, placeholder 2: list
403
+ #. of available tags
404
+ #: includes/mollie/wc/helper/settings.php:333
405
+ msgid ""
406
+ "Payment description send to Mollie. Default <code>%s</code><br/>You can use "
407
+ "the following tags: %s"
408
+ msgstr ""
409
+
410
+ #: includes/mollie/wc/helper/settings.php:339
411
+ msgid "Payment screen language"
412
+ msgstr ""
413
+
414
+ #: includes/mollie/wc/helper/settings.php:342
415
+ msgid "Detect using browser language"
416
+ msgstr ""
417
+
418
+ #. translators: Placeholder 1: Current WordPress locale
419
+ #: includes/mollie/wc/helper/settings.php:344
420
+ msgid "Send WordPress language (%s)"
421
+ msgstr ""
422
+
423
+ #: includes/mollie/wc/helper/settings.php:344
424
+ msgid "default"
425
+ msgstr ""
426
+
427
+ #: includes/mollie/wc/helper/settings.php:345
428
+ msgid "Dutch"
429
+ msgstr ""
430
+
431
+ #: includes/mollie/wc/helper/settings.php:346
432
+ msgid "Flemish (Belgium)"
433
+ msgstr ""
434
+
435
+ #: includes/mollie/wc/helper/settings.php:347
436
+ msgid "English"
437
+ msgstr ""
438
+
439
+ #: includes/mollie/wc/helper/settings.php:348
440
+ msgid "German"
441
+ msgstr ""
442
+
443
+ #: includes/mollie/wc/helper/settings.php:349
444
+ msgid "Spanish"
445
+ msgstr ""
446
+
447
+ #: includes/mollie/wc/helper/settings.php:350
448
+ msgid "French"
449
+ msgstr ""
450
+
451
+ #: includes/mollie/wc/helper/settings.php:351
452
+ msgid "French (Belgium)"
453
+ msgstr ""
454
+
455
+ #: includes/mollie/wc/helper/settings.php:357
456
+ msgid "Debug Log"
457
+ msgstr ""
458
+
459
+ #. translators: Placeholder 1: Plugin name, placeholder 2: required WooCommerce
460
+ #. version, placeholder 3: used WooCommerce version
461
+ #: includes/mollie/wc/helper/status.php:53
462
+ msgid ""
463
+ "The %s plugin requires at least WooCommerce version %s, you are using "
464
+ "version %s. Please update your WooCommerce plugin."
465
+ msgstr ""
466
+
467
+ #: includes/mollie/wc/helper/status.php:64
468
+ msgid ""
469
+ "Mollie API client not installed. Please make sure the plugin is installed "
470
+ "correctly."
471
+ msgstr ""
472
+
473
+ #. translators: Placeholder 1: Required PHP version, placeholder 2: current PHP
474
+ #. version
475
+ #: includes/mollie/wc/helper/status.php:82
476
+ msgid "The client requires PHP version >= %s, you have %s."
477
+ msgstr ""
478
+
479
+ #: includes/mollie/wc/helper/status.php:89
480
+ msgid ""
481
+ "The Mollie API client requires the PHP extension JSON to be enabled. Please "
482
+ "enable the 'json' extension in your PHP configuration."
483
+ msgstr ""
484
+
485
+ #: includes/mollie/wc/helper/status.php:93
486
+ msgid ""
487
+ "The Mollie API client requires the PHP extension cURL to be enabled. Please "
488
+ "enable the 'curl' extension in your PHP configuration."
489
+ msgstr ""
490
+
491
+ #. translators: Placeholder 1: The required cURL function names
492
+ #: includes/mollie/wc/helper/status.php:99
493
+ msgid ""
494
+ "The Mollie API client requires the following PHP cURL functions to be "
495
+ "available: %s. Please make sure all of these functions are available."
496
+ msgstr ""
497
+
498
+ #: includes/mollie/wc/plugin.php:286
499
+ msgid "Logs"
500
+ msgstr ""
501
+
502
+ #: mollie-payments-for-woocommerce.php:49
503
+ msgid "Could not activate plugin %s"
504
+ msgstr ""
505
+
506
+ #: mollie-payments-for-woocommerce.php:93
507
+ msgid "%s deactivated because it depends on WooCommerce."
508
+ msgstr ""
509
+
510
+ #. Plugin Name of the plugin/theme
511
+ msgid "Mollie Payments for WooCommerce"
512
+ msgstr ""
513
+
514
+ #. Plugin URI of the plugin/theme
515
+ msgid "https://github.com/mollie/WooCommerce"
516
+ msgstr ""
517
+
518
+ #. Description of the plugin/theme
519
+ msgid ""
520
+ "Accept payments in WooCommerce with Mollie iDEAL, Credit Card, Bancontact/"
521
+ "Mister Cash, Bank Transfer, PayPal, Bitcoin, paysafecard and SOFORT Banking"
522
+ msgstr ""
523
+
524
+ #. Author of the plugin/theme
525
+ msgid "Mollie"
526
+ msgstr ""
527
+
528
+ #. Author URI of the plugin/theme
529
+ msgid "https://www.mollie.com"
530
+ msgstr ""
includes/mollie-api-php/LICENSE ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ Copyright (c) 2013-2015, Mollie B.V.
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5
+
6
+ Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7
+ Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
includes/mollie-api-php/README.mdown ADDED
@@ -0,0 +1,145 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ![Mollie](https://www.mollie.nl/files/Mollie-Logo-Style-Small.png)
2
+
3
+ # Mollie API client for PHP #
4
+
5
+ Accepting [iDEAL](https://www.mollie.com/ideal/), [Bancontact/Mister Cash](https://www.mollie.com/mistercash/), [SOFORT Banking](https://www.mollie.com/sofort/), [Creditcard](https://www.mollie.com/creditcard/), [SEPA Bank transfer](https://www.mollie.com/overboeking/), [Bitcoin](https://www.mollie.com/bitcoin/), [PayPal](https://www.mollie.com/paypal/), [Belfius Direct Net](https://www.mollie.com/belfiusdirectnet/) and [paysafecard](https://www.mollie.com/paysafecard/) online payments without fixed monthly costs or any punishing registration procedures. Just use the Mollie API to receive payments directly on your website or easily refund transactions to your customers.
6
+
7
+ [![Build Status](https://travis-ci.org/mollie/mollie-api-php.png)](https://travis-ci.org/mollie/mollie-api-php)
8
+
9
+ ## Requirements ##
10
+ To use the Mollie API client, the following things are required:
11
+
12
+ + Get yourself a free [Mollie account](https://www.mollie.com/aanmelden). No sign up costs.
13
+ + Create a new [Website profile](https://www.mollie.com/beheer/account/profielen/) to generate API keys (live and test mode) and setup your webhook.
14
+ + Now you're ready to use the Mollie API client in test mode.
15
+ + In order to accept payments in live mode, payment methods must be activated in your account. Follow [a few of steps](https://www.mollie.com/beheer/diensten), and let us handle the rest.
16
+ + PHP >= 5.2
17
+ + PHP cURL extension
18
+ + Up-to-date OpenSSL (or other SSL/TLS toolkit)
19
+ + SSL v3 disabled. Mollie does not support SSL v3 anymore.
20
+
21
+ ## Installation ##
22
+
23
+ By far the easiest way to install the Mollie API client is to require it with [Composer](http://getcomposer.org/doc/00-intro.md).
24
+
25
+ $ composer require mollie/mollie-api-php 1.2.x
26
+
27
+ {
28
+ "require": {
29
+ "mollie/mollie-api-php": "1.2.x"
30
+ }
31
+ }
32
+
33
+ You may also git checkout or [download all the files](https://github.com/mollie/mollie-api-php/archive/master.zip), and include the Mollie API client manually.
34
+
35
+ ## How to receive payments ##
36
+
37
+ To successfully receive a payment, these steps should be implemented:
38
+
39
+ 1. Use the Mollie API client to create a payment with the requested amount, description and optionally, a payment method. It is important to specify a unique redirect URL where the customer is supposed to return to after the payment is completed.
40
+
41
+ 2. Immediately after the payment is completed, our platform will send an asynchronous request to the configured webhook to allow the payment details to be retrieved, so you know when exactly to start processing the customer's order.
42
+
43
+ 3. The customer returns, and should be satisfied to see that the order was paid and is now being processed.
44
+
45
+ ## Getting started ##
46
+
47
+ Requiring the included autoloader. If you're using Composer, you can skip this step.
48
+
49
+ ```php
50
+ require "Mollie/API/Autoloader.php";
51
+ ```
52
+
53
+ Initializing the Mollie API client, and setting your API key.
54
+
55
+ ```php
56
+ $mollie = new Mollie_API_Client;
57
+ $mollie->setApiKey("test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM");
58
+ ```
59
+
60
+ Creating a new payment.
61
+
62
+ ```php
63
+ $payment = $mollie->payments->create(array(
64
+ "amount" => 10.00,
65
+ "description" => "My first API payment",
66
+ "redirectUrl" => "https://webshop.example.org/order/12345/",
67
+ ));
68
+ ```
69
+
70
+ _After creation, the payment id is available in the `$payment->id` property. You should store this id with your order._
71
+
72
+ Retrieving a payment.
73
+
74
+ ```php
75
+ $payment = $mollie->payments->get($payment->id);
76
+
77
+ if ($payment->isPaid())
78
+ {
79
+ echo "Payment received.";
80
+ }
81
+ ```
82
+
83
+ ### Fully integrated iDEAL payments ###
84
+
85
+ If you want to fully integrate iDEAL payments in your web site, some additional steps are required. First, you need to
86
+ retrieve the list of issuers (banks) that support iDEAL and have your customer pick the issuer he/she wants to use for
87
+ the payment.
88
+
89
+ Retrieve the list of issuers:
90
+
91
+ ```php
92
+ $issuers = $mollie->issuers->all();
93
+ ```
94
+
95
+ _`$issuers` will be a list of `Mollie_API_Object_Issuer` objects. Use the property `$id` of this object in the
96
+ API call, and the property `$name` for displaying the issuer to your customer. For a more in-depth example, see [Example 4](https://github.com/mollie/mollie-api-php/blob/master/examples/4-ideal-payment.php)._
97
+
98
+ Create a payment with the selected issuer:
99
+
100
+ ```php
101
+ $payment = $mollie->payments->create(array(
102
+ "amount" => 10.00,
103
+ "description" => "My first API payment",
104
+ "redirectUrl" => "https://webshop.example.org/order/12345/",
105
+ "method" => Mollie_API_Object_Method::IDEAL,
106
+ "issuer" => $selected_issuer_id, // e.g. "ideal_INGBNL2A"
107
+ ));
108
+ ```
109
+
110
+ _The `links` property of the `$payment` object will contain a string `paymentUrl`, which is a URL that points directly to the online banking environment of the selected issuer._
111
+
112
+ ### Refunding payments ###
113
+
114
+ The API also supports refunding payments. Note that there is no confirmation and that all refunds are immediate and
115
+ definitive. Refunds are only supported for iDEAL, credit card, Bancontact/Mister Cash, SOFORT Banking and bank transfer payments. Other types of payments cannot
116
+ be refunded through our API at the moment.
117
+
118
+ ```php
119
+ $payment = $mollie->payments->get($payment->id);
120
+
121
+ // Refund € 15 of this payment
122
+ $refund = $mollie->payments->refund($payment, 15.00);
123
+ ```
124
+
125
+ ## API documentation ##
126
+ If you wish to learn more about our API, please visit the [Mollie Developer Portal](https://www.mollie.com/developer/). API Documentation is available in both Dutch and English.
127
+
128
+ ## License ##
129
+ [BSD (Berkeley Software Distribution) License](http://www.opensource.org/licenses/bsd-license.php).
130
+ Copyright (c) 2013-2015, Mollie B.V.
131
+
132
+ ## Support ##
133
+ Contact: [www.mollie.com](https://www.mollie.com) — info@mollie.com — +31 20-612 88 55
134
+
135
+ + [More information about iDEAL via Mollie](https://www.mollie.com/ideal/)
136
+ + [More information about credit card via Mollie](https://www.mollie.com/creditcard/)
137
+ + [More information about Bancontact/Mister Cash via Mollie](https://www.mollie.com/mistercash/)
138
+ + [More information about SOFORT Banking via Mollie](https://www.mollie.com/sofort/)
139
+ + [More information about SEPA Bank transfer via Mollie](https://www.mollie.com/overboeking/)
140
+ + [More information about Bitcoin via Mollie](https://www.mollie.com/bitcoin/)
141
+ + [More information about PayPal via Mollie](https://www.mollie.com/paypal/)
142
+ + [More information about Belfius Direct Net via Mollie](https://www.mollie.com/belfiusdirectnet/)
143
+ + [More information about paysafecard via Mollie](https://www.mollie.com/paysafecard/)
144
+
145
+ ![Powered By Mollie](https://www.mollie.com/images/badge-betaling-medium.png)
includes/mollie-api-php/build.xml ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project name="universal-client-php" default="build">
3
+
4
+ <target name="build" depends="build-parallel"/>
5
+ <target name="build-serial" depends="prepare,phpunit"/>
6
+ <target name="build-parallel" depends="prepare,tools-parallel"/>
7
+
8
+ <target name="tools-parallel" description="Run tools in parallel" depends="lint">
9
+ <parallel threadCount="4">
10
+ <antcall target="phpunit"/>
11
+ <antcall target="phploc"/>
12
+ <antcall target="phpcpd"/>
13
+ </parallel>
14
+ </target>
15
+
16
+ <target name="clean" description="Cleanup build artifacts">
17
+ <delete dir="${basedir}/build/clover"/>
18
+ <delete dir="${basedir}/build/code-browser"/>
19
+ <delete dir="${basedir}/build/coverage"/>
20
+ <delete dir="${basedir}/build/logs"/>
21
+ </target>
22
+
23
+ <target name="prepare" depends="clean"
24
+ description="Prepare for build">
25
+ <mkdir dir="${basedir}/build/clover"/>
26
+ <mkdir dir="${basedir}/build/code-browser"/>
27
+ <mkdir dir="${basedir}/build/coverage"/>
28
+ <mkdir dir="${basedir}/build/logs"/>
29
+ </target>
30
+
31
+ <target name="lint">
32
+ <apply executable="php" failonerror="true">
33
+ <arg value="-l" />
34
+ <fileset dir="${basedir}">
35
+ <include name="**/*.php" />
36
+ <modified />
37
+ </fileset>
38
+ </apply>
39
+ </target>
40
+
41
+ <target name="phploc" description="Measure project size using PHPLOC">
42
+ <exec executable="nice" failonerror="true">
43
+ <arg value="phploc" />
44
+ <arg value="--count-tests"/>
45
+ <arg value="--log-csv"/>
46
+ <arg value="build/logs/phploc.csv"/>
47
+ <arg value="--names"/>
48
+ <arg value="*.php,*.phtml"/>
49
+ <arg value="--exclude"/>
50
+ <arg value="build"/>
51
+ <arg value="${basedir}" />
52
+ </exec>
53
+ </target>
54
+
55
+ <target name="phpcpd" description="Find duplicate code using PHPCPD">
56
+ <exec executable="nice">
57
+ <arg value="phpcpd" />
58
+ <arg value="--quiet" />
59
+ <arg value="--exclude"/>
60
+ <arg value="build"/>
61
+ <arg value="--exclude"/>
62
+ <arg value="tests"/>
63
+ <arg value="--log-pmd" />
64
+ <arg value="${basedir}/build/logs/cpd.xml" />
65
+ <arg value="." />
66
+ </exec>
67
+ </target>
68
+
69
+ <target name="phpunit" description="Run unit and integration tests with PHPUnit">
70
+ <!-- run the unit tests -->
71
+ <exec executable="phpunit" />
72
+ </target>
73
+
74
+ </project>
75
+
includes/mollie-api-php/composer.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "mollie/mollie-api-php",
3
+ "version": "1.2.8",
4
+ "description": "Mollie API client library for PHP",
5
+ "homepage": "https://github.com/mollie/mollie-api-php",
6
+ "license": "BSD-2-Clause",
7
+ "authors": [
8
+ {
9
+ "name": "Mollie B.V.",
10
+ "email": "info@mollie.com"
11
+ }
12
+ ],
13
+ "keywords": [
14
+ "mollie", "payment", "service", "ideal", "creditcard", "mistercash", "bancontact", "sofort", "sofortbanking",
15
+ "sepa", "bitcoin", "paypal", "paysafecard", "banktransfer", "belfius", "belfius direct net", "refunds",
16
+ "api", "payments", "gateway"
17
+ ],
18
+ "require-dev": {
19
+ "phpunit/phpunit": "3.7.*"
20
+ },
21
+ "autoload": {
22
+ "psr-0": {
23
+ "": "src/"
24
+ }
25
+ }
26
+ }
includes/mollie-api-php/examples/1-new-payment.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Example 1 - How to prepare a new payment with the Mollie API.
4
+ */
5
+
6
+ try
7
+ {
8
+ /*
9
+ * Initialize the Mollie API library with your API key.
10
+ *
11
+ * See: https://www.mollie.com/beheer/account/profielen/
12
+ */
13
+ include "initialize.php";
14
+
15
+ /*
16
+ * Generate a unique order id for this example. It is important to include this unique attribute
17
+ * in the redirectUrl (below) so a proper return page can be shown to the customer.
18
+ */
19
+ $order_id = time();
20
+
21
+ /*
22
+ * Determine the url parts to these example files.
23
+ */
24
+ $protocol = isset($_SERVER['HTTPS']) && strcasecmp('off', $_SERVER['HTTPS']) !== 0 ? "https" : "http";
25
+ $hostname = $_SERVER['HTTP_HOST'];
26
+ $path = dirname(isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['PHP_SELF']);
27
+
28
+ /*
29
+ * Payment parameters:
30
+ * amount Amount in EUROs. This example creates a € 10,- payment.
31
+ * description Description of the payment.
32
+ * redirectUrl Redirect location. The customer will be redirected there after the payment.
33
+ * metadata Custom metadata that is stored with the payment.
34
+ */
35
+ $payment = $mollie->payments->create(array(
36
+ "amount" => 10.00,
37
+ "description" => "My first API payment",
38
+ "redirectUrl" => "{$protocol}://{$hostname}{$path}/3-return-page.php?order_id={$order_id}",
39
+ "metadata" => array(
40
+ "order_id" => $order_id,
41
+ ),
42
+ ));
43
+
44
+ /*
45
+ * In this example we store the order with its payment status in a database.
46
+ */
47
+ database_write($order_id, $payment->status);
48
+
49
+ /*
50
+ * Send the customer off to complete the payment.
51
+ */
52
+ header("Location: " . $payment->getPaymentUrl());
53
+ }
54
+ catch (Mollie_API_Exception $e)
55
+ {
56
+ echo "API call failed: " . htmlspecialchars($e->getMessage());
57
+ }
58
+
59
+
60
+ /*
61
+ * NOTE: This example uses a text file as a database. Please use a real database like MySQL in production code.
62
+ */
63
+ function database_write ($order_id, $status)
64
+ {
65
+ $order_id = intval($order_id);
66
+ $database = dirname(__FILE__) . "/orders/order-{$order_id}.txt";
67
+
68
+ file_put_contents($database, $status);
69
+ }
includes/mollie-api-php/examples/2-webhook-verification.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Example 2 - How to verify Mollie API Payments in a webhook.
4
+ */
5
+
6
+ try
7
+ {
8
+ /*
9
+ * Initialize the Mollie API library with your API key.
10
+ *
11
+ * See: https://www.mollie.com/beheer/account/profielen/
12
+ */
13
+ include "initialize.php";
14
+
15
+ /*
16
+ * Retrieve the payment's current state.
17
+ */
18
+ $payment = $mollie->payments->get($_POST["id"]);
19
+ $order_id = $payment->metadata->order_id;
20
+
21
+ /*
22
+ * Update the order in the database.
23
+ */
24
+ database_write($order_id, $payment->status);
25
+
26
+ if ($payment->isPaid() == TRUE)
27
+ {
28
+ /*
29
+ * At this point you'd probably want to start the process of delivering the product to the customer.
30
+ */
31
+ }
32
+ elseif ($payment->isOpen() == FALSE)
33
+ {
34
+ /*
35
+ * The payment isn't paid and isn't open anymore. We can assume it was aborted.
36
+ */
37
+ }
38
+ }
39
+ catch (Mollie_API_Exception $e)
40
+ {
41
+ echo "API call failed: " . htmlspecialchars($e->getMessage());
42
+ }
43
+
44
+
45
+ /*
46
+ * NOTE: This example uses a text file as a database. Please use a real database like MySQL in production code.
47
+ */
48
+ function database_write ($order_id, $status)
49
+ {
50
+ $order_id = intval($order_id);
51
+ $database = dirname(__FILE__) . "/orders/order-{$order_id}.txt";
52
+
53
+ file_put_contents($database, $status);
54
+ }
includes/mollie-api-php/examples/3-return-page.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Example 3 - How to show a return page to the customer.
4
+ *
5
+ * In this example we retrieve the order stored in the database.
6
+ * Here, it's unnecessary to use the Mollie API Client.
7
+ */
8
+ $status = database_read($_GET["order_id"]);
9
+
10
+ /*
11
+ * Determine the url parts to these example files.
12
+ */
13
+ $protocol = isset($_SERVER['HTTPS']) && strcasecmp('off', $_SERVER['HTTPS']) !== 0 ? "https" : "http";
14
+ $hostname = $_SERVER['HTTP_HOST'];
15
+ $path = dirname(isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['PHP_SELF']);
16
+
17
+ echo "<p>Your payment status is '" . htmlspecialchars($status) . "'.</p>";
18
+ echo "<p>";
19
+ echo '<a href="' . $protocol . '://' . $hostname . $path . '/1-new-payment.php">Retry example 1</a><br>';
20
+ echo '<a href="' . $protocol . '://' . $hostname . $path . '/4-ideal-payment.php">Retry example 4</a><br>';
21
+ echo "</p>";
22
+
23
+
24
+ /*
25
+ * NOTE: This example uses a text file as a database. Please use a real database like MySQL in production code.
26
+ */
27
+ function database_read ($order_id)
28
+ {
29
+ $order_id = intval($order_id);
30
+ $database = dirname(__FILE__) . "/orders/order-{$order_id}.txt";
31
+
32
+ $status = @file_get_contents($database);
33
+
34
+ return $status ? $status : "unknown order";
35
+ }
includes/mollie-api-php/examples/4-ideal-payment.php ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Example 4 - How to prepare an iDEAL payment with the Mollie API.
4
+ */
5
+
6
+ try
7
+ {
8
+ /*
9
+ * Initialize the Mollie API library with your API key.
10
+ *
11
+ * See: https://www.mollie.com/beheer/account/profielen/
12
+ */
13
+ include "initialize.php";
14
+
15
+ /*
16
+ * First, let the customer pick the bank in a simple HTML form. This step is actually optional.
17
+ */
18
+ if ($_SERVER["REQUEST_METHOD"] != "POST")
19
+ {
20
+ $issuers = $mollie->issuers->all();
21
+
22
+ echo '<form method="post">Select your bank: <select name="issuer">';
23
+
24
+ foreach ($issuers as $issuer)
25
+ {
26
+ if ($issuer->method == Mollie_API_Object_Method::IDEAL)
27
+ {
28
+ echo '<option value=' . htmlspecialchars($issuer->id) . '>' . htmlspecialchars($issuer->name) . '</option>';
29
+ }
30
+ }
31
+
32
+ echo '<option value="">or select later</option>';
33
+ echo '</select><button>OK</button></form>';
34
+ exit;
35
+ }
36
+
37
+ /*
38
+ * Generate a unique order id for this example. It is important to include this unique attribute
39
+ * in the redirectUrl (below) so a proper return page can be shown to the customer.
40
+ */
41
+ $order_id = time();
42
+
43
+ /*
44
+ * Determine the url parts to these example files.
45
+ */
46
+ $protocol = isset($_SERVER['HTTPS']) && strcasecmp('off', $_SERVER['HTTPS']) !== 0 ? "https" : "http";
47
+ $hostname = $_SERVER['HTTP_HOST'];
48
+ $path = dirname(isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['PHP_SELF']);
49
+
50
+ /*
51
+ * Payment parameters:
52
+ * amount Amount in EUROs. This example creates a € 27.50 payment.
53
+ * method Payment method "ideal".
54
+ * description Description of the payment.
55
+ * redirectUrl Redirect location. The customer will be redirected there after the payment.
56
+ * metadata Custom metadata that is stored with the payment.
57
+ * issuer The customer's bank. If empty the customer can select it later.
58
+ */
59
+ $payment = $mollie->payments->create(array(
60
+ "amount" => 27.50,
61
+ "method" => Mollie_API_Object_Method::IDEAL,
62
+ "description" => "My first iDEAL payment",
63
+ "redirectUrl" => "{$protocol}://{$hostname}{$path}/3-return-page.php?order_id={$order_id}",
64
+ "metadata" => array(
65
+ "order_id" => $order_id,
66
+ ),
67
+ "issuer" => !empty($_POST["issuer"]) ? $_POST["issuer"] : NULL
68
+ ));
69
+
70
+ /*
71
+ * In this example we store the order with its payment status in a database.
72
+ */
73
+ database_write($order_id, $payment->status);
74
+
75
+ /*
76
+ * Send the customer off to complete the payment.
77
+ */
78
+ header("Location: " . $payment->getPaymentUrl());
79
+ }
80
+ catch (Mollie_API_Exception $e)
81
+ {
82
+ echo "API call failed: " . htmlspecialchars($e->getMessage());
83
+ }
84
+
85
+
86
+ /*
87
+ * NOTE: This example uses a text file as a database. Please use a real database like MySQL in production code.
88
+ */
89
+ function database_write ($order_id, $status)
90
+ {
91
+ $order_id = intval($order_id);
92
+ $database = dirname(__FILE__) . "/orders/order-{$order_id}.txt";
93
+
94
+ file_put_contents($database, $status);
95
+ }
96
+
includes/mollie-api-php/examples/5-payments-history.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Example 5 - How to retrieve your payments history.
4
+ */
5
+
6
+ try
7
+ {
8
+ /*
9
+ * Initialize the Mollie API library with your API key.
10
+ *
11
+ * See: https://www.mollie.com/beheer/account/profielen/
12
+ */
13
+ include "initialize.php";
14
+
15
+ /*
16
+ * Get the all payments for this API key ordered by newest.
17
+ */
18
+ $payments = $mollie->payments->all();
19
+
20
+ foreach ($mollie->payments->all() as $payment)
21
+ {
22
+ echo "&euro; " . htmlspecialchars($payment->amount) . ", status: " . htmlspecialchars($payment->status) . "<br>";
23
+ }
24
+ }
25
+ catch (Mollie_API_Exception $e)
26
+ {
27
+ echo "API call failed: " . htmlspecialchars($e->getMessage());
28
+ }
includes/mollie-api-php/examples/6-list-activated-methods.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Example 6 - How to get the currently activated payment methods.
4
+ */
5
+
6
+ try
7
+ {
8
+ /*
9
+ * Initialize the Mollie API library with your API key.
10
+ *
11
+ * See: https://www.mollie.com/beheer/account/profielen/
12
+ */
13
+ include "initialize.php";
14
+
15
+ /*
16
+ * Get the all the activated methods for this API key.
17
+ */
18
+ $methods = $mollie->methods->all();
19
+
20
+ foreach ($methods as $method)
21
+ {
22
+ echo '<div style="line-height:40px; vertical-align:top">';
23
+
24
+ echo '<img src="' . htmlspecialchars($method->image->normal) . '"> ';
25
+ echo htmlspecialchars($method->description) . ' (' . htmlspecialchars($method->id) . ')';
26
+
27
+ echo '</div>';
28
+ }
29
+ }
30
+ catch (Mollie_API_Exception $e)
31
+ {
32
+ echo "API call failed: " . htmlspecialchars($e->getMessage());
33
+ }
includes/mollie-api-php/examples/7-refund-payment.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Example 7 - How to refund a payment programmatically
4
+ */
5
+ try
6
+ {
7
+ /*
8
+ * Initialize the Mollie API library with your API key.
9
+ *
10
+ * See: https://www.mollie.com/beheer/account/profielen/
11
+ */
12
+ include "initialize.php";
13
+
14
+ /*
15
+ * Retrieve the payment you want to refund from the API.
16
+ */
17
+ $payment_id = "tr_q2cLW9pxMT";
18
+ $payment = $mollie->payments->get($payment_id);
19
+
20
+ /*
21
+ * Refund € 15,00 of the payment.
22
+ */
23
+ $refund = $mollie->payments->refund($payment, 15.00);
24
+
25
+ echo "The payment {$payment_id} is now refunded.", PHP_EOL;
26
+
27
+ /*
28
+ * Retrieve all refunds on a payment.
29
+ */
30
+ var_dump($mollie->payments_refunds->with($payment)->all());
31
+ }
32
+ catch (Mollie_API_Exception $e)
33
+ {
34
+ echo "API call failed: " . htmlspecialchars($e->getMessage());
35
+ }
includes/mollie-api-php/examples/8-custom-payment-webhook.php ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Example 8 - How to use a custom webhookUrl with the Mollie API. Useful for module developers and resellers.
4
+ */
5
+
6
+ try
7
+ {
8
+ /*
9
+ * Initialize the Mollie API library with your API key.
10
+ *
11
+ * See: https://www.mollie.com/beheer/account/profielen/
12
+ */
13
+ include "initialize.php";
14
+
15
+ /*
16
+ * Generate a unique order id for this example. It is important to include this unique attribute
17
+ * in the redirectUrl (below) so a proper return page can be shown to the customer.
18
+ */
19
+ $order_id = time();
20
+
21
+ /*
22
+ * Determine the url parts to these example files.
23
+ */
24
+ $protocol = isset($_SERVER['HTTPS']) && strcasecmp('off', $_SERVER['HTTPS']) !== 0 ? "https" : "http";
25
+ $hostname = $_SERVER['HTTP_HOST'];
26
+ $path = dirname(isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['PHP_SELF']);
27
+
28
+ /*
29
+ * Payment parameters:
30
+ * amount Amount in EUROs. This example creates a € 10,- payment.
31
+ * description Description of the payment.
32
+ * webhookUrl Custom webhook location, used instead of the default webhook URL in the Website profile.
33
+ * redirectUrl Redirect location. The customer will be redirected there after the payment.
34
+ * metadata Custom metadata that is stored with the payment.
35
+ */
36
+ $payment = $mollie->payments->create(array(
37
+ "amount" => 10.00,
38
+ "description" => "My first API payment",
39
+ "webhookUrl" => "{$protocol}://{$hostname}{$path}/2-webhook-verification.php",
40
+ "redirectUrl" => "{$protocol}://{$hostname}{$path}/3-return-page.php?order_id={$order_id}",
41
+ "metadata" => array(
42
+ "order_id" => $order_id,
43
+ ),
44
+ ));
45
+
46
+ /*
47
+ * In this example we store the order with its payment status in a database.
48
+ */
49
+ database_write($order_id, $payment->status);
50
+
51
+ /*
52
+ * Send the customer off to complete the payment.
53
+ */
54
+ header("Location: " . $payment->getPaymentUrl());
55
+ }
56
+ catch (Mollie_API_Exception $e)
57
+ {
58
+ echo "API call failed: " . htmlspecialchars($e->getMessage());
59
+ }
60
+
61
+
62
+ /*
63
+ * NOTE: This example uses a text file as a database. Please use a real database like MySQL in production code.
64
+ */
65
+ function database_write ($order_id, $status)
66
+ {
67
+ $order_id = intval($order_id);
68
+ $database = dirname(__FILE__) . "/orders/order-{$order_id}.txt";
69
+
70
+ file_put_contents($database, $status);
71
+ }
includes/mollie-api-php/examples/initialize.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once dirname(__FILE__) . "/../src/Mollie/API/Autoloader.php";
4
+
5
+ /*
6
+ * Initialize the Mollie API library with your API key.
7
+ *
8
+ * See: https://www.mollie.com/beheer/account/profielen/
9
+ */
10
+ $mollie = new Mollie_API_Client;
11
+ $mollie->setApiKey("test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM");
includes/mollie-api-php/phpunit.xml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <phpunit bootstrap="./tests/bootstrap.php" colors="true">
3
+ <php>
4
+ <ini name="display_errors" value="stderr" />
5
+ <ini name="error_log" value="/dev/null" />
6
+ </php>
7
+ <testsuite name="Unit tests">
8
+ <directory>tests/</directory>
9
+ </testsuite>
10
+ <logging>
11
+ <log type="junit" target="build/logs/junit-unittests.xml" logIncompleteSkipped="false"/>
12
+ <log type="coverage-html" target="build/coverage" charset="UTF-8"
13
+ yui="true" highlight="true"
14
+ lowUpperBound="35" highLowerBound="70"/>
15
+ <log type="coverage-clover" target="build/clover/clover-unittests.xml"/>
16
+ </logging>
17
+ </phpunit>
includes/mollie-api-php/src/Mollie/API/Autoloader.php ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ */
32
+ class Mollie_API_Autoloader
33
+ {
34
+ /**
35
+ * @param string $class_name
36
+ */
37
+ public static function autoload ($class_name)
38
+ {
39
+ if (strpos($class_name, "Mollie_") === 0)
40
+ {
41
+ $file_name = str_replace("_", "/", $class_name);
42
+ $file_name = realpath(dirname(__FILE__) . "/../../{$file_name}.php");
43
+
44
+ if ($file_name !== false)
45
+ {
46
+ require $file_name;
47
+ }
48
+ }
49
+ }
50
+
51
+ /**
52
+ * @return bool
53
+ */
54
+ public static function register ()
55
+ {
56
+ return spl_autoload_register(array(__CLASS__, "autoload"));
57
+ }
58
+
59
+ /**
60
+ * @return bool
61
+ */
62
+ public static function unregister ()
63
+ {
64
+ return spl_autoload_unregister(array(__CLASS__, "autoload"));
65
+ }
66
+ }
67
+
68
+ Mollie_API_Autoloader::register();
includes/mollie-api-php/src/Mollie/API/Client.php ADDED
@@ -0,0 +1,306 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ */
32
+ class Mollie_API_Client
33
+ {
34
+ /**
35
+ * Version of our client.
36
+ */
37
+ const CLIENT_VERSION = "1.2.8";
38
+
39
+ /**
40
+ * Endpoint of the remote API.
41
+ */
42
+ const API_ENDPOINT = "https://api.mollie.nl";
43
+
44
+ /**
45
+ * Version of the remote API.
46
+ */
47
+ const API_VERSION = "v1";
48
+
49
+ const HTTP_GET = "GET";
50
+ const HTTP_POST = "POST";
51
+ const HTTP_DELETE = "DELETE";
52
+
53
+ /**
54
+ * @var string
55
+ */
56
+ protected $api_endpoint = self::API_ENDPOINT;
57
+
58
+ /**
59
+ * RESTful Payments resource.
60
+ *
61
+ * @var Mollie_API_Resource_Payments
62
+ */
63
+ public $payments;
64
+
65
+ /**
66
+ * RESTful Payments Refunds resource.
67
+ *
68
+ * @var Mollie_API_Resource_Payments_Refunds
69
+ */
70
+ public $payments_refunds;
71
+
72
+ /**
73
+ * RESTful Issuers resource.
74
+ *
75
+ * @var Mollie_API_Resource_Issuers
76
+ */
77
+ public $issuers;
78
+
79
+ /**
80
+ * RESTful Methods resource.
81
+ *
82
+ * @var Mollie_API_Resource_Methods
83
+ */
84
+ public $methods;
85
+
86
+ /**
87
+ * @var string
88
+ */
89
+ protected $api_key;
90
+
91
+ /**
92
+ * @var array
93
+ */
94
+ protected $version_strings = array();
95
+
96
+ /**
97
+ * @var resource
98
+ */
99
+ protected $ch;
100
+
101
+ /**
102
+ * @throws Mollie_API_Exception_IncompatiblePlatform
103
+ */
104
+ public function __construct ()
105
+ {
106
+ $this->getCompatibilityChecker()
107
+ ->checkCompatibility();
108
+
109
+ $this->payments = new Mollie_API_Resource_Payments($this);
110
+ $this->payments_refunds = new Mollie_API_Resource_Payments_Refunds($this);
111
+ $this->issuers = new Mollie_API_Resource_Issuers($this);
112
+ $this->methods = new Mollie_API_Resource_Methods($this);
113
+
114
+ $curl_version = curl_version();
115
+
116
+ $this->addVersionString("Mollie/" . self::CLIENT_VERSION);
117
+ $this->addVersionString("PHP/" . phpversion());
118
+ $this->addVersionString("cURL/" . $curl_version["version"]);
119
+ $this->addVersionString($curl_version["ssl_version"]);
120
+ }
121
+
122
+ /**
123
+ * @param string $url
124
+ */
125
+ public function setApiEndpoint ($url)
126
+ {
127
+ $this->api_endpoint = rtrim(trim($url), '/');
128
+ }
129
+
130
+ /**
131
+ * @return string
132
+ */
133
+ public function getApiEndpoint ()
134
+ {
135
+ return $this->api_endpoint;
136
+ }
137
+
138
+ /**
139
+ * @param string $api_key The Mollie API key, starting with 'test_' or 'live_'
140
+ * @throws Mollie_API_Exception
141
+ */
142
+ public function setApiKey ($api_key)
143
+ {
144
+ $api_key = trim($api_key);
145
+
146
+ if (!preg_match('/^(live|test)_\w+$/', $api_key))
147
+ {
148
+ throw new Mollie_API_Exception("Invalid API key: '{$api_key}'. An API key must start with 'test_' or 'live_'.");
149
+ }
150
+
151
+ $this->api_key = $api_key;
152
+ }
153
+
154
+ /**
155
+ * @param string $version_string
156
+ */
157
+ public function addVersionString ($version_string)
158
+ {
159
+ $this->version_strings[] = str_replace(array(" ", "\t", "\n", "\r"), '-', $version_string);
160
+ }
161
+
162
+ /**
163
+ * Perform an http call. This method is used by the resource specific classes. Please use the $payments property to
164
+ * perform operations on payments.
165
+ *
166
+ * @see $payments
167
+ * @see $isuers
168
+ *
169
+ * @param $http_method
170
+ * @param $api_method
171
+ * @param $http_body
172
+ *
173
+ * @return string
174
+ * @throws Mollie_API_Exception
175
+ *
176
+ * @codeCoverageIgnore
177
+ */
178
+ public function performHttpCall ($http_method, $api_method, $http_body = NULL)
179
+ {
180
+ if (empty($this->api_key))
181
+ {
182
+ throw new Mollie_API_Exception("You have not set an API key. Please use setApiKey() to set the API key.");
183
+ }
184
+
185
+ if (empty($this->ch) || !function_exists("curl_reset"))
186
+ {
187
+ /*
188
+ * Initialize a cURL handle.
189
+ */
190
+ $this->ch = curl_init();
191
+ }
192
+ else
193
+ {
194
+ /*
195
+ * Reset the earlier used cURL handle.
196
+ */
197
+ curl_reset($this->ch);
198
+ }
199
+
200
+ $url = $this->api_endpoint . "/" . self::API_VERSION . "/" . $api_method;
201
+
202
+ curl_setopt($this->ch, CURLOPT_URL, $url);
203
+ curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, TRUE);
204
+ curl_setopt($this->ch, CURLOPT_TIMEOUT, 10);
205
+
206
+ $user_agent = join(' ', $this->version_strings);
207
+
208
+ $request_headers = array(
209
+ "Accept: application/json",
210
+ "Authorization: Bearer {$this->api_key}",
211
+ "User-Agent: {$user_agent}",
212
+ "X-Mollie-Client-Info: " . php_uname(),
213
+ );
214
+
215
+ curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, $http_method);
216
+
217
+ if ($http_body !== NULL)
218
+ {
219
+ $request_headers[] = "Content-Type: application/json";
220
+ curl_setopt($this->ch, CURLOPT_POST, 1);
221
+ curl_setopt($this->ch, CURLOPT_POSTFIELDS, $http_body);
222
+ }
223
+
224
+ curl_setopt($this->ch, CURLOPT_HTTPHEADER, $request_headers);
225
+ curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 2);
226
+ curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, TRUE);
227
+
228
+ /*
229
+ * On some servers, the list of installed certificates is outdated or not present at all (the ca-bundle.crt
230
+ * is not installed). So we tell cURL which certificates we trust.
231
+ */
232
+ curl_setopt($this->ch, CURLOPT_CAINFO, realpath(dirname(__FILE__) . "/cacert.pem"));
233
+
234
+ $body = curl_exec($this->ch);
235
+
236
+ if (curl_errno($this->ch) == CURLE_SSL_CACERT || curl_errno($this->ch) == CURLE_SSL_PEER_CERTIFICATE || curl_errno($this->ch) == 77 /* CURLE_SSL_CACERT_BADFILE (constant not defined in PHP though) */)
237
+ {
238
+ if (strpos(curl_error($this->ch), "error setting certificate verify locations") !== FALSE)
239
+ {
240
+ /*
241
+ * Error setting CA-file. Could be missing, or there is a bug in OpenSSL with too long paths.
242
+ * We give up. Don't do any peer validations.
243
+ *
244
+ * @internal #MOL017891004
245
+ */
246
+ array_shift($request_headers);
247
+ $request_headers[] = "X-Mollie-Debug: unable to use shipped root certificaties, no peer validation.";
248
+ curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
249
+ $body = curl_exec($this->ch);
250
+ }
251
+ }
252
+
253
+ if (strpos(curl_error($this->ch), "certificate subject name 'mollie.nl' does not match target host") !== FALSE)
254
+ {
255
+ /*
256
+ * On some servers, the wildcard SSL certificate is not processed correctly. This happens with OpenSSL 0.9.7
257
+ * from 2003.
258
+ */
259
+ $request_headers[] = "X-Mollie-Debug: old OpenSSL found";
260
+ curl_setopt($this->ch, CURLOPT_HTTPHEADER, $request_headers);
261
+ curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0);
262
+ $body = curl_exec($this->ch);
263
+ }
264
+
265
+ if (curl_errno($this->ch))
266
+ {
267
+ $message = "Unable to communicate with Mollie (".curl_errno($this->ch)."): " . curl_error($this->ch) . ".";
268
+
269
+ curl_close($this->ch);
270
+ $this->ch = NULL;
271
+
272
+ throw new Mollie_API_Exception($message);
273
+ }
274
+
275
+ if (!function_exists("curl_reset"))
276
+ {
277
+ /*
278
+ * Keep it open if supported by PHP, else close the handle.
279
+ */
280
+ curl_close($this->ch);
281
+ $this->ch = NULL;
282
+ }
283
+
284
+ return $body;
285
+ }
286
+
287
+ /**
288
+ * Close any cURL handles, if we have them.
289
+ */
290
+ public function __destruct ()
291
+ {
292
+ if (is_resource($this->ch))
293
+ {
294
+ curl_close($this->ch);
295
+ }
296
+ }
297
+
298
+ /**
299
+ * @return Mollie_API_CompatibilityChecker
300
+ * @codeCoverageIgnore
301
+ */
302
+ protected function getCompatibilityChecker ()
303
+ {
304
+ return new Mollie_API_CompatibilityChecker();
305
+ }
306
+ }
includes/mollie-api-php/src/Mollie/API/CompatibilityChecker.php ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ */
32
+ class Mollie_API_CompatibilityChecker
33
+ {
34
+ /**
35
+ * @var string
36
+ */
37
+ public static $MIN_PHP_VERSION = '5.2.0';
38
+
39
+ /**
40
+ * Used cURL functions
41
+ *
42
+ * @var array
43
+ */
44
+ public static $REQUIRED_CURL_FUNCTIONS = array(
45
+ 'curl_init',
46
+ 'curl_setopt',
47
+ 'curl_exec',
48
+ 'curl_error',
49
+ 'curl_errno',
50
+ 'curl_close',
51
+ 'curl_version',
52
+ );
53
+
54
+ /**
55
+ * @throws Mollie_API_Exception_IncompatiblePlatform
56
+ * @return void
57
+ */
58
+ public function checkCompatibility ()
59
+ {
60
+ if (!$this->satisfiesPhpVersion())
61
+ {
62
+ throw new Mollie_API_Exception_IncompatiblePlatform(
63
+ "The client requires PHP version >= " . self::$MIN_PHP_VERSION . ", you have " . PHP_VERSION . ".",
64
+ Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_PHP_VERSION
65
+ );
66
+ }
67
+
68
+ if (!$this->satisfiesJsonExtension())
69
+ {
70
+ throw new Mollie_API_Exception_IncompatiblePlatform(
71
+ "PHP extension json is not enabled. Please make sure to enable 'json' in your PHP configuration.",
72
+ Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_JSON_EXTENSION
73
+ );
74
+ }
75
+
76
+ if (!$this->satisfiesCurlExtension())
77
+ {
78
+ throw new Mollie_API_Exception_IncompatiblePlatform(
79
+ "PHP extension cURL is not enabled. Please make sure to enable 'curl' in your PHP configuration.",
80
+ Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_CURL_EXTENSION
81
+ );
82
+ }
83
+
84
+ if (!$this->satisfiesCurlFunctions())
85
+ {
86
+ throw new Mollie_API_Exception_IncompatiblePlatform(
87
+ "This client requires the following cURL functions to be available: " . implode(', ', self::$REQUIRED_CURL_FUNCTIONS) . ". " .
88
+ "Please check that none of these functions are disabled in your PHP configuration.",
89
+ Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_CURL_FUNCTION
90
+ );
91
+ }
92
+ }
93
+
94
+ /**
95
+ * @return bool
96
+ * @codeCoverageIgnore
97
+ */
98
+ public function satisfiesPhpVersion ()
99
+ {
100
+ return (bool) version_compare(PHP_VERSION, self::$MIN_PHP_VERSION, ">=");
101
+ }
102
+
103
+ /**
104
+ * @return bool
105
+ * @codeCoverageIgnore
106
+ */
107
+ public function satisfiesJsonExtension ()
108
+ {
109
+ // Check by extension_loaded
110
+ if (function_exists('extension_loaded') && extension_loaded('json'))
111
+ {
112
+ return TRUE;
113
+ }
114
+ elseif (function_exists('json_encode'))
115
+ {
116
+ return TRUE;
117
+ }
118
+
119
+ return FALSE;
120
+ }
121
+
122
+ /**
123
+ * @return bool
124
+ * @codeCoverageIgnore
125
+ */
126
+ public function satisfiesCurlExtension ()
127
+ {
128
+ // Check by extension_loaded
129
+ if (function_exists('extension_loaded') && extension_loaded('curl'))
130
+ {
131
+ return TRUE;
132
+ }
133
+ // Check by calling curl_version()
134
+ elseif (function_exists('curl_version') && curl_version())
135
+ {
136
+ return TRUE;
137
+ }
138
+
139
+ return FALSE;
140
+ }
141
+
142
+ /**
143
+ * @return bool
144
+ * @codeCoverageIgnore
145
+ */
146
+ public function satisfiesCurlFunctions ()
147
+ {
148
+ foreach (self::$REQUIRED_CURL_FUNCTIONS as $curl_function)
149
+ {
150
+ if (!function_exists($curl_function))
151
+ {
152
+ return FALSE;
153
+ }
154
+ }
155
+
156
+ return TRUE;
157
+ }
158
+ }
includes/mollie-api-php/src/Mollie/API/Exception.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ */
32
+ class Mollie_API_Exception extends Exception
33
+ {
34
+ /**
35
+ * @var string
36
+ */
37
+ protected $_field;
38
+
39
+ /**
40
+ * @return string
41
+ */
42
+ public function getField ()
43
+ {
44
+ return $this->_field;
45
+ }
46
+
47
+ /**
48
+ * @param string $field
49
+ */
50
+ public function setField ($field)
51
+ {
52
+ $this->_field = (string) $field;
53
+ }
54
+ }
includes/mollie-api-php/src/Mollie/API/Exception/IncompatiblePlatform.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ */
32
+ class Mollie_API_Exception_IncompatiblePlatform extends Mollie_API_Exception
33
+ {
34
+ const INCOMPATIBLE_PHP_VERSION = 1000;
35
+ const INCOMPATIBLE_CURL_EXTENSION = 2000;
36
+ const INCOMPATIBLE_CURL_FUNCTION = 2500;
37
+ const INCOMPATIBLE_JSON_EXTENSION = 3000;
38
+ }
includes/mollie-api-php/src/Mollie/API/Object/Issuer.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ */
32
+ class Mollie_API_Object_Issuer
33
+ {
34
+ /**
35
+ * Id of the issuer.
36
+ *
37
+ * @var string
38
+ */
39
+ public $id;
40
+
41
+ /**
42
+ * Name of the issuer.
43
+ *
44
+ * @var string
45
+ */
46
+ public $name;
47
+
48
+ /**
49
+ * The payment method this issuer belongs to.
50
+ *
51
+ * @see Mollie_API_Object_Method
52
+ * @var string
53
+ */
54
+ public $method;
55
+ }
includes/mollie-api-php/src/Mollie/API/Object/List.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ */
32
+ class Mollie_API_Object_List extends ArrayObject
33
+ {
34
+ /**
35
+ * Total number of available objects on the Mollie platform.
36
+ *
37
+ * @var int
38
+ */
39
+ public $totalCount;
40
+
41
+ /**
42
+ * Numeric offset from which this list of object was created.
43
+ *
44
+ * @var int
45
+ */
46
+ public $offset;
47
+
48
+ /**
49
+ * Total number of retrieved objects.
50
+ *
51
+ * @var int
52
+ */
53
+ public $count;
54
+ }
includes/mollie-api-php/src/Mollie/API/Object/Method.php ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ */
32
+ class Mollie_API_Object_Method
33
+ {
34
+ /**
35
+ * @link https://mollie.com/ideal
36
+ */
37
+ const IDEAL = "ideal";
38
+
39
+ /**
40
+ * @link https://mollie.com/paysafecard
41
+ */
42
+ const PAYSAFECARD = "paysafecard";
43
+
44
+ /**
45
+ * @link https://mollie.com/creditcard
46
+ */
47
+ const CREDITCARD = "creditcard";
48
+
49
+ /**
50
+ * @link https://mollie.com/mistercash
51
+ */
52
+ const MISTERCASH = "mistercash";
53
+
54
+ /**
55
+ * @link https://mollie.com/sofort
56
+ */
57
+ const SOFORT = "sofort";
58
+
59
+ /**
60
+ * @link https://mollie.com/banktransfer
61
+ */
62
+ const BANKTRANSFER = "banktransfer";
63
+
64
+ /**
65
+ * @link https://mollie.com/paypal
66
+ */
67
+ const PAYPAL = "paypal";
68
+
69
+ /**
70
+ * @link https://mollie.com/bitcoim
71
+ */
72
+ const BITCOIN = "bitcoin";
73
+
74
+ /**
75
+ * @link https://mollie.com/belfiusdirectnet
76
+ */
77
+ const BELFIUS = "belfius";
78
+
79
+ /**
80
+ * Id of the payment method.
81
+ *
82
+ * @var string
83
+ */
84
+ public $id;
85
+
86
+ /**
87
+ * More legible description of the payment method.
88
+ *
89
+ * @var string
90
+ */
91
+ public $description;
92
+
93
+ /**
94
+ * The $amount->minimum and $amount->maximum supported by this method and the used API key.
95
+ *
96
+ * @var object
97
+ */
98
+ public $amount;
99
+
100
+ /**
101
+ * The $image->normal and $image->bigger to display the payment method logo.
102
+ *
103
+ * @var object
104
+ */
105
+ public $image;
106
+
107
+ /**
108
+ * @return float|null
109
+ */
110
+ public function getMinimumAmount ()
111
+ {
112
+ if (empty($this->amount))
113
+ {
114
+ return NULL;
115
+ }
116
+
117
+ return (float) $this->amount->minimum;
118
+ }
119
+
120
+ /**
121
+ * @return float|null
122
+ */
123
+ public function getMaximumAmount ()
124
+ {
125
+ if (empty($this->amount))
126
+ {
127
+ return NULL;
128
+ }
129
+
130
+ return (float) $this->amount->maximum;
131
+ }
132
+ }
includes/mollie-api-php/src/Mollie/API/Object/Payment.php ADDED
@@ -0,0 +1,279 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ */
32
+ class Mollie_API_Object_Payment
33
+ {
34
+ /**
35
+ * The payment has just been created, no action has happened on it yet.
36
+ */
37
+ const STATUS_OPEN = "open";
38
+
39
+ /**
40
+ * The payment has just been started, no final confirmation yet.
41
+ */
42
+ const STATUS_PENDING = "pending";
43
+
44
+ /**
45
+ * The customer has cancelled the payment.
46
+ */
47
+ const STATUS_CANCELLED = "cancelled";
48
+
49
+ /**
50
+ * The payment has expired due to inaction of the customer.
51
+ */
52
+ const STATUS_EXPIRED = "expired";
53
+
54
+ /**
55
+ * The payment has been paid.
56
+ */
57
+ const STATUS_PAID = "paid";
58
+
59
+ /**
60
+ * The payment has been paidout and the money has been transferred to the bank account of the merchant.
61
+ */
62
+ const STATUS_PAIDOUT = "paidout";
63
+
64
+ /**
65
+ * The payment has been refunded, either through Mollie or through the payment provider (in the case of PayPal).
66
+ */
67
+ const STATUS_REFUNDED = "refunded";
68
+
69
+ /**
70
+ * Id of the payment (on the Mollie platform).
71
+ *
72
+ * @var string
73
+ */
74
+ public $id;
75
+
76
+ /**
77
+ * Mode of the payment, either "live" or "test" depending on the API Key that was used.
78
+ *
79
+ * @var string
80
+ */
81
+ public $mode;
82
+
83
+ /**
84
+ * The amount of the payment in EURO with 2 decimals.
85
+ *
86
+ * @var float
87
+ */
88
+ public $amount;
89
+
90
+ /**
91
+ * The amount of the payment that has been refunded to the consumer, in EURO with 2 decimals. This field will be
92
+ * NULL if the payment is not refunded.
93
+ *
94
+ * @var float|null
95
+ */
96
+ public $amountRefunded;
97
+
98
+ /**
99
+ * The amount of a refunded payment that can still be refunded, in EURO with 2 decimals. This field will be
100
+ * NULL if the payment is not refunded.
101
+ *
102
+ * @var float|null
103
+ */
104
+ public $amountRemaining;
105
+
106
+ /**
107
+ * Description of the payment that is shown to the customer during the payment, and
108
+ * possibly on the bank or credit card statement.
109
+ *
110
+ * @var string
111
+ */
112
+ public $description;
113
+
114
+ /**
115
+ * If method is empty/null, the customer can pick his/her preferred payment method.
116
+ *
117
+ * @see Mollie_API_Object_Method
118
+ * @var string|null
119
+ */
120
+ public $method;
121
+
122
+ /**
123
+ * The status of the payment.
124
+ *
125
+ * @var string
126
+ */
127
+ public $status = self::STATUS_OPEN;
128
+
129
+ /**
130
+ * The period after which the payment will expire in ISO-8601 format.
131
+ *
132
+ * @example P12DT11H30M45S (12 days, 11 hours, 30 minutes and 45 seconds)
133
+ * @var string|null
134
+ */
135
+ public $expiryPeriod;
136
+
137
+ /**
138
+ * Date and time the payment was created in ISO-8601 format.
139
+ *
140
+ * @example "2013-12-25T10:30:54.0Z"
141
+ * @var string|null
142
+ */
143
+ public $createdDatetime;
144
+
145
+ /**
146
+ * Date and time the payment was paid in ISO-8601 format.
147
+ *
148
+ * @var string|null
149
+ */
150
+ public $paidDatetime;
151
+
152
+ /**
153
+ * Date and time the payment was cancelled in ISO-8601 format.
154
+ *
155
+ * @var string|null
156
+ */
157
+ public $cancelledDatetime;
158
+
159
+ /**
160
+ * Date and time the payment was cancelled in ISO-8601 format.
161
+ *
162
+ * @var string|null
163
+ */
164
+ public $expiredDatetime;
165
+
166
+ /**
167
+ * The profile ID this payment belongs to.
168
+ *
169
+ * @example pfl_xH2kP6Nc6X
170
+ * @var string
171
+ */
172
+ public $profileId;
173
+
174
+ /**
175
+ * The locale used for this payment.
176
+ *
177
+ * @var string|null
178
+ */
179
+ public $locale;
180
+
181
+ /**
182
+ * During creation of the payment you can set custom metadata that is stored with
183
+ * the payment, and given back whenever you retrieve that payment.
184
+ *
185
+ * @var object|mixed|null
186
+ */
187
+ public $metadata;
188
+
189
+ /**
190
+ * Details of a successfully paid payment are set here. For example, the iDEAL
191
+ * payment method will set $details->consumerName and $details->consumerAccount.
192
+ *
193
+ * @var object
194
+ */
195
+ public $details;
196
+
197
+ /**
198
+ * @var object
199
+ */
200
+ public $links;
201
+
202
+
203
+ /**
204
+ * Is this payment cancelled?
205
+ *
206
+ * @return bool
207
+ */
208
+ public function isCancelled ()
209
+ {
210
+ return $this->status == self::STATUS_CANCELLED;
211
+ }
212
+
213
+
214
+ /**
215
+ * Is this payment expired?
216
+ *
217
+ * @return bool
218
+ */
219
+ public function isExpired ()
220
+ {
221
+ return $this->status == self::STATUS_EXPIRED;
222
+ }
223
+
224
+
225
+ /**
226
+ * Is this payment still open / ongoing?
227
+ *
228
+ * @return bool
229
+ */
230
+ public function isOpen ()
231
+ {
232
+ return $this->status == self::STATUS_OPEN;
233
+ }
234
+
235
+ /**
236
+ * Is this payment pending?
237
+ *
238
+ * @return bool
239
+ */
240
+ public function isPending ()
241
+ {
242
+ return $this->status == self::STATUS_PENDING;
243
+ }
244
+
245
+ /**
246
+ * Is this payment paid for?
247
+ *
248
+ * @return bool
249
+ */
250
+ public function isPaid ()
251
+ {
252
+ return !empty($this->paidDatetime);
253
+ }
254
+
255
+ /**
256
+ * Is this payment (partially) refunded?
257
+ *
258
+ * @return bool
259
+ */
260
+ public function isRefunded ()
261
+ {
262
+ return $this->status == self::STATUS_REFUNDED;
263
+ }
264
+
265
+ /**
266
+ * Get the payment URL where the customer can complete the payment.
267
+ *
268
+ * @return string|null
269
+ */
270
+ public function getPaymentUrl ()
271
+ {
272
+ if (empty($this->links->paymentUrl))
273
+ {
274
+ return NULL;
275
+ }
276
+
277
+ return $this->links->paymentUrl;
278
+ }
279
+ }
includes/mollie-api-php/src/Mollie/API/Object/Payment/Refund.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ */
32
+ class Mollie_API_Object_Payment_Refund
33
+ {
34
+ /**
35
+ * Id of the payment method.
36
+ *
37
+ * @var string
38
+ */
39
+ public $id;
40
+
41
+ /**
42
+ * The $amount that was refunded.
43
+ *
44
+ * @var float
45
+ */
46
+ public $amount;
47
+
48
+ /**
49
+ * The payment that was refunded.
50
+ *
51
+ * @var Mollie_API_Object_Payment
52
+ */
53
+ public $payment;
54
+
55
+ /**
56
+ * Date and time the payment was cancelled in ISO-8601 format.
57
+ *
58
+ * @var string|null
59
+ */
60
+ public $refundedDatetime;
61
+ }
includes/mollie-api-php/src/Mollie/API/Resource/Base.php ADDED
@@ -0,0 +1,250 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ */
32
+ abstract class Mollie_API_Resource_Base
33
+ {
34
+ const REST_CREATE = Mollie_API_Client::HTTP_POST;
35
+ const REST_UPDATE = Mollie_API_Client::HTTP_POST;
36
+ const REST_READ = Mollie_API_Client::HTTP_GET;
37
+ const REST_LIST = Mollie_API_Client::HTTP_GET;
38
+ const REST_DELETE = Mollie_API_Client::HTTP_DELETE;
39
+
40
+ /**
41
+ * Default number of objects to retrieve when listing all objects.
42
+ */
43
+ const DEFAULT_LIMIT = 50;
44
+
45
+ /**
46
+ * @var Mollie_API_Client
47
+ */
48
+ protected $api;
49
+
50
+ /**
51
+ * @param Mollie_API_Client $api
52
+ */
53
+ public function __construct(Mollie_API_Client $api)
54
+ {
55
+ $this->api = $api;
56
+ }
57
+
58
+ /**
59
+ * @return string
60
+ */
61
+ protected function getResourceName ()
62
+ {
63
+ $class_parts = explode("_", get_class($this));
64
+
65
+ return strtolower(end($class_parts));
66
+ }
67
+
68
+ /**
69
+ * @param $rest_resource
70
+ * @param $body
71
+ *
72
+ * @return object
73
+ */
74
+ private function rest_create($rest_resource, $body)
75
+ {
76
+ $result = $this->performApiCall(self::REST_CREATE, $rest_resource, $body);
77
+ return $this->copy($result, $this->getResourceObject($rest_resource));
78
+ }
79
+
80
+ /**
81
+ * Retrieves a single object from the REST API.
82
+ *
83
+ * @param string $rest_resource Resource name.
84
+ * @param string $id Id of the object to retrieve.
85
+ * @throws Mollie_API_Exception
86
+ * @return object
87
+ */
88
+ private function rest_read ($rest_resource, $id)
89
+ {
90
+ if (empty($id))
91
+ {
92
+ throw new Mollie_API_Exception("Invalid resource id.");
93
+ }
94
+
95
+ $id = urlencode($id);
96
+ $result = $this->performApiCall(self::REST_READ, "{$rest_resource}/{$id}");
97
+
98
+ return $this->copy($result, $this->getResourceObject($rest_resource));
99
+ }
100
+
101
+ /**
102
+ * Get a collection of objects from the REST API.
103
+ *
104
+ * @param $rest_resource
105
+ * @param int $offset
106
+ * @param int $limit
107
+ * @param array $options
108
+ *
109
+ * @return Mollie_API_Object_List
110
+ */
111
+ private function rest_list($rest_resource, $offset = 0, $limit = self::DEFAULT_LIMIT, array $options = array())
112
+ {
113
+ $options = array_merge(array("offset" => $offset, "count" => $limit), $options);
114
+
115
+ $api_path = $rest_resource . "?" . http_build_query($options, "", "&"); /* Force & because of some PHP 5.3 defaults */
116
+
117
+ $result = $this->performApiCall(self::REST_LIST, $api_path);
118
+
119
+ /** @var Mollie_API_Object_List $collection */
120
+ $collection = $this->copy($result, new Mollie_API_Object_List);
121
+
122
+ foreach ($result->data as $data_result)
123
+ {
124
+ $collection[] = $this->copy($data_result, $this->getResourceObject());
125
+ }
126
+
127
+ return $collection;
128
+ }
129
+
130
+ /**
131
+ * Copy the results received from the API into the PHP objects that we use.
132
+ *
133
+ * @param object $api_result
134
+ * @param object $object
135
+ *
136
+ * @return object
137
+ */
138
+ protected function copy($api_result, $object)
139
+ {
140
+ foreach ($api_result as $property => $value)
141
+ {
142
+ if (property_exists(get_class($object), $property))
143
+ {
144
+ $object->$property = $value;
145
+ }
146
+ }
147
+
148
+ return $object;
149
+ }
150
+
151
+ /**
152
+ * Get the object that is used by this API. Every API uses one type of object.
153
+ *
154
+ * @return object
155
+ */
156
+ abstract protected function getResourceObject();
157
+
158
+ /**
159
+ * Create a resource with the remote API.
160
+ *
161
+ * @param array $data An array containing details on the resource. Fields supported depend on the resource created.
162
+ *
163
+ * @throws Mollie_API_Exception
164
+ * @return object
165
+ */
166
+ public function create(array $data = array())
167
+ {
168
+ $encoded = json_encode($data);
169
+
170
+ if (version_compare(phpversion(), "5.3.0", ">="))
171
+ {
172
+ if (json_last_error() != JSON_ERROR_NONE)
173
+ {
174
+ throw new Mollie_API_Exception("Error encoding parameters into JSON: '" . json_last_error() . "'.");
175
+ }
176
+ }
177
+ else
178
+ {
179
+ if ($encoded === FALSE)
180
+ {
181
+ throw new Mollie_API_Exception("Error encoding parameters into JSON.");
182
+ }
183
+ }
184
+
185
+ return $this->rest_create($this->getResourceName(), $encoded);
186
+ }
187
+
188
+ /**
189
+ * Retrieve information on a single resource from Mollie.
190
+ *
191
+ * Will throw a Mollie_API_Exception if the resource cannot be found.
192
+ *
193
+ * @param string $resource_id
194
+ *
195
+ * @throws Mollie_API_Exception
196
+ * @return object
197
+ */
198
+ public function get($resource_id)
199
+ {
200
+ return $this->rest_read($this->getResourceName(), $resource_id);
201
+ }
202
+
203
+ /**
204
+ * Retrieve all objects of a certain resource.
205
+ *
206
+ * @param int $offset
207
+ * @param int $limit
208
+ * @param array $options
209
+ *
210
+ * @return Mollie_API_Object_List
211
+ */
212
+ public function all ($offset = 0, $limit = 0, array $options = array())
213
+ {
214
+ return $this->rest_list($this->getResourceName(), $offset, $limit, $options);
215
+ }
216
+
217
+ /**
218
+ * Perform an API call, and interpret the results and convert them to correct objects.
219
+ *
220
+ * @param $http_method
221
+ * @param $api_method
222
+ * @param null $http_body
223
+ *
224
+ * @return object
225
+ * @throws Mollie_API_Exception
226
+ */
227
+ protected function performApiCall($http_method, $api_method, $http_body = NULL)
228
+ {
229
+ $body = $this->api->performHttpCall($http_method, $api_method, $http_body);
230
+
231
+ if (!($object = @json_decode($body)))
232
+ {
233
+ throw new Mollie_API_Exception("Unable to decode Mollie response: '{$body}'.");
234
+ }
235
+
236
+ if (!empty($object->error))
237
+ {
238
+ $exception = new Mollie_API_Exception("Error executing API call ({$object->error->type}): {$object->error->message}.");
239
+
240
+ if (!empty($object->error->field))
241
+ {
242
+ $exception->setField($object->error->field);
243
+ }
244
+
245
+ throw $exception;
246
+ }
247
+
248
+ return $object;
249
+ }
250
+ }
includes/mollie-api-php/src/Mollie/API/Resource/Issuers.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ *
32
+ * @method Mollie_API_Object_Issuer[]|Mollie_API_Object_List all($offset = 0, $limit = 0)
33
+ * @method Mollie_API_Object_Issuer get($id)
34
+ */
35
+ class Mollie_API_Resource_Issuers extends Mollie_API_Resource_Base
36
+ {
37
+ /**
38
+ * @return Mollie_API_Object_Issuer
39
+ */
40
+ protected function getResourceObject ()
41
+ {
42
+ return new Mollie_API_Object_Issuer;
43
+ }
44
+ }
includes/mollie-api-php/src/Mollie/API/Resource/Methods.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ *
32
+ * @method Mollie_API_Object_Method[]|Mollie_API_Object_List all($offset = 0, $limit = 0)
33
+ * @method Mollie_API_Object_Method get($id)
34
+ */
35
+ class Mollie_API_Resource_Methods extends Mollie_API_Resource_Base
36
+ {
37
+ /**
38
+ * @return Mollie_API_Object_Method
39
+ */
40
+ protected function getResourceObject ()
41
+ {
42
+ return new Mollie_API_Object_Method;
43
+ }
44
+ }
includes/mollie-api-php/src/Mollie/API/Resource/Payments.php ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ *
32
+ * @method Mollie_API_Object_Payment[]|Mollie_API_Object_List all($offset = 0, $limit = 0)
33
+ * @method Mollie_API_Object_Payment create(array $data)
34
+ */
35
+ class Mollie_API_Resource_Payments extends Mollie_API_Resource_Base
36
+ {
37
+ /**
38
+ * @var string
39
+ */
40
+ const RESOURCE_ID_PREFIX = 'tr_';
41
+
42
+ /**
43
+ * @return Mollie_API_Object_Payment
44
+ */
45
+ protected function getResourceObject ()
46
+ {
47
+ return new Mollie_API_Object_Payment;
48
+ }
49
+
50
+ /**
51
+ * Retrieve a single payment from Mollie.
52
+ *
53
+ * Will throw a Mollie_API_Exception if the payment id is invalid or the resource cannot be found.
54
+ *
55
+ * @param string $payment_id
56
+ *
57
+ * @throws Mollie_API_Exception
58
+ * @return Mollie_API_Object_Payment
59
+ */
60
+ public function get($payment_id)
61
+ {
62
+ if (empty($payment_id) || strpos($payment_id, self::RESOURCE_ID_PREFIX) !== 0)
63
+ {
64
+ throw new Mollie_API_Exception("Invalid payment ID: '{$payment_id}'. A payment ID should start with '" . self::RESOURCE_ID_PREFIX . "'.");
65
+ }
66
+
67
+ return parent::get($payment_id);
68
+ }
69
+
70
+ /**
71
+ * @param Mollie_API_Object_Payment $payment
72
+ * @param float|NULL $amount Amount to refund, or NULL to refund full amount.
73
+ * @return Mollie_API_Object_Payment_Refund
74
+ */
75
+ public function refund (Mollie_API_Object_Payment $payment, $amount = NULL)
76
+ {
77
+ $resource = "{$this->getResourceName()}/" . urlencode($payment->id) . "/refunds";
78
+
79
+ $body = NULL;
80
+ if ($amount)
81
+ {
82
+ $body = json_encode(
83
+ array("amount" => $amount)
84
+ );
85
+ }
86
+
87
+ $result = $this->performApiCall(self::REST_CREATE, $resource, $body);
88
+
89
+ /*
90
+ * Update the payment with the new properties that we got from the refund.
91
+ */
92
+ if (!empty($result->payment))
93
+ {
94
+ foreach ($result->payment as $payment_key => $payment_value)
95
+ {
96
+ $payment->{$payment_key} = $payment_value;
97
+ }
98
+ }
99
+
100
+ return $this->copy($result, new Mollie_API_Object_Payment_Refund);
101
+ }
102
+ }
includes/mollie-api-php/src/Mollie/API/Resource/Payments/Refunds.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Copyright (c) 2013, Mollie B.V.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * - Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25
+ * DAMAGE.
26
+ *
27
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
28
+ * @author Mollie B.V. <info@mollie.com>
29
+ * @copyright Mollie B.V.
30
+ * @link https://www.mollie.com
31
+ *
32
+ * @method Mollie_API_Object_Payment_Refund[]|Mollie_API_Object_List all($offset = 0, $limit = 0)
33
+ * @method Mollie_API_Object_Payment_Refund get($resource_id)
34
+ */
35
+ class Mollie_API_Resource_Payments_Refunds extends Mollie_API_Resource_Base
36
+ {
37
+ /**
38
+ * @var string
39
+ */
40
+ private $payment_id;
41
+
42
+ /**
43
+ * @return Mollie_API_Object_Method
44
+ */
45
+ protected function getResourceObject ()
46
+ {
47
+ return new Mollie_API_Object_Payment_Refund;
48
+ }
49
+
50
+ /**
51
+ * @return string
52
+ */
53
+ protected function getResourceName ()
54
+ {
55
+ return "payments/" . urlencode($this->payment_id) . "/refunds";
56
+ }
57
+
58
+ /**
59
+ * Set the resource to use a certain payment. Use this method before performing a get() or all() call.
60
+ *
61
+ * @param Mollie_API_Object_Payment $payment
62
+ * @return self
63
+ */
64
+ public function with(Mollie_API_Object_Payment $payment)
65
+ {
66
+ $this->payment_id = $payment->id;
67
+ return $this;
68
+ }
69
+ }
includes/mollie-api-php/src/Mollie/API/cacert.pem ADDED
@@ -0,0 +1,3860 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ##
2
+ ## Bundle of CA Root Certificates
3
+ ##
4
+ ## Certificate data from Mozilla as of: Wed Feb 25 16:40:11 2015
5
+ ##
6
+ ## This is a bundle of X.509 certificates of public Certificate Authorities
7
+ ## (CA). These were automatically extracted from Mozilla's root certificates
8
+ ## file (certdata.txt). This file can be found in the mozilla source tree:
9
+ ## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
10
+ ##
11
+ ## It contains the certificates in PEM format and therefore
12
+ ## can be directly used with curl / libcurl / php_curl, or with
13
+ ## an Apache+mod_ssl webserver for SSL client authentication.
14
+ ## Just configure this file as the SSLCACertificateFile.
15
+ ##
16
+ ## Conversion done with mk-ca-bundle.pl version 1.25.
17
+ ## SHA1: f9bc9fa76145720d94124527f82a7185d921975e
18
+ ##
19
+
20
+
21
+ Equifax Secure CA
22
+ =================
23
+ -----BEGIN CERTIFICATE-----
24
+ MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
25
+ ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
26
+ MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
27
+ B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
28
+ nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
29
+ fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
30
+ 8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
31
+ A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
32
+ CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
33
+ A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
34
+ spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
35
+ Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
36
+ zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
37
+ BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
38
+ 70+sB3c4
39
+ -----END CERTIFICATE-----
40
+
41
+ GlobalSign Root CA
42
+ ==================
43
+ -----BEGIN CERTIFICATE-----
44
+ MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
45
+ GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
46
+ b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
47
+ BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
48
+ VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
49
+ DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
50
+ THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
51
+ Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
52
+ c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
53
+ gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
54
+ HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
55
+ AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
56
+ Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
57
+ j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
58
+ hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
59
+ X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
60
+ -----END CERTIFICATE-----
61
+
62
+ GlobalSign Root CA - R2
63
+ =======================
64
+ -----BEGIN CERTIFICATE-----
65
+ MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
66
+ YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
67
+ bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
68
+ aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
69
+ bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
70
+ ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
71
+ s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
72
+ S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
73
+ TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
74
+ ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
75
+ FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
76
+ YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
77
+ BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
78
+ 9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
79
+ 01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
80
+ 9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
81
+ TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
82
+ -----END CERTIFICATE-----
83
+
84
+ Verisign Class 3 Public Primary Certification Authority - G3
85
+ ============================================================
86
+ -----BEGIN CERTIFICATE-----
87
+ MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
88
+ UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
89
+ cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
90
+ IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
91
+ dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
92
+ CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
93
+ dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
94
+ cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
95
+ Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
96
+ ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
97
+ EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
98
+ cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
99
+ EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
100
+ 055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
101
+ ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
102
+ j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
103
+ /Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
104
+ xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
105
+ t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
106
+ -----END CERTIFICATE-----
107
+
108
+ Verisign Class 4 Public Primary Certification Authority - G3
109
+ ============================================================
110
+ -----BEGIN CERTIFICATE-----
111
+ MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
112
+ UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
113
+ cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
114
+ IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
115
+ dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
116
+ CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
117
+ dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
118
+ cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
119
+ Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
120
+ ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
121
+ tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
122
+ 8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
123
+ Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
124
+ Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
125
+ j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
126
+ mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
127
+ fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
128
+ RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
129
+ UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
130
+ -----END CERTIFICATE-----
131
+
132
+ Entrust.net Premium 2048 Secure Server CA
133
+ =========================================
134
+ -----BEGIN CERTIFICATE-----
135
+ MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
136
+ ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
137
+ bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
138
+ BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
139
+ NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
140
+ d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
141
+ MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
142
+ ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
143
+ MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
144
+ Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
145
+ hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
146
+ nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
147
+ VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
148
+ BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
149
+ KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
150
+ T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
151
+ zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
152
+ J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
153
+ nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
154
+ -----END CERTIFICATE-----
155
+
156
+ Baltimore CyberTrust Root
157
+ =========================
158
+ -----BEGIN CERTIFICATE-----
159
+ MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
160
+ ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
161
+ ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
162
+ SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
163
+ dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
164
+ uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
165
+ UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
166
+ G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
167
+ XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
168
+ l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
169
+ VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
170
+ BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
171
+ cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
172
+ hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
173
+ Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
174
+ RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
175
+ -----END CERTIFICATE-----
176
+
177
+ Equifax Secure Global eBusiness CA
178
+ ==================================
179
+ -----BEGIN CERTIFICATE-----
180
+ MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
181
+ RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
182
+ bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
183
+ HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
184
+ b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
185
+ PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
186
+ qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
187
+ hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
188
+ BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
189
+ MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
190
+ I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
191
+ NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
192
+ -----END CERTIFICATE-----
193
+
194
+ AddTrust Low-Value Services Root
195
+ ================================
196
+ -----BEGIN CERTIFICATE-----
197
+ MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
198
+ QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
199
+ cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
200
+ CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
201
+ ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
202
+ AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
203
+ 54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
204
+ oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
205
+ Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
206
+ GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
207
+ HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
208
+ AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
209
+ RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
210
+ HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
211
+ ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
212
+ iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
213
+ eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
214
+ mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
215
+ ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
216
+ -----END CERTIFICATE-----
217
+
218
+ AddTrust External Root
219
+ ======================
220
+ -----BEGIN CERTIFICATE-----
221
+ MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
222
+ QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
223
+ VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
224
+ NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
225
+ cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
226
+ Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
227
+ +iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
228
+ Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
229
+ aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
230
+ 2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
231
+ 7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
232
+ BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
233
+ VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
234
+ VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
235
+ IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
236
+ j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
237
+ 6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
238
+ e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
239
+ G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
240
+ -----END CERTIFICATE-----
241
+
242
+ AddTrust Public Services Root
243
+ =============================
244
+ -----BEGIN CERTIFICATE-----
245
+ MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
246
+ QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
247
+ cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
248
+ BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
249
+ dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
250
+ AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
251
+ nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
252
+ d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
253
+ Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
254
+ HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
255
+ A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
256
+ /zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
257
+ FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
258
+ A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
259
+ JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
260
+ +YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
261
+ GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
262
+ Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
263
+ EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
264
+ -----END CERTIFICATE-----
265
+
266
+ AddTrust Qualified Certificates Root
267
+ ====================================
268
+ -----BEGIN CERTIFICATE-----
269
+ MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
270
+ QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
271
+ cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
272
+ CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
273
+ IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
274
+ 9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
275
+ 64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
276
+ KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
277
+ L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
278
+ wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
279
+ MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
280
+ BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
281
+ BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
282
+ azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
283
+ ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
284
+ GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
285
+ dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
286
+ RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
287
+ iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
288
+ -----END CERTIFICATE-----
289
+
290
+ Entrust Root Certification Authority
291
+ ====================================
292
+ -----BEGIN CERTIFICATE-----
293
+ MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
294
+ BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
295
+ b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
296
+ A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
297
+ MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
298
+ MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
299
+ Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
300
+ dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
301
+ ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
302
+ A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
303
+ Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
304
+ j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
305
+ rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
306
+ DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
307
+ MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
308
+ hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
309
+ A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
310
+ Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
311
+ v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
312
+ W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
313
+ tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
314
+ -----END CERTIFICATE-----
315
+
316
+ RSA Security 2048 v3
317
+ ====================
318
+ -----BEGIN CERTIFICATE-----
319
+ MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
320
+ ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
321
+ MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
322
+ BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
323
+ AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
324
+ Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
325
+ WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
326
+ KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
327
+ +Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
328
+ MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
329
+ FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
330
+ v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
331
+ 0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
332
+ VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
333
+ nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
334
+ pKnXwiJPZ9d37CAFYd4=
335
+ -----END CERTIFICATE-----
336
+
337
+ GeoTrust Global CA
338
+ ==================
339
+ -----BEGIN CERTIFICATE-----
340
+ MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
341
+ Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
342
+ MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
343
+ LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
344
+ CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
345
+ BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
346
+ 8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
347
+ T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
348
+ vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
349
+ AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
350
+ DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
351
+ zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
352
+ d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
353
+ mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
354
+ XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
355
+ Mw==
356
+ -----END CERTIFICATE-----
357
+
358
+ GeoTrust Global CA 2
359
+ ====================
360
+ -----BEGIN CERTIFICATE-----
361
+ MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
362
+ R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
363
+ MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
364
+ LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
365
+ ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
366
+ NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
367
+ LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
368
+ Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
369
+ HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
370
+ MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
371
+ K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
372
+ srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
373
+ ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
374
+ OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
375
+ x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
376
+ H4z1Ir+rzoPz4iIprn2DQKi6bA==
377
+ -----END CERTIFICATE-----
378
+
379
+ GeoTrust Universal CA
380
+ =====================
381
+ -----BEGIN CERTIFICATE-----
382
+ MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
383
+ R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
384
+ MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
385
+ Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
386
+ ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
387
+ JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
388
+ RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
389
+ 7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
390
+ 8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
391
+ qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
392
+ Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
393
+ Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
394
+ KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
395
+ ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
396
+ XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
397
+ hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
398
+ aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
399
+ qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
400
+ oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
401
+ xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
402
+ KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
403
+ DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
404
+ xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
405
+ p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
406
+ P/rmMuGNG2+k5o7Y+SlIis5z/iw=
407
+ -----END CERTIFICATE-----
408
+
409
+ GeoTrust Universal CA 2
410
+ =======================
411
+ -----BEGIN CERTIFICATE-----
412
+ MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
413
+ R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
414
+ MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
415
+ SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
416
+ A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
417
+ DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
418
+ j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
419
+ JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
420
+ QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
421
+ WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
422
+ 20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
423
+ ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
424
+ SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
425
+ 8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
426
+ +/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
427
+ BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
428
+ dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
429
+ 4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
430
+ mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
431
+ A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
432
+ Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
433
+ pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
434
+ FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
435
+ gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
436
+ X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
437
+ -----END CERTIFICATE-----
438
+
439
+ Visa eCommerce Root
440
+ ===================
441
+ -----BEGIN CERTIFICATE-----
442
+ MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
443
+ EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
444
+ QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
445
+ WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
446
+ VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
447
+ bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
448
+ F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
449
+ RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
450
+ TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
451
+ /k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
452
+ GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
453
+ MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
454
+ CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
455
+ YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
456
+ zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
457
+ YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
458
+ 398znM/jra6O1I7mT1GvFpLgXPYHDw==
459
+ -----END CERTIFICATE-----
460
+
461
+ Certum Root CA
462
+ ==============
463
+ -----BEGIN CERTIFICATE-----
464
+ MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
465
+ ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
466
+ Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
467
+ by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
468
+ wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
469
+ kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
470
+ 89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
471
+ Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
472
+ NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
473
+ hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
474
+ GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
475
+ GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
476
+ 0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
477
+ qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
478
+ -----END CERTIFICATE-----
479
+
480
+ Comodo AAA Services root
481
+ ========================
482
+ -----BEGIN CERTIFICATE-----
483
+ MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
484
+ R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
485
+ TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
486
+ MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
487
+ c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
488
+ BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
489
+ ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
490
+ C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
491
+ i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
492
+ Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
493
+ Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
494
+ Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
495
+ BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
496
+ cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
497
+ LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
498
+ 7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
499
+ Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
500
+ 8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
501
+ 12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
502
+ -----END CERTIFICATE-----
503
+
504
+ Comodo Secure Services root
505
+ ===========================
506
+ -----BEGIN CERTIFICATE-----
507
+ MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
508
+ R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
509
+ TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
510
+ MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
511
+ Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
512
+ BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
513
+ ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
514
+ 9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
515
+ rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
516
+ oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
517
+ p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
518
+ FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
519
+ gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
520
+ YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
521
+ aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
522
+ 4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
523
+ Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
524
+ DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
525
+ pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
526
+ RR3B7Hzs/Sk=
527
+ -----END CERTIFICATE-----
528
+
529
+ Comodo Trusted Services root
530
+ ============================
531
+ -----BEGIN CERTIFICATE-----
532
+ MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
533
+ R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
534
+ TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
535
+ MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
536
+ bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
537
+ IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
538
+ AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
539
+ 3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
540
+ /9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
541
+ juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
542
+ ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
543
+ DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
544
+ /zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
545
+ ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
546
+ cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
547
+ uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
548
+ pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
549
+ BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
550
+ R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
551
+ 9y5Xt5hwXsjEeLBi
552
+ -----END CERTIFICATE-----
553
+
554
+ QuoVadis Root CA
555
+ ================
556
+ -----BEGIN CERTIFICATE-----
557
+ MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
558
+ ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
559
+ eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
560
+ MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
561
+ cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
562
+ EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
563
+ AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
564
+ J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
565
+ F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
566
+ YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
567
+ AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
568
+ PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
569
+ ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
570
+ MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
571
+ YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
572
+ ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
573
+ Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
574
+ Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
575
+ BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
576
+ FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
577
+ aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
578
+ tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
579
+ fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
580
+ LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
581
+ gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
582
+ 5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
583
+ 5nrQNiOKSnQ2+Q==
584
+ -----END CERTIFICATE-----
585
+
586
+ QuoVadis Root CA 2
587
+ ==================
588
+ -----BEGIN CERTIFICATE-----
589
+ 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
615
+ -----END CERTIFICATE-----
616
+
617
+ QuoVadis Root CA 3
618
+ ==================
619
+ -----BEGIN CERTIFICATE-----
620
+ MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
621
+ EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
622
+ OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
623
+ aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
624
+ DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
625
+ DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
626
+ KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
627
+ DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
628
+ BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
629
+ p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
630
+ nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
631
+ MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
632
+ Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
633
+ uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
634
+ BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
635
+ YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
636
+ aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
637
+ BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
638
+ VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
639
+ ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
640
+ AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
641
+ qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
642
+ hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
643
+ POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
644
+ Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
645
+ 8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
646
+ bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
647
+ g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
648
+ vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
649
+ qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
650
+ -----END CERTIFICATE-----
651
+
652
+ Security Communication Root CA
653
+ ==============================
654
+ -----BEGIN CERTIFICATE-----
655
+ MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
656
+ U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
657
+ HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
658
+ U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
659
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
660
+ 8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
661
+ DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
662
+ 5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
663
+ DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
664
+ JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
665
+ DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
666
+ 0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
667
+ mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
668
+ s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
669
+ 6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
670
+ FL39vmwLAw==
671
+ -----END CERTIFICATE-----
672
+
673
+ Sonera Class 2 Root CA
674
+ ======================
675
+ -----BEGIN CERTIFICATE-----
676
+ MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
677
+ U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
678
+ NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
679
+ IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
680
+ /Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
681
+ dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
682
+ f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
683
+ tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
684
+ nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
685
+ XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
686
+ 0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
687
+ cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
688
+ Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
689
+ EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
690
+ llpwrN9M
691
+ -----END CERTIFICATE-----
692
+
693
+ Staat der Nederlanden Root CA
694
+ =============================
695
+ -----BEGIN CERTIFICATE-----
696
+ MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
697
+ ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
698
+ Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
699
+ HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
700
+ bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
701
+ vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
702
+ jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
703
+ C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
704
+ vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
705
+ 22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
706
+ HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
707
+ dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
708
+ BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
709
+ EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
710
+ MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
711
+ nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
712
+ iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
713
+ -----END CERTIFICATE-----
714
+
715
+ UTN DATACorp SGC Root CA
716
+ ========================
717
+ -----BEGIN CERTIFICATE-----
718
+ MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
719
+ BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
720
+ IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
721
+ BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
722
+ MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
723
+ HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
724
+ dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
725
+ AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
726
+ raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
727
+ wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
728
+ 9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
729
+ 33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
730
+ DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
731
+ BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
732
+ LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
733
+ DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
734
+ Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
735
+ I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
736
+ EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
737
+ DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
738
+ -----END CERTIFICATE-----
739
+
740
+ UTN USERFirst Hardware Root CA
741
+ ==============================
742
+ -----BEGIN CERTIFICATE-----
743
+ MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
744
+ BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
745
+ IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
746
+ BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
747
+ OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
748
+ eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
749
+ ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
750
+ DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
751
+ wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
752
+ tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
753
+ i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
754
+ Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
755
+ gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
756
+ lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
757
+ UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
758
+ BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
759
+ //bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
760
+ XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
761
+ lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
762
+ iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
763
+ nfhmqA==
764
+ -----END CERTIFICATE-----
765
+
766
+ Camerfirma Chambers of Commerce Root
767
+ ====================================
768
+ -----BEGIN CERTIFICATE-----
769
+ MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
770
+ QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
771
+ ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
772
+ NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
773
+ cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
774
+ MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
775
+ AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
776
+ xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
777
+ NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
778
+ DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
779
+ d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
780
+ EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
781
+ cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
782
+ AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
783
+ bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
784
+ VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
785
+ aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
786
+ fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
787
+ L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
788
+ UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
789
+ ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
790
+ erfutGWaIZDgqtCYvDi1czyL+Nw=
791
+ -----END CERTIFICATE-----
792
+
793
+ Camerfirma Global Chambersign Root
794
+ ==================================
795
+ -----BEGIN CERTIFICATE-----
796
+ MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
797
+ QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
798
+ ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
799
+ NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
800
+ YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
801
+ MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
802
+ ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
803
+ 1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
804
+ by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
805
+ 6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
806
+ 8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
807
+ BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
808
+ aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
809
+ Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
810
+ aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
811
+ ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
812
+ bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
813
+ PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
814
+ gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
815
+ PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
816
+ IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
817
+ t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
818
+ -----END CERTIFICATE-----
819
+
820
+ NetLock Notary (Class A) Root
821
+ =============================
822
+ -----BEGIN CERTIFICATE-----
823
+ MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
824
+ EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
825
+ dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
826
+ ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
827
+ DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
828
+ EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
829
+ VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
830
+ cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
831
+ D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
832
+ z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
833
+ /tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
834
+ tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
835
+ 4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
836
+ A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
837
+ Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
838
+ bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
839
+ IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
840
+ LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
841
+ ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
842
+ IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
843
+ IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
844
+ b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
845
+ bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
846
+ Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
847
+ bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
848
+ ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
849
+ ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
850
+ CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
851
+ KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
852
+ 8CgHrTwXZoi1/baI
853
+ -----END CERTIFICATE-----
854
+
855
+ XRamp Global CA Root
856
+ ====================
857
+ -----BEGIN CERTIFICATE-----
858
+ MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
859
+ BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
860
+ dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
861
+ dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
862
+ HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
863
+ U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
864
+ dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
865
+ IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
866
+ foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
867
+ zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
868
+ AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
869
+ xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
870
+ EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
871
+ oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
872
+ AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
873
+ /Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
874
+ qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
875
+ nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
876
+ 8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
877
+ -----END CERTIFICATE-----
878
+
879
+ Go Daddy Class 2 CA
880
+ ===================
881
+ -----BEGIN CERTIFICATE-----
882
+ MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
883
+ VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
884
+ ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
885
+ A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
886
+ RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
887
+ ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
888
+ 2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
889
+ qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
890
+ YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
891
+ vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
892
+ BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
893
+ atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
894
+ MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
895
+ A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
896
+ PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
897
+ I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
898
+ HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
899
+ Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
900
+ vZ8=
901
+ -----END CERTIFICATE-----
902
+
903
+ Starfield Class 2 CA
904
+ ====================
905
+ -----BEGIN CERTIFICATE-----
906
+ MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
907
+ U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
908
+ Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
909
+ MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
910
+ A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
911
+ SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
912
+ bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
913
+ JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
914
+ epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
915
+ F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
916
+ MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
917
+ hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
918
+ bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
919
+ QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
920
+ afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
921
+ PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
922
+ xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
923
+ KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
924
+ QBFGmh95DmK/D5fs4C8fF5Q=
925
+ -----END CERTIFICATE-----
926
+
927
+ StartCom Certification Authority
928
+ ================================
929
+ -----BEGIN CERTIFICATE-----
930
+ MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
931
+ U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
932
+ ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
933
+ NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
934
+ LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
935
+ U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
936
+ ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
937
+ o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
938
+ Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
939
+ eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
940
+ 2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
941
+ 6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
942
+ osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
943
+ untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
944
+ UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
945
+ 37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
946
+ FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
947
+ Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
948
+ YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
949
+ AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
950
+ Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
951
+ U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
952
+ LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
953
+ cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
954
+ cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
955
+ dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
956
+ AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
957
+ 3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
958
+ vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
959
+ fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
960
+ fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
961
+ EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
962
+ yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
963
+ 1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
964
+ lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
965
+ g14=
966
+ -----END CERTIFICATE-----
967
+
968
+ Taiwan GRCA
969
+ ===========
970
+ -----BEGIN CERTIFICATE-----
971
+ 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
996
+ -----END CERTIFICATE-----
997
+
998
+ Swisscom Root CA 1
999
+ ==================
1000
+ -----BEGIN CERTIFICATE-----
1001
+ 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
1027
+ NY6E0F/6MBr1mmz0DlP5OlvRHA==
1028
+ -----END CERTIFICATE-----
1029
+
1030
+ DigiCert Assured ID Root CA
1031
+ ===========================
1032
+ -----BEGIN CERTIFICATE-----
1033
+ MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
1034
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
1035
+ IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
1036
+ MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
1037
+ ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
1038
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
1039
+ 9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
1040
+ UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
1041
+ /lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
1042
+ oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
1043
+ GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
1044
+ 66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
1045
+ hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
1046
+ EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
1047
+ SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
1048
+ 8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
1049
+ +o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
1050
+ -----END CERTIFICATE-----
1051
+
1052
+ DigiCert Global Root CA
1053
+ =======================
1054
+ -----BEGIN CERTIFICATE-----
1055
+ MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
1056
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
1057
+ HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
1058
+ MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
1059
+ dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
1060
+ hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
1061
+ TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
1062
+ BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
1063
+ 4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
1064
+ 7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
1065
+ o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
1066
+ 8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
1067
+ BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
1068
+ EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
1069
+ tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
1070
+ UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
1071
+ CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
1072
+ -----END CERTIFICATE-----
1073
+
1074
+ DigiCert High Assurance EV Root CA
1075
+ ==================================
1076
+ -----BEGIN CERTIFICATE-----
1077
+ MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
1078
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
1079
+ KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
1080
+ MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
1081
+ MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
1082
+ Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
1083
+ Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
1084
+ OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
1085
+ MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
1086
+ NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
1087
+ h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
1088
+ Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
1089
+ JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
1090
+ V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
1091
+ myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
1092
+ mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
1093
+ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
1094
+ -----END CERTIFICATE-----
1095
+
1096
+ Certplus Class 2 Primary CA
1097
+ ===========================
1098
+ -----BEGIN CERTIFICATE-----
1099
+ MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
1100
+ BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
1101
+ OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
1102
+ dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
1103
+ ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
1104
+ 5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
1105
+ Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
1106
+ YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
1107
+ e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
1108
+ CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
1109
+ YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
1110
+ L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
1111
+ P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
1112
+ TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
1113
+ 7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
1114
+ //1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
1115
+ l7+ijrRU
1116
+ -----END CERTIFICATE-----
1117
+
1118
+ DST Root CA X3
1119
+ ==============
1120
+ -----BEGIN CERTIFICATE-----
1121
+ MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
1122
+ ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
1123
+ DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
1124
+ cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
1125
+ ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
1126
+ rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
1127
+ UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
1128
+ xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
1129
+ utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
1130
+ AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
1131
+ MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
1132
+ dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
1133
+ GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
1134
+ RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
1135
+ fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
1136
+ -----END CERTIFICATE-----
1137
+
1138
+ DST ACES CA X6
1139
+ ==============
1140
+ -----BEGIN CERTIFICATE-----
1141
+ MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
1142
+ EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
1143
+ MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
1144
+ MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
1145
+ CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
1146
+ AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
1147
+ DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
1148
+ pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
1149
+ GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
1150
+ MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
1151
+ EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
1152
+ Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
1153
+ dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
1154
+ CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
1155
+ 5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
1156
+ Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
1157
+ nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
1158
+ vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
1159
+ oKfN5XozNmr6mis=
1160
+ -----END CERTIFICATE-----
1161
+
1162
+ TURKTRUST Certificate Services Provider Root 1
1163
+ ==============================================
1164
+ -----BEGIN CERTIFICATE-----
1165
+ MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
1166
+ bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
1167
+ MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
1168
+ acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
1169
+ MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
1170
+ U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
1171
+ TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
1172
+ aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
1173
+ AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
1174
+ yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
1175
+ Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
1176
+ 8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
1177
+ W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
1178
+ BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
1179
+ sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
1180
+ q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
1181
+ B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
1182
+ nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
1183
+ -----END CERTIFICATE-----
1184
+
1185
+ TURKTRUST Certificate Services Provider Root 2
1186
+ ==============================================
1187
+ -----BEGIN CERTIFICATE-----
1188
+ MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
1189
+ bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
1190
+ MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
1191
+ QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
1192
+ MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
1193
+ dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
1194
+ A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
1195
+ acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
1196
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
1197
+ LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
1198
+ x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
1199
+ QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
1200
+ 5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
1201
+ AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
1202
+ A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
1203
+ Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
1204
+ Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
1205
+ hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
1206
+ 9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
1207
+ UrbnBEI=
1208
+ -----END CERTIFICATE-----
1209
+
1210
+ SwissSign Gold CA - G2
1211
+ ======================
1212
+ -----BEGIN CERTIFICATE-----
1213
+ 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
1239
+ -----END CERTIFICATE-----
1240
+
1241
+ SwissSign Silver CA - G2
1242
+ ========================
1243
+ -----BEGIN CERTIFICATE-----
1244
+ MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
1245
+ BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
1246
+ DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
1247
+ aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
1248
+ 9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
1249
+ N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
1250
+ +/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
1251
+ 6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
1252
+ MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
1253
+ qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
1254
+ FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
1255
+ ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
1256
+ celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
1257
+ CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
1258
+ BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
1259
+ tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
1260
+ cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
1261
+ 4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
1262
+ kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
1263
+ 3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
1264
+ /uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
1265
+ DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
1266
+ e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
1267
+ WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
1268
+ DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
1269
+ DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
1270
+ -----END CERTIFICATE-----
1271
+
1272
+ GeoTrust Primary Certification Authority
1273
+ ========================================
1274
+ -----BEGIN CERTIFICATE-----
1275
+ MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
1276
+ EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
1277
+ ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
1278
+ CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
1279
+ cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
1280
+ CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
1281
+ b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
1282
+ nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
1283
+ RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
1284
+ tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
1285
+ AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
1286
+ hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
1287
+ Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
1288
+ NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
1289
+ Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
1290
+ 1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
1291
+ -----END CERTIFICATE-----
1292
+
1293
+ thawte Primary Root CA
1294
+ ======================
1295
+ -----BEGIN CERTIFICATE-----
1296
+ MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
1297
+ BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
1298
+ aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
1299
+ cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
1300
+ MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
1301
+ SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
1302
+ KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
1303
+ FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
1304
+ oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
1305
+ 1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
1306
+ q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
1307
+ aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
1308
+ afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
1309
+ VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
1310
+ AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
1311
+ uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
1312
+ xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
1313
+ jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
1314
+ z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
1315
+ -----END CERTIFICATE-----
1316
+
1317
+ VeriSign Class 3 Public Primary Certification Authority - G5
1318
+ ============================================================
1319
+ -----BEGIN CERTIFICATE-----
1320
+ MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
1321
+ BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
1322
+ ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
1323
+ IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
1324
+ ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
1325
+ yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
1326
+ biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
1327
+ dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
1328
+ YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
1329
+ ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
1330
+ j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
1331
+ Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
1332
+ Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
1333
+ fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
1334
+ BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
1335
+ Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
1336
+ aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
1337
+ SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
1338
+ X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
1339
+ KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
1340
+ Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
1341
+ ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
1342
+ -----END CERTIFICATE-----
1343
+
1344
+ SecureTrust CA
1345
+ ==============
1346
+ -----BEGIN CERTIFICATE-----
1347
+ MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
1348
+ EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
1349
+ dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
1350
+ BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
1351
+ ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
1352
+ OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
1353
+ DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
1354
+ GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
1355
+ 01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
1356
+ ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
1357
+ BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
1358
+ aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
1359
+ KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
1360
+ SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
1361
+ mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
1362
+ nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
1363
+ 3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
1364
+ -----END CERTIFICATE-----
1365
+
1366
+ Secure Global CA
1367
+ ================
1368
+ -----BEGIN CERTIFICATE-----
1369
+ MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
1370
+ EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
1371
+ bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
1372
+ MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
1373
+ Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
1374
+ YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
1375
+ bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
1376
+ 8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
1377
+ HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
1378
+ 0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
1379
+ EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
1380
+ oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
1381
+ MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
1382
+ OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
1383
+ CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
1384
+ 3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
1385
+ f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
1386
+ -----END CERTIFICATE-----
1387
+
1388
+ COMODO Certification Authority
1389
+ ==============================
1390
+ -----BEGIN CERTIFICATE-----
1391
+ MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
1392
+ BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
1393
+ A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
1394
+ dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
1395
+ MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
1396
+ T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
1397
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
1398
+ +7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
1399
+ xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
1400
+ 4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
1401
+ 1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
1402
+ rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
1403
+ BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
1404
+ b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
1405
+ AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
1406
+ OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
1407
+ RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
1408
+ IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
1409
+ +8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
1410
+ -----END CERTIFICATE-----
1411
+
1412
+ Network Solutions Certificate Authority
1413
+ =======================================
1414
+ -----BEGIN CERTIFICATE-----
1415
+ MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
1416
+ EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
1417
+ IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
1418
+ MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
1419
+ MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
1420
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
1421
+ jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
1422
+ aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
1423
+ crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
1424
+ /Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
1425
+ AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
1426
+ BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
1427
+ bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
1428
+ A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
1429
+ 4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
1430
+ GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
1431
+ wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
1432
+ ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
1433
+ -----END CERTIFICATE-----
1434
+
1435
+ WellsSecure Public Root Certificate Authority
1436
+ =============================================
1437
+ -----BEGIN CERTIFICATE-----
1438
+ MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
1439
+ F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
1440
+ NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
1441
+ MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
1442
+ bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
1443
+ VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
1444
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
1445
+ iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
1446
+ i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
1447
+ bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
1448
+ K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
1449
+ AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
1450
+ cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
1451
+ lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
1452
+ i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
1453
+ GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
1454
+ Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
1455
+ K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
1456
+ bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
1457
+ qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
1458
+ E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
1459
+ tylv2G0xffX8oRAHh84vWdw+WNs=
1460
+ -----END CERTIFICATE-----
1461
+
1462
+ COMODO ECC Certification Authority
1463
+ ==================================
1464
+ -----BEGIN CERTIFICATE-----
1465
+ MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
1466
+ R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
1467
+ ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
1468
+ dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
1469
+ GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
1470
+ Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
1471
+ b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
1472
+ 4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
1473
+ wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
1474
+ BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
1475
+ FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
1476
+ U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
1477
+ -----END CERTIFICATE-----
1478
+
1479
+ IGC/A
1480
+ =====
1481
+ -----BEGIN CERTIFICATE-----
1482
+ MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
1483
+ VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
1484
+ Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
1485
+ MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
1486
+ EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
1487
+ STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
1488
+ IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
1489
+ TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
1490
+ So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
1491
+ HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
1492
+ frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
1493
+ tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
1494
+ egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
1495
+ iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
1496
+ q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
1497
+ MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
1498
+ Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
1499
+ lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
1500
+ 0mBWWg==
1501
+ -----END CERTIFICATE-----
1502
+
1503
+ Security Communication EV RootCA1
1504
+ =================================
1505
+ -----BEGIN CERTIFICATE-----
1506
+ MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
1507
+ U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
1508
+ dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
1509
+ BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
1510
+ Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
1511
+ AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
1512
+ /VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
1513
+ WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
1514
+ ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
1515
+ bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
1516
+ 9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
1517
+ SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
1518
+ iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
1519
+ Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
1520
+ mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
1521
+ T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
1522
+ -----END CERTIFICATE-----
1523
+
1524
+ OISTE WISeKey Global Root GA CA
1525
+ ===============================
1526
+ -----BEGIN CERTIFICATE-----
1527
+ MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
1528
+ BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
1529
+ A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
1530
+ bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
1531
+ VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
1532
+ IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
1533
+ IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
1534
+ Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
1535
+ Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
1536
+ d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
1537
+ /yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
1538
+ LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
1539
+ AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
1540
+ KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
1541
+ MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
1542
+ +vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
1543
+ hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
1544
+ okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
1545
+ -----END CERTIFICATE-----
1546
+
1547
+ Microsec e-Szigno Root CA
1548
+ =========================
1549
+ -----BEGIN CERTIFICATE-----
1550
+ MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
1551
+ BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
1552
+ EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
1553
+ MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
1554
+ dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
1555
+ GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
1556
+ AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
1557
+ d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
1558
+ oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
1559
+ QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
1560
+ PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
1561
+ MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
1562
+ IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
1563
+ VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
1564
+ LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
1565
+ dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
1566
+ AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
1567
+ 4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
1568
+ AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
1569
+ egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
1570
+ Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
1571
+ PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
1572
+ c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
1573
+ cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
1574
+ IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
1575
+ WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
1576
+ MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
1577
+ MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
1578
+ Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
1579
+ HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
1580
+ nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
1581
+ aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
1582
+ 86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
1583
+ yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
1584
+ S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
1585
+ -----END CERTIFICATE-----
1586
+
1587
+ Certigna
1588
+ ========
1589
+ -----BEGIN CERTIFICATE-----
1590
+ MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
1591
+ EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
1592
+ MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
1593
+ Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
1594
+ XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
1595
+ GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
1596
+ ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
1597
+ DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
1598
+ Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
1599
+ tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
1600
+ BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
1601
+ SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
1602
+ hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
1603
+ ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
1604
+ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
1605
+ 1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
1606
+ WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
1607
+ -----END CERTIFICATE-----
1608
+
1609
+ TC TrustCenter Class 2 CA II
1610
+ ============================
1611
+ -----BEGIN CERTIFICATE-----
1612
+ MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
1613
+ REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
1614
+ IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
1615
+ MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
1616
+ c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
1617
+ AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
1618
+ AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
1619
+ IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
1620
+ xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
1621
+ Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
1622
+ SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
1623
+ /wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
1624
+ 7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
1625
+ Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
1626
+ cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
1627
+ SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
1628
+ TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
1629
+ dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
1630
+ KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
1631
+ TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
1632
+ JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
1633
+ vQ==
1634
+ -----END CERTIFICATE-----
1635
+
1636
+ TC TrustCenter Class 3 CA II
1637
+ ============================
1638
+ -----BEGIN CERTIFICATE-----
1639
+ MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
1640
+ REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
1641
+ IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw
1642
+ MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
1643
+ c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE
1644
+ AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
1645
+ AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W
1646
+ yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo
1647
+ 6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ
1648
+ uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk
1649
+ 2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB
1650
+ /wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB
1651
+ 7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
1652
+ Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
1653
+ cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
1654
+ SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
1655
+ TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE
1656
+ O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8
1657
+ yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9
1658
+ IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal
1659
+ 092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc
1660
+ 5A==
1661
+ -----END CERTIFICATE-----
1662
+
1663
+ TC TrustCenter Universal CA I
1664
+ =============================
1665
+ -----BEGIN CERTIFICATE-----
1666
+ MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
1667
+ REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
1668
+ IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
1669
+ MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
1670
+ VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
1671
+ JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
1672
+ ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
1673
+ qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
1674
+ xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
1675
+ ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
1676
+ gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
1677
+ BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
1678
+ AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
1679
+ 1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
1680
+ vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
1681
+ ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
1682
+ ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
1683
+ 7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
1684
+ -----END CERTIFICATE-----
1685
+
1686
+ Deutsche Telekom Root CA 2
1687
+ ==========================
1688
+ -----BEGIN CERTIFICATE-----
1689
+ MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
1690
+ RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
1691
+ A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
1692
+ MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
1693
+ A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
1694
+ b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
1695
+ bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
1696
+ KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
1697
+ AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
1698
+ Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
1699
+ jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
1700
+ HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
1701
+ E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
1702
+ zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
1703
+ rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
1704
+ dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
1705
+ Cm26OWMohpLzGITY+9HPBVZkVw==
1706
+ -----END CERTIFICATE-----
1707
+
1708
+ ComSign Secured CA
1709
+ ==================
1710
+ -----BEGIN CERTIFICATE-----
1711
+ MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
1712
+ AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
1713
+ NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
1714
+ QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
1715
+ ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
1716
+ 49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
1717
+ 7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
1718
+ kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
1719
+ 9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
1720
+ AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
1721
+ U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
1722
+ j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
1723
+ AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
1724
+ BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
1725
+ FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
1726
+ 51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
1727
+ OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
1728
+ -----END CERTIFICATE-----
1729
+
1730
+ Cybertrust Global Root
1731
+ ======================
1732
+ -----BEGIN CERTIFICATE-----
1733
+ MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
1734
+ ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
1735
+ MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
1736
+ ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
1737
+ +Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
1738
+ 0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
1739
+ AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
1740
+ 89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
1741
+ 8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
1742
+ BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
1743
+ MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
1744
+ A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
1745
+ lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
1746
+ 5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
1747
+ hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
1748
+ X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
1749
+ WL1WMRJOEcgh4LMRkWXbtKaIOM5V
1750
+ -----END CERTIFICATE-----
1751
+
1752
+ ePKI Root Certification Authority
1753
+ =================================
1754
+ -----BEGIN CERTIFICATE-----
1755
+ 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
1781
+ -----END CERTIFICATE-----
1782
+
1783
+ T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
1784
+ =============================================================================================================================
1785
+ -----BEGIN CERTIFICATE-----
1786
+ MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
1787
+ DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
1788
+ aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
1789
+ b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
1790
+ BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
1791
+ S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
1792
+ MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
1793
+ IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
1794
+ n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
1795
+ IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
1796
+ dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
1797
+ cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
1798
+ AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
1799
+ Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
1800
+ xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
1801
+ 6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
1802
+ hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
1803
+ BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
1804
+ MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
1805
+ N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
1806
+ y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
1807
+ LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
1808
+ dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
1809
+ -----END CERTIFICATE-----
1810
+
1811
+ Buypass Class 2 CA 1
1812
+ ====================
1813
+ -----BEGIN CERTIFICATE-----
1814
+ MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
1815
+ QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
1816
+ MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
1817
+ c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
1818
+ hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
1819
+ cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
1820
+ 0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
1821
+ 0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
1822
+ uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
1823
+ MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
1824
+ AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
1825
+ 1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
1826
+ 7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
1827
+ fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
1828
+ wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
1829
+ -----END CERTIFICATE-----
1830
+
1831
+ Buypass Class 3 CA 1
1832
+ ====================
1833
+ -----BEGIN CERTIFICATE-----
1834
+ MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
1835
+ QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
1836
+ MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
1837
+ c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
1838
+ hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
1839
+ ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
1840
+ n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
1841
+ AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
1842
+ 1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
1843
+ MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
1844
+ AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
1845
+ pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
1846
+ EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
1847
+ htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
1848
+ el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
1849
+ -----END CERTIFICATE-----
1850
+
1851
+ EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
1852
+ ==========================================================================
1853
+ -----BEGIN CERTIFICATE-----
1854
+ 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
1881
+ -----END CERTIFICATE-----
1882
+
1883
+ certSIGN ROOT CA
1884
+ ================
1885
+ -----BEGIN CERTIFICATE-----
1886
+ MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
1887
+ VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
1888
+ Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
1889
+ CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
1890
+ JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
1891
+ rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
1892
+ ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
1893
+ 0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
1894
+ AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
1895
+ Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
1896
+ AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
1897
+ SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
1898
+ x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
1899
+ vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
1900
+ TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
1901
+ -----END CERTIFICATE-----
1902
+
1903
+ CNNIC ROOT
1904
+ ==========
1905
+ -----BEGIN CERTIFICATE-----
1906
+ MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
1907
+ ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
1908
+ OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
1909
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
1910
+ o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
1911
+ VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
1912
+ VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
1913
+ czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
1914
+ y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
1915
+ wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
1916
+ lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
1917
+ Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
1918
+ O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
1919
+ BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
1920
+ G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
1921
+ mxE=
1922
+ -----END CERTIFICATE-----
1923
+
1924
+ ApplicationCA - Japanese Government
1925
+ ===================================
1926
+ -----BEGIN CERTIFICATE-----
1927
+ MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
1928
+ SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
1929
+ MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
1930
+ cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
1931
+ CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
1932
+ fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
1933
+ wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
1934
+ jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
1935
+ nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
1936
+ WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
1937
+ BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
1938
+ vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
1939
+ o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
1940
+ /DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
1941
+ io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
1942
+ dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
1943
+ rosot4LKGAfmt1t06SAZf7IbiVQ=
1944
+ -----END CERTIFICATE-----
1945
+
1946
+ GeoTrust Primary Certification Authority - G3
1947
+ =============================================
1948
+ -----BEGIN CERTIFICATE-----
1949
+ MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
1950
+ BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
1951
+ IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
1952
+ eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
1953
+ NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
1954
+ YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
1955
+ LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
1956
+ hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
1957
+ K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
1958
+ c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
1959
+ IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
1960
+ dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
1961
+ MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
1962
+ 2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
1963
+ cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
1964
+ Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
1965
+ AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
1966
+ t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
1967
+ -----END CERTIFICATE-----
1968
+
1969
+ thawte Primary Root CA - G2
1970
+ ===========================
1971
+ -----BEGIN CERTIFICATE-----
1972
+ MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
1973
+ VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
1974
+ IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
1975
+ Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
1976
+ MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
1977
+ b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
1978
+ IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
1979
+ LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
1980
+ 8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
1981
+ mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
1982
+ G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
1983
+ rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
1984
+ -----END CERTIFICATE-----
1985
+
1986
+ thawte Primary Root CA - G3
1987
+ ===========================
1988
+ -----BEGIN CERTIFICATE-----
1989
+ MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
1990
+ BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
1991
+ aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
1992
+ cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
1993
+ ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
1994
+ d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
1995
+ VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
1996
+ A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
1997
+ MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
1998
+ P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
1999
+ +BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
2000
+ 7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
2001
+ vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
2002
+ BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
2003
+ KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
2004
+ A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
2005
+ t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
2006
+ 8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
2007
+ er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
2008
+ -----END CERTIFICATE-----
2009
+
2010
+ GeoTrust Primary Certification Authority - G2
2011
+ =============================================
2012
+ -----BEGIN CERTIFICATE-----
2013
+ MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
2014
+ VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
2015
+ Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
2016
+ ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
2017
+ OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
2018
+ MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
2019
+ b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
2020
+ BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
2021
+ KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
2022
+ VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
2023
+ EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
2024
+ ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
2025
+ npaqBA+K
2026
+ -----END CERTIFICATE-----
2027
+
2028
+ VeriSign Universal Root Certification Authority
2029
+ ===============================================
2030
+ -----BEGIN CERTIFICATE-----
2031
+ MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
2032
+ BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
2033
+ ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
2034
+ IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
2035
+ IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
2036
+ UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
2037
+ cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
2038
+ IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
2039
+ aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
2040
+ 1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
2041
+ MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
2042
+ 9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
2043
+ AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
2044
+ tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
2045
+ CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
2046
+ a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
2047
+ DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
2048
+ Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
2049
+ Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
2050
+ P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
2051
+ wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
2052
+ mJO37M2CYfE45k+XmCpajQ==
2053
+ -----END CERTIFICATE-----
2054
+
2055
+ VeriSign Class 3 Public Primary Certification Authority - G4
2056
+ ============================================================
2057
+ -----BEGIN CERTIFICATE-----
2058
+ MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
2059
+ VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
2060
+ b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
2061
+ ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
2062
+ YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
2063
+ MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
2064
+ cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
2065
+ b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
2066
+ IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
2067
+ Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
2068
+ rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
2069
+ /zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
2070
+ HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
2071
+ Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
2072
+ A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
2073
+ AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
2074
+ -----END CERTIFICATE-----
2075
+
2076
+ NetLock Arany (Class Gold) Főtanúsítvány
2077
+ ============================================
2078
+ -----BEGIN CERTIFICATE-----
2079
+ MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
2080
+ A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
2081
+ dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
2082
+ cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
2083
+ MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
2084
+ ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
2085
+ biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
2086
+ c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
2087
+ 0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
2088
+ /HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
2089
+ H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
2090
+ fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
2091
+ neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
2092
+ BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
2093
+ qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
2094
+ YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
2095
+ bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
2096
+ NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
2097
+ dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
2098
+ -----END CERTIFICATE-----
2099
+
2100
+ Staat der Nederlanden Root CA - G2
2101
+ ==================================
2102
+ -----BEGIN CERTIFICATE-----
2103
+ MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
2104
+ CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
2105
+ Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
2106
+ TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
2107
+ ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
2108
+ 5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
2109
+ vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
2110
+ CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
2111
+ e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
2112
+ OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
2113
+ CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
2114
+ 48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
2115
+ trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
2116
+ qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
2117
+ AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
2118
+ ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
2119
+ HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
2120
+ A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
2121
+ +51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
2122
+ f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
2123
+ kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
2124
+ CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
2125
+ URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
2126
+ CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
2127
+ oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
2128
+ IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
2129
+ 66+KAQ==
2130
+ -----END CERTIFICATE-----
2131
+
2132
+ CA Disig
2133
+ ========
2134
+ -----BEGIN CERTIFICATE-----
2135
+ MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
2136
+ QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
2137
+ MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
2138
+ bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
2139
+ DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
2140
+ GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
2141
+ Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
2142
+ hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
2143
+ ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
2144
+ gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
2145
+ AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
2146
+ aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
2147
+ ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
2148
+ BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
2149
+ WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
2150
+ mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
2151
+ CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
2152
+ ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
2153
+ 4Z7CRneC9VkGjCFMhwnN5ag=
2154
+ -----END CERTIFICATE-----
2155
+
2156
+ Juur-SK
2157
+ =======
2158
+ -----BEGIN CERTIFICATE-----
2159
+ MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
2160
+ c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
2161
+ DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
2162
+ SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
2163
+ aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
2164
+ ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
2165
+ TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
2166
+ +Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
2167
+ UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
2168
+ Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
2169
+ MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
2170
+ HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
2171
+ AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
2172
+ cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
2173
+ AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
2174
+ cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
2175
+ FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
2176
+ A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
2177
+ ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
2178
+ abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
2179
+ IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
2180
+ Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
2181
+ yyqcjg==
2182
+ -----END CERTIFICATE-----
2183
+
2184
+ Hongkong Post Root CA 1
2185
+ =======================
2186
+ -----BEGIN CERTIFICATE-----
2187
+ MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
2188
+ DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
2189
+ NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
2190
+ IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
2191
+ AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
2192
+ ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
2193
+ auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
2194
+ qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
2195
+ V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
2196
+ HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
2197
+ h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
2198
+ l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
2199
+ IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
2200
+ T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
2201
+ c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
2202
+ -----END CERTIFICATE-----
2203
+
2204
+ SecureSign RootCA11
2205
+ ===================
2206
+ -----BEGIN CERTIFICATE-----
2207
+ MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
2208
+ SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
2209
+ b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
2210
+ KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
2211
+ cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
2212
+ TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
2213
+ wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
2214
+ g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
2215
+ O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
2216
+ bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
2217
+ t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
2218
+ OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
2219
+ bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
2220
+ Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
2221
+ y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
2222
+ lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
2223
+ -----END CERTIFICATE-----
2224
+
2225
+ ACEDICOM Root
2226
+ =============
2227
+ -----BEGIN CERTIFICATE-----
2228
+ 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
2254
+ -----END CERTIFICATE-----
2255
+
2256
+ Microsec e-Szigno Root CA 2009
2257
+ ==============================
2258
+ -----BEGIN CERTIFICATE-----
2259
+ MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
2260
+ MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
2261
+ c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
2262
+ dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
2263
+ BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
2264
+ U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
2265
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
2266
+ fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
2267
+ 0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
2268
+ pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
2269
+ 1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
2270
+ AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
2271
+ QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
2272
+ FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
2273
+ lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
2274
+ I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
2275
+ tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
2276
+ yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
2277
+ LXpUq3DDfSJlgnCW
2278
+ -----END CERTIFICATE-----
2279
+
2280
+ E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
2281
+ ===================================================
2282
+ -----BEGIN CERTIFICATE-----
2283
+ MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
2284
+ EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz
2285
+ ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3
2286
+ MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0
2287
+ cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u
2288
+ aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
2289
+ AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY
2290
+ 8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y
2291
+ jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI
2292
+ JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk
2293
+ 9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD
2294
+ AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG
2295
+ SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d
2296
+ F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq
2297
+ D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4
2298
+ Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
2299
+ fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
2300
+ -----END CERTIFICATE-----
2301
+
2302
+ GlobalSign Root CA - R3
2303
+ =======================
2304
+ -----BEGIN CERTIFICATE-----
2305
+ MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
2306
+ YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
2307
+ bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
2308
+ aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
2309
+ bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
2310
+ iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
2311
+ 0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
2312
+ rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
2313
+ OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
2314
+ xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
2315
+ FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
2316
+ lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
2317
+ EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
2318
+ bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
2319
+ YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
2320
+ kpeDMdmztcpHWD9f
2321
+ -----END CERTIFICATE-----
2322
+
2323
+ Autoridad de Certificacion Firmaprofesional CIF A62634068
2324
+ =========================================================
2325
+ -----BEGIN CERTIFICATE-----
2326
+ MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
2327
+ BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
2328
+ MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
2329
+ QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
2330
+ NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
2331
+ Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
2332
+ B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
2333
+ 7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
2334
+ ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
2335
+ plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
2336
+ MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
2337
+ LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
2338
+ bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
2339
+ vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
2340
+ EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
2341
+ DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
2342
+ cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
2343
+ bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
2344
+ ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
2345
+ 51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
2346
+ R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
2347
+ T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
2348
+ Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
2349
+ osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
2350
+ crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
2351
+ saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
2352
+ KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
2353
+ 6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
2354
+ -----END CERTIFICATE-----
2355
+
2356
+ Izenpe.com
2357
+ ==========
2358
+ -----BEGIN CERTIFICATE-----
2359
+ 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
2386
+ -----END CERTIFICATE-----
2387
+
2388
+ Chambers of Commerce Root - 2008
2389
+ ================================
2390
+ -----BEGIN CERTIFICATE-----
2391
+ MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
2392
+ MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
2393
+ bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
2394
+ QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
2395
+ Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
2396
+ ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
2397
+ EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
2398
+ cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
2399
+ AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
2400
+ XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
2401
+ h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
2402
+ ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
2403
+ NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
2404
+ D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
2405
+ lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
2406
+ 0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
2407
+ ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
2408
+ EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
2409
+ G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
2410
+ BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
2411
+ bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
2412
+ bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
2413
+ CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
2414
+ AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
2415
+ wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
2416
+ 3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
2417
+ RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
2418
+ M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
2419
+ YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
2420
+ 9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
2421
+ zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
2422
+ nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
2423
+ OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
2424
+ -----END CERTIFICATE-----
2425
+
2426
+ Global Chambersign Root - 2008
2427
+ ==============================
2428
+ -----BEGIN CERTIFICATE-----
2429
+ MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
2430
+ MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
2431
+ bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
2432
+ QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
2433
+ NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
2434
+ Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
2435
+ QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
2436
+ aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
2437
+ VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
2438
+ XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
2439
+ ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
2440
+ /gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
2441
+ TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
2442
+ H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
2443
+ Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
2444
+ HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
2445
+ wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
2446
+ AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
2447
+ BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
2448
+ BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
2449
+ aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
2450
+ aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
2451
+ 1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
2452
+ dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
2453
+ /5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
2454
+ ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
2455
+ dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
2456
+ 9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
2457
+ foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
2458
+ qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
2459
+ P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
2460
+ c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
2461
+ 09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
2462
+ -----END CERTIFICATE-----
2463
+
2464
+ Go Daddy Root Certificate Authority - G2
2465
+ ========================================
2466
+ -----BEGIN CERTIFICATE-----
2467
+ MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
2468
+ B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
2469
+ MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
2470
+ MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
2471
+ b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
2472
+ A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
2473
+ hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
2474
+ 9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
2475
+ +qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
2476
+ fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
2477
+ NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
2478
+ MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
2479
+ BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
2480
+ vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
2481
+ 5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
2482
+ N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
2483
+ LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
2484
+ -----END CERTIFICATE-----
2485
+
2486
+ Starfield Root Certificate Authority - G2
2487
+ =========================================
2488
+ -----BEGIN CERTIFICATE-----
2489
+ MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
2490
+ B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
2491
+ b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
2492
+ eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
2493
+ DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
2494
+ VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
2495
+ dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
2496
+ W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
2497
+ bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
2498
+ N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
2499
+ ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
2500
+ JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
2501
+ AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
2502
+ TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
2503
+ 4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
2504
+ F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
2505
+ pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
2506
+ c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
2507
+ -----END CERTIFICATE-----
2508
+
2509
+ Starfield Services Root Certificate Authority - G2
2510
+ ==================================================
2511
+ -----BEGIN CERTIFICATE-----
2512
+ MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
2513
+ B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
2514
+ b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
2515
+ IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
2516
+ BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
2517
+ dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
2518
+ Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
2519
+ AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
2520
+ h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
2521
+ hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
2522
+ LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
2523
+ rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
2524
+ AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
2525
+ SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
2526
+ E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
2527
+ xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
2528
+ iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
2529
+ YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
2530
+ -----END CERTIFICATE-----
2531
+
2532
+ AffirmTrust Commercial
2533
+ ======================
2534
+ -----BEGIN CERTIFICATE-----
2535
+ MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
2536
+ BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
2537
+ MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
2538
+ bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
2539
+ AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
2540
+ DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
2541
+ C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
2542
+ BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
2543
+ MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
2544
+ HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
2545
+ AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
2546
+ hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
2547
+ qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
2548
+ 0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
2549
+ sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
2550
+ -----END CERTIFICATE-----
2551
+
2552
+ AffirmTrust Networking
2553
+ ======================
2554
+ -----BEGIN CERTIFICATE-----
2555
+ MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
2556
+ BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
2557
+ MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
2558
+ bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
2559
+ AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
2560
+ Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
2561
+ dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
2562
+ /PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
2563
+ h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
2564
+ HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
2565
+ AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
2566
+ UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
2567
+ 12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
2568
+ WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
2569
+ /ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
2570
+ -----END CERTIFICATE-----
2571
+
2572
+ AffirmTrust Premium
2573
+ ===================
2574
+ -----BEGIN CERTIFICATE-----
2575
+ MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
2576
+ BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
2577
+ OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
2578
+ dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
2579
+ MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
2580
+ BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
2581
+ 5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
2582
+ +7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
2583
+ GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
2584
+ p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
2585
+ S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
2586
+ 6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
2587
+ /bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
2588
+ +Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
2589
+ /wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
2590
+ MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
2591
+ Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
2592
+ 6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
2593
+ L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
2594
+ +4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
2595
+ BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
2596
+ IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
2597
+ g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
2598
+ zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
2599
+ -----END CERTIFICATE-----
2600
+
2601
+ AffirmTrust Premium ECC
2602
+ =======================
2603
+ -----BEGIN CERTIFICATE-----
2604
+ MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
2605
+ BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
2606
+ MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
2607
+ cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
2608
+ IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
2609
+ N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
2610
+ BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
2611
+ BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
2612
+ 57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
2613
+ eQ==
2614
+ -----END CERTIFICATE-----
2615
+
2616
+ Certum Trusted Network CA
2617
+ =========================
2618
+ -----BEGIN CERTIFICATE-----
2619
+ MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
2620
+ ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
2621
+ biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
2622
+ MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
2623
+ ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
2624
+ MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
2625
+ AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
2626
+ l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
2627
+ J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
2628
+ fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
2629
+ cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
2630
+ Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
2631
+ DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
2632
+ jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
2633
+ mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
2634
+ Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
2635
+ 03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
2636
+ -----END CERTIFICATE-----
2637
+
2638
+ Certinomis - Autorité Racine
2639
+ =============================
2640
+ -----BEGIN CERTIFICATE-----
2641
+ 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
2666
+ vgt2Fl43N+bYdJeimUV5
2667
+ -----END CERTIFICATE-----
2668
+
2669
+ Root CA Generalitat Valenciana
2670
+ ==============================
2671
+ -----BEGIN CERTIFICATE-----
2672
+ MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
2673
+ ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
2674
+ IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
2675
+ WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
2676
+ CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
2677
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
2678
+ F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
2679
+ ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
2680
+ D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
2681
+ JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
2682
+ AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
2683
+ dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
2684
+ ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
2685
+ AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
2686
+ YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
2687
+ AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
2688
+ aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
2689
+ AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
2690
+ YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
2691
+ AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
2692
+ OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
2693
+ dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
2694
+ BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
2695
+ A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
2696
+ b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
2697
+ TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
2698
+ Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
2699
+ NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
2700
+ iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
2701
+ +GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
2702
+ -----END CERTIFICATE-----
2703
+
2704
+ A-Trust-nQual-03
2705
+ ================
2706
+ -----BEGIN CERTIFICATE-----
2707
+ MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
2708
+ Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
2709
+ a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
2710
+ dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
2711
+ RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
2712
+ ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
2713
+ c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
2714
+ zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
2715
+ yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
2716
+ SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
2717
+ iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
2718
+ cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
2719
+ eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
2720
+ ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
2721
+ sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
2722
+ JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
2723
+ mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
2724
+ ahq97BvIxYSazQ==
2725
+ -----END CERTIFICATE-----
2726
+
2727
+ TWCA Root Certification Authority
2728
+ =================================
2729
+ -----BEGIN CERTIFICATE-----
2730
+ MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
2731
+ VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
2732
+ dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
2733
+ EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
2734
+ IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
2735
+ AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
2736
+ QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
2737
+ oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
2738
+ 4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
2739
+ y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
2740
+ BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
2741
+ 9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
2742
+ mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
2743
+ QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
2744
+ T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
2745
+ Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
2746
+ -----END CERTIFICATE-----
2747
+
2748
+ Security Communication RootCA2
2749
+ ==============================
2750
+ -----BEGIN CERTIFICATE-----
2751
+ MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
2752
+ U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
2753
+ dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
2754
+ SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
2755
+ aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
2756
+ ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
2757
+ +T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
2758
+ 3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
2759
+ spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
2760
+ EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
2761
+ QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
2762
+ CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
2763
+ u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
2764
+ 3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
2765
+ tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
2766
+ mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
2767
+ -----END CERTIFICATE-----
2768
+
2769
+ EC-ACC
2770
+ ======
2771
+ -----BEGIN CERTIFICATE-----
2772
+ MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
2773
+ BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
2774
+ ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
2775
+ VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
2776
+ CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
2777
+ BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
2778
+ MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
2779
+ SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
2780
+ Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
2781
+ cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
2782
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
2783
+ w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
2784
+ ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
2785
+ HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
2786
+ E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
2787
+ 0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
2788
+ BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
2789
+ VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
2790
+ Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
2791
+ dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
2792
+ lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
2793
+ Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
2794
+ l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
2795
+ E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
2796
+ 5EI=
2797
+ -----END CERTIFICATE-----
2798
+
2799
+ Hellenic Academic and Research Institutions RootCA 2011
2800
+ =======================================================
2801
+ -----BEGIN CERTIFICATE-----
2802
+ MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
2803
+ O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
2804
+ aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
2805
+ IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
2806
+ AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
2807
+ IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
2808
+ IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
2809
+ AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
2810
+ 1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
2811
+ 71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
2812
+ 8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
2813
+ 3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
2814
+ MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
2815
+ MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
2816
+ b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
2817
+ XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
2818
+ TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
2819
+ /md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
2820
+ 7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
2821
+ -----END CERTIFICATE-----
2822
+
2823
+ Actalis Authentication Root CA
2824
+ ==============================
2825
+ -----BEGIN CERTIFICATE-----
2826
+ MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
2827
+ BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
2828
+ AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
2829
+ MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
2830
+ IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
2831
+ IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
2832
+ wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
2833
+ by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
2834
+ zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
2835
+ YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
2836
+ oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
2837
+ EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
2838
+ hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
2839
+ EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
2840
+ jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
2841
+ iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
2842
+ ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
2843
+ WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
2844
+ JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
2845
+ K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
2846
+ Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
2847
+ 4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
2848
+ 2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
2849
+ lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
2850
+ OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
2851
+ vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
2852
+ -----END CERTIFICATE-----
2853
+
2854
+ Trustis FPS Root CA
2855
+ ===================
2856
+ -----BEGIN CERTIFICATE-----
2857
+ MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
2858
+ EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
2859
+ IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
2860
+ BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
2861
+ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
2862
+ RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
2863
+ H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
2864
+ cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
2865
+ o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
2866
+ AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
2867
+ BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
2868
+ GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
2869
+ yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
2870
+ 8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
2871
+ l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
2872
+ iB6XzCGcKQENZetX2fNXlrtIzYE=
2873
+ -----END CERTIFICATE-----
2874
+
2875
+ StartCom Certification Authority
2876
+ ================================
2877
+ -----BEGIN CERTIFICATE-----
2878
+ MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
2879
+ U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
2880
+ ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
2881
+ NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
2882
+ LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
2883
+ U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
2884
+ ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
2885
+ o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
2886
+ Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
2887
+ eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
2888
+ 2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
2889
+ 6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
2890
+ osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
2891
+ untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
2892
+ UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
2893
+ 37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
2894
+ VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
2895
+ Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
2896
+ dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
2897
+ c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
2898
+ bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
2899
+ aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
2900
+ aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
2901
+ L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
2902
+ cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
2903
+ fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
2904
+ N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
2905
+ Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
2906
+ tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
2907
+ e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
2908
+ 2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
2909
+ HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
2910
+ JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
2911
+ D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
2912
+ -----END CERTIFICATE-----
2913
+
2914
+ StartCom Certification Authority G2
2915
+ ===================================
2916
+ -----BEGIN CERTIFICATE-----
2917
+ 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
2941
+ obp573PYtlNXLfbQ4ddI
2942
+ -----END CERTIFICATE-----
2943
+
2944
+ Buypass Class 2 Root CA
2945
+ =======================
2946
+ -----BEGIN CERTIFICATE-----
2947
+ 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
2971
+ rJgWVqA=
2972
+ -----END CERTIFICATE-----
2973
+
2974
+ Buypass Class 3 Root CA
2975
+ =======================
2976
+ -----BEGIN CERTIFICATE-----
2977
+ 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
3001
+ Cp/HuZc=
3002
+ -----END CERTIFICATE-----
3003
+
3004
+ T-TeleSec GlobalRoot Class 3
3005
+ ============================
3006
+ -----BEGIN CERTIFICATE-----
3007
+ MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
3008
+ IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
3009
+ cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
3010
+ MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
3011
+ dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
3012
+ ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
3013
+ DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
3014
+ 9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
3015
+ NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
3016
+ iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
3017
+ 0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
3018
+ MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
3019
+ AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
3020
+ fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
3021
+ ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
3022
+ P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
3023
+ e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
3024
+ -----END CERTIFICATE-----
3025
+
3026
+ EE Certification Centre Root CA
3027
+ ===============================
3028
+ -----BEGIN CERTIFICATE-----
3029
+ MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
3030
+ EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
3031
+ dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
3032
+ MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
3033
+ UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
3034
+ ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
3035
+ DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
3036
+ TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
3037
+ rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
3038
+ 93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
3039
+ P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
3040
+ AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
3041
+ MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
3042
+ BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
3043
+ xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
3044
+ lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
3045
+ uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
3046
+ 3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
3047
+ dcGWxZ0=
3048
+ -----END CERTIFICATE-----
3049
+
3050
+ TURKTRUST Certificate Services Provider Root 2007
3051
+ =================================================
3052
+ -----BEGIN CERTIFICATE-----
3053
+ MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
3054
+ bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
3055
+ MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
3056
+ QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
3057
+ DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
3058
+ a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
3059
+ BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
3060
+ bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
3061
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
3062
+ YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
3063
+ KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
3064
+ KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
3065
+ rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
3066
+ AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
3067
+ BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
3068
+ Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
3069
+ aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
3070
+ Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
3071
+ BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
3072
+ poRq0Tl9
3073
+ -----END CERTIFICATE-----
3074
+
3075
+ D-TRUST Root Class 3 CA 2 2009
3076
+ ==============================
3077
+ -----BEGIN CERTIFICATE-----
3078
+ MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
3079
+ DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
3080
+ Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
3081
+ LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
3082
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
3083
+ ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
3084
+ BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
3085
+ KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
3086
+ p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
3087
+ AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
3088
+ 4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
3089
+ eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
3090
+ MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
3091
+ PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
3092
+ OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
3093
+ 2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
3094
+ o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
3095
+ dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
3096
+ X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
3097
+ -----END CERTIFICATE-----
3098
+
3099
+ D-TRUST Root Class 3 CA 2 EV 2009
3100
+ =================================
3101
+ -----BEGIN CERTIFICATE-----
3102
+ MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
3103
+ DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
3104
+ OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
3105
+ DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
3106
+ OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
3107
+ egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
3108
+ zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
3109
+ 7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
3110
+ sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
3111
+ 11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
3112
+ cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
3113
+ ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
3114
+ MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
3115
+ b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
3116
+ c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
3117
+ PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
3118
+ nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
3119
+ ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
3120
+ NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
3121
+ w9y4AyHqnxbxLFS1
3122
+ -----END CERTIFICATE-----
3123
+
3124
+ PSCProcert
3125
+ ==========
3126
+ -----BEGIN CERTIFICATE-----
3127
+ MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
3128
+ ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
3129
+ MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
3130
+ dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
3131
+ cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
3132
+ IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
3133
+ MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
3134
+ DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
3135
+ ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
3136
+ Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
3137
+ DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
3138
+ wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
3139
+ 3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
3140
+ RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
3141
+ EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
3142
+ 0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
3143
+ 0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
3144
+ td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
3145
+ Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
3146
+ r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
3147
+ AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
3148
+ Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
3149
+ xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
3150
+ ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
3151
+ EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
3152
+ Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
3153
+ ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
3154
+ 9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
3155
+ MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
3156
+ LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
3157
+ ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
3158
+ YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
3159
+ Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
3160
+ dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
3161
+ T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
3162
+ g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
3163
+ uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
3164
+ n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
3165
+ FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
3166
+ 5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
3167
+ 3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
3168
+ poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
3169
+ eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
3170
+ -----END CERTIFICATE-----
3171
+
3172
+ China Internet Network Information Center EV Certificates Root
3173
+ ==============================================================
3174
+ -----BEGIN CERTIFICATE-----
3175
+ MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
3176
+ BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
3177
+ aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
3178
+ Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
3179
+ A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
3180
+ PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
3181
+ cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
3182
+ jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
3183
+ 98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
3184
+ klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
3185
+ KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
3186
+ 7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
3187
+ HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
3188
+ glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
3189
+ 0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
3190
+ 7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
3191
+ ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
3192
+ 5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
3193
+ -----END CERTIFICATE-----
3194
+
3195
+ Swisscom Root CA 2
3196
+ ==================
3197
+ -----BEGIN CERTIFICATE-----
3198
+ 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
3224
+ 5OfNeOI5wSsSnqaeG8XmDtkx2Q==
3225
+ -----END CERTIFICATE-----
3226
+
3227
+ Swisscom Root EV CA 2
3228
+ =====================
3229
+ -----BEGIN CERTIFICATE-----
3230
+ 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
3256
+ l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
3257
+ -----END CERTIFICATE-----
3258
+
3259
+ CA Disig Root R1
3260
+ ================
3261
+ -----BEGIN CERTIFICATE-----
3262
+ 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
3286
+ a7+h89n07eLw4+1knj0vllJPgFOL
3287
+ -----END CERTIFICATE-----
3288
+
3289
+ CA Disig Root R2
3290
+ ================
3291
+ -----BEGIN CERTIFICATE-----
3292
+ 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
3316
+ 7+ZtsH8tZ/3zbBt1RqPlShfppNcL
3317
+ -----END CERTIFICATE-----
3318
+
3319
+ ACCVRAIZ1
3320
+ =========
3321
+ -----BEGIN CERTIFICATE-----
3322
+ MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
3323
+ SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
3324
+ MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
3325
+ UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
3326
+ DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
3327
+ jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
3328
+ RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
3329
+ aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
3330
+ 0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
3331
+ WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
3332
+ 8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
3333
+ 5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
3334
+ 9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
3335
+ Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
3336
+ Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
3337
+ Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
3338
+ VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
3339
+ Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
3340
+ QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
3341
+ AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
3342
+ YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
3343
+ AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
3344
+ IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
3345
+ aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
3346
+ dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
3347
+ MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
3348
+ hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
3349
+ R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
3350
+ YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
3351
+ nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
3352
+ TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
3353
+ sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
3354
+ I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
3355
+ Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
3356
+ 3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
3357
+ EfbRD0tVNEYqi4Y7
3358
+ -----END CERTIFICATE-----
3359
+
3360
+ TWCA Global Root CA
3361
+ ===================
3362
+ -----BEGIN CERTIFICATE-----
3363
+ MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT
3364
+ CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD
3365
+ QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK
3366
+ EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg
3367
+ Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C
3368
+ nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV
3369
+ r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR
3370
+ Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV
3371
+ tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W
3372
+ KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99
3373
+ sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p
3374
+ yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn
3375
+ kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI
3376
+ zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC
3377
+ AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g
3378
+ cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
3379
+ LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M
3380
+ 8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
3381
+ /eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg
3382
+ lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP
3383
+ A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m
3384
+ i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
3385
+ EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
3386
+ zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
3387
+ -----END CERTIFICATE-----
3388
+
3389
+ TeliaSonera Root CA v1
3390
+ ======================
3391
+ -----BEGIN CERTIFICATE-----
3392
+ MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
3393
+ CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
3394
+ MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
3395
+ VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
3396
+ 6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
3397
+ 3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
3398
+ B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
3399
+ Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
3400
+ oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
3401
+ F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
3402
+ oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
3403
+ gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
3404
+ TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
3405
+ AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
3406
+ DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
3407
+ zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
3408
+ 0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
3409
+ pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
3410
+ G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
3411
+ c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
3412
+ JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
3413
+ qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
3414
+ Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
3415
+ WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
3416
+ -----END CERTIFICATE-----
3417
+
3418
+ E-Tugra Certification Authority
3419
+ ===============================
3420
+ -----BEGIN CERTIFICATE-----
3421
+ MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
3422
+ DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
3423
+ ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
3424
+ ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
3425
+ NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
3426
+ QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
3427
+ cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
3428
+ DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
3429
+ MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
3430
+ hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
3431
+ CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
3432
+ ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
3433
+ BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
3434
+ E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
3435
+ rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
3436
+ jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
3437
+ rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
3438
+ dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
3439
+ /wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
3440
+ MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
3441
+ kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
3442
+ XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
3443
+ VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
3444
+ a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
3445
+ dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
3446
+ KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
3447
+ Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
3448
+ 8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
3449
+ C7TbO6Orb1wdtn7os4I07QZcJA==
3450
+ -----END CERTIFICATE-----
3451
+
3452
+ T-TeleSec GlobalRoot Class 2
3453
+ ============================
3454
+ -----BEGIN CERTIFICATE-----
3455
+ MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
3456
+ IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
3457
+ cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
3458
+ MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
3459
+ dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
3460
+ ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
3461
+ DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
3462
+ SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
3463
+ vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
3464
+ 2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
3465
+ WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
3466
+ MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
3467
+ YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
3468
+ r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
3469
+ vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
3470
+ 3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
3471
+ 9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
3472
+ -----END CERTIFICATE-----
3473
+
3474
+ Atos TrustedRoot 2011
3475
+ =====================
3476
+ -----BEGIN CERTIFICATE-----
3477
+ MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
3478
+ cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
3479
+ MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
3480
+ A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
3481
+ hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
3482
+ 54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
3483
+ DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
3484
+ HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
3485
+ z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
3486
+ l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
3487
+ bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
3488
+ CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
3489
+ k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
3490
+ TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
3491
+ 61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
3492
+ 3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
3493
+ -----END CERTIFICATE-----
3494
+
3495
+ QuoVadis Root CA 1 G3
3496
+ =====================
3497
+ -----BEGIN CERTIFICATE-----
3498
+ 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
3522
+ hMJKzRwuJIczYOXD
3523
+ -----END CERTIFICATE-----
3524
+
3525
+ QuoVadis Root CA 2 G3
3526
+ =====================
3527
+ -----BEGIN CERTIFICATE-----
3528
+ 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
3552
+ O3jtZsSOeWmD3n+M
3553
+ -----END CERTIFICATE-----
3554
+
3555
+ QuoVadis Root CA 3 G3
3556
+ =====================
3557
+ -----BEGIN CERTIFICATE-----
3558
+ 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
3582
+ PpxxVJkES/1Y+Zj0
3583
+ -----END CERTIFICATE-----
3584
+
3585
+ DigiCert Assured ID Root G2
3586
+ ===========================
3587
+ -----BEGIN CERTIFICATE-----
3588
+ MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
3589
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
3590
+ IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
3591
+ MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
3592
+ ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
3593
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
3594
+ 35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
3595
+ bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
3596
+ VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
3597
+ YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
3598
+ lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
3599
+ w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
3600
+ 0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
3601
+ d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
3602
+ hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
3603
+ jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
3604
+ IhNzbM8m9Yop5w==
3605
+ -----END CERTIFICATE-----
3606
+
3607
+ DigiCert Assured ID Root G3
3608
+ ===========================
3609
+ -----BEGIN CERTIFICATE-----
3610
+ MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
3611
+ UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
3612
+ VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
3613
+ MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
3614
+ d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
3615
+ BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
3616
+ RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
3617
+ KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
3618
+ UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
3619
+ YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
3620
+ 1vUhZscv6pZjamVFkpUBtA==
3621
+ -----END CERTIFICATE-----
3622
+
3623
+ DigiCert Global Root G2
3624
+ =======================
3625
+ -----BEGIN CERTIFICATE-----
3626
+ MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
3627
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
3628
+ HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
3629
+ MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
3630
+ dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
3631
+ hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
3632
+ kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
3633
+ 3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
3634
+ BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
3635
+ UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
3636
+ o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
3637
+ 5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
3638
+ F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
3639
+ WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
3640
+ QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
3641
+ iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
3642
+ MrY=
3643
+ -----END CERTIFICATE-----
3644
+
3645
+ DigiCert Global Root G3
3646
+ =======================
3647
+ -----BEGIN CERTIFICATE-----
3648
+ MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
3649
+ UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
3650
+ VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
3651
+ MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
3652
+ aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
3653
+ AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
3654
+ YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
3655
+ BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
3656
+ Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
3657
+ 3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
3658
+ VOKa5Vt8sycX
3659
+ -----END CERTIFICATE-----
3660
+
3661
+ DigiCert Trusted Root G4
3662
+ ========================
3663
+ -----BEGIN CERTIFICATE-----
3664
+ MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG
3665
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw
3666
+ HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
3667
+ MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
3668
+ d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G
3669
+ CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp
3670
+ pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o
3671
+ k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa
3672
+ vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY
3673
+ QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6
3674
+ MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm
3675
+ mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7
3676
+ f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH
3677
+ dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8
3678
+ oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
3679
+ DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
3680
+ ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY
3681
+ ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr
3682
+ yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy
3683
+ 7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah
3684
+ ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN
3685
+ 5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb
3686
+ /UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa
3687
+ 5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK
3688
+ G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP
3689
+ 82Z+
3690
+ -----END CERTIFICATE-----
3691
+
3692
+ WoSign
3693
+ ======
3694
+ -----BEGIN CERTIFICATE-----
3695
+ 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
3720
+ -----END CERTIFICATE-----
3721
+
3722
+ WoSign China
3723
+ ============
3724
+ -----BEGIN CERTIFICATE-----
3725
+ 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
3749
+ kI26oQ==
3750
+ -----END CERTIFICATE-----
3751
+
3752
+ COMODO RSA Certification Authority
3753
+ ==================================
3754
+ -----BEGIN CERTIFICATE-----
3755
+ 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
3781
+ LaZRfyHBNVOFBkpdn627G190
3782
+ -----END CERTIFICATE-----
3783
+
3784
+ USERTrust RSA Certification Authority
3785
+ =====================================
3786
+ -----BEGIN CERTIFICATE-----
3787
+ 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
3813
+ Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9
3814
+ -----END CERTIFICATE-----
3815
+
3816
+ USERTrust ECC Certification Authority
3817
+ =====================================
3818
+ -----BEGIN CERTIFICATE-----
3819
+ MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC
3820
+ VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
3821
+ aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
3822
+ biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC
3823
+ VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
3824
+ aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
3825
+ biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2
3826
+ 0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez
3827
+ nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV
3828
+ HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB
3829
+ HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu
3830
+ 9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
3831
+ -----END CERTIFICATE-----
3832
+
3833
+ GlobalSign ECC Root CA - R4
3834
+ ===========================
3835
+ -----BEGIN CERTIFICATE-----
3836
+ MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb
3837
+ R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
3838
+ EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
3839
+ R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
3840
+ EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl
3841
+ OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P
3842
+ AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV
3843
+ MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF
3844
+ JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q=
3845
+ -----END CERTIFICATE-----
3846
+
3847
+ GlobalSign ECC Root CA - R5
3848
+ ===========================
3849
+ -----BEGIN CERTIFICATE-----
3850
+ MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb
3851
+ R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
3852
+ EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
3853
+ R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
3854
+ EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6
3855
+ SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS
3856
+ h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
3857
+ BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
3858
+ uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
3859
+ yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
3860
+ -----END CERTIFICATE-----
includes/mollie-api-php/tests/apiUnitTest.php ADDED
@@ -0,0 +1,277 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Mollie_ApiUnitTest extends PHPUnit_Framework_TestCase
4
+ {
5
+ const API_KEY = "test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM";
6
+
7
+ /**
8
+ * @var Mollie_API_Client|PHPUnit_Framework_MockObject_MockObject
9
+ */
10
+ protected $api;
11
+
12
+ /**
13
+ * @var Mollie_API_CompatibilityChecker|PHPUnit_Framework_MockObject_MockObject
14
+ */
15
+ protected $compatibilityChecker;
16
+
17
+ protected function setUp()
18
+ {
19
+ parent::setUp();
20
+
21
+ $this->compatibilityChecker = $this->getMock("Mollie_API_CompatibilityChecker", array("checkCompatibility"));
22
+ $this->api = $this->getMock("Mollie_API_Client", array("performHttpCall", "getCompatibilityChecker"), array(), '', FALSE);
23
+
24
+ $this->api->expects($this->any())
25
+ ->method("getCompatibilityChecker")
26
+ ->will($this->returnValue($this->compatibilityChecker));
27
+
28
+ // Call constructor after set expectations
29
+ $this->api->__construct();
30
+ }
31
+
32
+ /**
33
+ * @expectedException Mollie_API_Exception
34
+ * @expectedExceptionMessage Invalid API key: 'invalid'. An API key must start with 'test_' or 'live_'.
35
+ */
36
+ public function testSettingInvalidApiKeyFails ()
37
+ {
38
+ $api = $this->getMock("Mollie_API_Client", NULL, array(), '', FALSE);
39
+ $api->setApiKey("invalid");
40
+ }
41
+
42
+ /**
43
+ * @expectedException Mollie_API_Exception
44
+ * @expectedExceptionMessage You have not set an API key. Please use setApiKey() to set the API key.
45
+ */
46
+ public function testNotSettingApiKeyGivesException()
47
+ {
48
+ $this->api = $this->getMock("Mollie_API_Client", array('getCompatibilityChecker'), array(), '', FALSE);
49
+ $this->api->expects($this->any())
50
+ ->method("getCompatibilityChecker")
51
+ ->will($this->returnValue($this->compatibilityChecker));
52
+
53
+ $this->api->__construct();
54
+ $this->api->payments->all();
55
+ }
56
+
57
+ /**
58
+ * @expectedException Mollie_API_Exception
59
+ * @expectedExceptionMessage Unable to decode Mollie response: ''.
60
+ */
61
+ public function testCreatePaymentFailsEmptyHttpBody ()
62
+ {
63
+ $this->api->expects($this->once())
64
+ ->method("performHttpCall")
65
+ ->with(Mollie_API_Client::HTTP_POST, "payments", '{"amount":100,"description":"Order #1337 24 Roundhousekicks","redirectUrl":"http:\/\/www.chucknorris.rhk\/return.php"}')
66
+ ->will($this->returnValue(""));
67
+
68
+ $this->api->payments->create(array(
69
+ "amount" => 100.00,
70
+ "description" => "Order #1337 24 Roundhousekicks",
71
+ "redirectUrl" => "http://www.chucknorris.rhk/return.php",
72
+ ));
73
+ }
74
+
75
+ /**
76
+ * @expectedException Mollie_API_Exception
77
+ * @expectedExceptionMessage Error executing API call (request): Unauthorized request.
78
+ */
79
+ public function testCreatePaymentFailsError ()
80
+ {
81
+ $this->api->expects($this->once())
82
+ ->method("performHttpCall")
83
+ ->with(Mollie_API_Client::HTTP_POST, "payments", '{"amount":100,"description":"Order #1337 24 Roundhousekicks","redirectUrl":"http:\/\/www.chucknorris.rhk\/return.php"}')
84
+ ->will($this->returnValue('{ "error":{ "type":"request", "message":"Unauthorized request", "links":{ "documentation":"https://www.mollie.nl/api/docs/" } } }'));
85
+
86
+ $this->api->payments->create(array(
87
+ "amount" => 100.00,
88
+ "description" => "Order #1337 24 Roundhousekicks",
89
+ "redirectUrl" => "http://www.chucknorris.rhk/return.php",
90
+ ));
91
+ }
92
+
93
+ /**
94
+ * @expectedException Mollie_API_Exception
95
+ * @expectedExceptionMessage Error encoding parameters into JSON: '5'.
96
+ * @requires PHP 5.3.0
97
+ */
98
+ public function testCreatePaymentJsonFailsPhp53 ()
99
+ {
100
+ $this->api->expects($this->never())
101
+ ->method("performHttpCall");
102
+
103
+ $this->api->payments->create(array(
104
+ "amount" => 100.00,
105
+ "description" => "Order #1337 24 Roundhousekicks \x80 15,-",
106
+ "redirectUrl" => "http://www.chucknorris.rhk/return.php",
107
+ ));
108
+ }
109
+
110
+ public function testCreatePaymentWorksCorrectly ()
111
+ {
112
+ $this->api->expects($this->once())
113
+ ->method("performHttpCall")
114
+ ->with(Mollie_API_Client::HTTP_POST, "payments", '{"amount":100,"description":"Order #1337 24 Roundhousekicks","redirectUrl":"http:\/\/www.chucknorris.rhk\/return.php"}')
115
+ ->will($this->returnValue('{ "id":"tr_d0b0E3EA3v", "mode":"test", "createdDatetime":"2013-11-21T09:57:08.0Z", "status":"open", "amount":100, "description":"Order #1225", "method":null, "details":null, "links":{ "paymentUrl":"https://www.mollie.nl/payscreen/pay/d0b0E3EA3v" } }'));
116
+
117
+ /** @var Mollie_API_Object_Payment $payment */
118
+ $payment = $this->api->payments->create(array(
119
+ "amount" => 100.00,
120
+ "description" => "Order #1337 24 Roundhousekicks",
121
+ "redirectUrl" => "http://www.chucknorris.rhk/return.php",
122
+ ));
123
+
124
+ $this->assertEquals("tr_d0b0E3EA3v", $payment->id);
125
+ $this->assertEquals("Order #1225", $payment->description);
126
+ $this->assertNull($payment->method);
127
+ $this->assertEquals("2013-11-21T09:57:08.0Z", $payment->createdDatetime);
128
+
129
+ $this->assertEquals(Mollie_API_Object_Payment::STATUS_OPEN, $payment->status);
130
+ $this->assertTrue($payment->isOpen());
131
+ $this->assertFalse($payment->isPaid());
132
+ $this->assertFalse($payment->isExpired());
133
+ $this->assertFalse($payment->isCancelled());
134
+
135
+ $this->assertEquals("https://www.mollie.nl/payscreen/pay/d0b0E3EA3v", $payment->getPaymentUrl());
136
+ $this->assertNull($payment->metadata);
137
+ }
138
+
139
+ /**
140
+ * @group refunds
141
+ */
142
+ public function testCreateRefundWorksCorrectly ()
143
+ {
144
+ $this->api->expects($this->once())
145
+ ->method("performHttpCall")
146
+ ->with(Mollie_API_Client::HTTP_POST, "payments/tr_OCrlrHqKsr/refunds", '{"amount":60.33}')
147
+ ->will($this->returnValue('{"id":"re_O3UbDhODzG","payment":{"id":"tr_OCrlrHqKsr","mode":"live","createdDatetime":"2014-09-15T09:24:39.0Z","status":"refunded","expiryPeriod":"PT15M","paidDatetime":"2014-09-15T09:28:29.0Z","amount":"100.00","amountRefunded":"60.33","description":"15 Round House Kicks To The Face","method":"ideal","metadata":null,"details":{"consumerName":"Hr E G H K\u00fcppers en/of MW M.J. K\u00fcppers-Veeneman","consumerAccount":"NL53INGB0654422370","consumerBic":"INGBNL2A"},"links":{"redirectUrl":"http://www.example.org/return.php"}},"amount":"60.33","refundedDatetime":"2014-09-15T09:24:39.0Z"}'));
148
+
149
+ $payment = new Mollie_API_Object_Payment();
150
+ $payment->id = "tr_OCrlrHqKsr";
151
+
152
+ /** @var Mollie_API_Object_Payment $payment */
153
+ $refund = $this->api->payments->refund($payment, 60.33);
154
+
155
+ $this->assertEquals("re_O3UbDhODzG", $refund->id);
156
+ $this->assertEquals(60.33, $refund->amount);
157
+ $this->assertEquals("2014-09-15T09:24:39.0Z", $refund->refundedDatetime);
158
+
159
+ $this->assertEquals("tr_OCrlrHqKsr", $payment->id);
160
+ $this->assertEquals("15 Round House Kicks To The Face", $payment->description);
161
+ $this->assertEquals(Mollie_API_Object_Method::IDEAL, $payment->method);
162
+ $this->assertEquals("2014-09-15T09:24:39.0Z", $payment->createdDatetime);
163
+ $this->assertEquals(Mollie_API_Object_Payment::STATUS_REFUNDED, $payment->status);
164
+
165
+ $this->assertFalse($payment->isOpen());
166
+ $this->assertFalse($payment->isExpired());
167
+ $this->assertFalse($payment->isCancelled());
168
+ $this->assertTrue($payment->isPaid());
169
+ $this->assertTrue($payment->isRefunded());
170
+
171
+ $this->assertNull($payment->metadata);
172
+ }
173
+
174
+ /**
175
+ * @dataProvider dpInvalidPaymentId
176
+ */
177
+ public function testGetPaymentFailsWithInvalidPaymentId ($payment_id)
178
+ {
179
+ $this->setExpectedException('Mollie_API_Exception', "Invalid payment ID: '{$payment_id}'. A payment ID should start with 'tr_'.");
180
+
181
+ $this->api->payments->get($payment_id);
182
+ }
183
+
184
+ public function dpInvalidPaymentId ()
185
+ {
186
+ return array(
187
+ array(NULL),
188
+ array(''),
189
+ array('d0b0E3EA3v')
190
+ );
191
+ }
192
+
193
+ public function testGetPaymentWorksCorrectly ()
194
+ {
195
+ $this->api->expects($this->once())
196
+ ->method("performHttpCall")
197
+ ->with(Mollie_API_Client::HTTP_GET, "payments/tr_d0b0E3EA3v")
198
+ ->will($this->returnValue('{ "id":"tr_d0b0E3EA3v", "mode":"test", "createdDatetime":"2013-11-21T09:57:08.0Z", "status":"open", "amount":100, "description":"Order #1225", "method":null, "details":null, "links":{ "paymentUrl":"https://www.mollie.nl/payscreen/pay/d0b0E3EA3v" } }'));
199
+
200
+ /** @var Mollie_API_Object_Payment $payment */
201
+ $payment = $this->api->payments->get("tr_d0b0E3EA3v");
202
+
203
+ $this->assertEquals("tr_d0b0E3EA3v", $payment->id);
204
+ $this->assertEquals("Order #1225", $payment->description);
205
+ $this->assertNull($payment->method);
206
+ $this->assertEquals("2013-11-21T09:57:08.0Z", $payment->createdDatetime);
207
+ $this->assertEquals(Mollie_API_Object_Payment::STATUS_OPEN, $payment->status);
208
+
209
+ $this->assertTrue($payment->isOpen());
210
+ $this->assertFalse($payment->isPaid());
211
+ $this->assertFalse($payment->isExpired());
212
+ $this->assertFalse($payment->isCancelled());
213
+
214
+ $this->assertEquals("https://www.mollie.nl/payscreen/pay/d0b0E3EA3v", $payment->getPaymentUrl());
215
+ $this->assertNull($payment->metadata);
216
+ }
217
+
218
+ public function testGetPaymentsWorksCorrectly ()
219
+ {
220
+ $this->api->expects($this->once())
221
+ ->method("performHttpCall")
222
+ ->with(Mollie_API_Client::HTTP_GET, "payments?offset=0&count=0")
223
+ ->will($this->returnValue('{
224
+ "totalCount":1,
225
+ "offset":0,
226
+ "count":1,
227
+ "data":[
228
+ {
229
+ "id":"tr_d0b0E3EA3v", "mode":"test", "createdDatetime":"2013-11-21T09:57:08.0Z", "expiryPeriod": "P12DT11H30M45S", "status":"open", "amount":100, "description":"Order #1225", "method":null, "details":null, "links":{ "paymentUrl":"https://www.mollie.nl/payscreen/pay/d0b0E3EA3v" }
230
+ }
231
+ ],
232
+ "links":{
233
+ "first":null,
234
+ "previous":null,
235
+ "next":null,
236
+ "last":null
237
+ }
238
+ }'));
239
+
240
+ $collection = $this->api->payments->all();
241
+ $this->assertCount(1, $collection);
242
+
243
+ /** @var Mollie_API_Object_Payment $payment */
244
+ $payment = $collection[0];
245
+
246
+ $this->assertEquals("tr_d0b0E3EA3v", $payment->id);
247
+ $this->assertEquals("Order #1225", $payment->description);
248
+ $this->assertNull($payment->method);
249
+ $this->assertEquals("P12DT11H30M45S", $payment->expiryPeriod);
250
+ $this->assertEquals("2013-11-21T09:57:08.0Z", $payment->createdDatetime);
251
+ $this->assertEquals(Mollie_API_Object_Payment::STATUS_OPEN, $payment->status);
252
+ $this->assertTrue($payment->isOpen());
253
+ $this->assertFalse($payment->isPaid());
254
+ $this->assertFalse($payment->isExpired());
255
+ $this->assertFalse($payment->isCancelled());
256
+ $this->assertEquals("https://www.mollie.nl/payscreen/pay/d0b0E3EA3v", $payment->getPaymentUrl());
257
+ $this->assertNull($payment->metadata);
258
+ }
259
+
260
+ public function testMethodsWorksCorrectly ()
261
+ {
262
+ $this->api->expects($this->once())
263
+ ->method("performHttpCall")
264
+ ->with(Mollie_API_Client::HTTP_GET, "methods?offset=0&count=0&locale=de")
265
+ ->will($this->returnValue('{"totalCount":4,"offset":0,"count":4,"data":[{"id":"sofort","description":"SOFORT \u00dcberweisung","amount":{"minimum":"0.31","maximum":"5000.00"},"image":{"normal":"https://www.mollie.com/images/payscreen/methods/sofort.png","bigger":"https://www.mollie.com/images/payscreen/methods/sofort@2x.png"}},{"id":"ideal","description":"iDEAL","amount":{"minimum":"0.55","maximum":"50000.00"},"image":{"normal":"https://www.mollie.com/images/payscreen/methods/ideal.png","bigger":"https://www.mollie.com/images/payscreen/methods/ideal@2x.png"}},{"id":"mistercash","description":"Bancontact/Mister Cash","amount":{"minimum":"0.31","maximum":"10000.00"},"image":{"normal":"https://www.mollie.com/images/payscreen/methods/mistercash.png","bigger":"https://www.mollie.com/images/payscreen/methods/mistercash@2x.png"}},{"id":"belfius","description":"Belfius Direct Net","amount":{"minimum":"0.31","maximum":"50000.00"},"image":{"normal":"https://www.mollie.com/images/payscreen/methods/belfius.png","bigger":"https://www.mollie.com/images/payscreen/methods/belfius@2x.png"}}]}'));
266
+
267
+ $methods = $this->api->methods->all(0, 0, array("locale" => "de"));
268
+
269
+ $this->assertCount(4, $methods);
270
+ $this->assertInstanceOf("Mollie_API_Object_List", $methods);
271
+
272
+ foreach ($methods as $method)
273
+ {
274
+ $this->assertInstanceof("Mollie_API_Object_Method", $method);
275
+ }
276
+ }
277
+ }
includes/mollie-api-php/tests/bootstrap.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <?php
2
+
3
+ date_default_timezone_set("CET");
4
+
5
+ require_once dirname(__FILE__) . "/../src/Mollie/API/Autoloader.php";
includes/mollie-api-php/tests/compatibilityCheckerUnitTest.php ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Mollie_API_CompatibilityCheckerUnitTest extends PHPUnit_Framework_TestCase
4
+ {
5
+ /**
6
+ * @var Mollie_API_CompatibilityChecker|PHPUnit_Framework_MockObject_MockObject
7
+ */
8
+ protected $checker;
9
+
10
+ protected function setUp()
11
+ {
12
+ parent::setUp();
13
+
14
+ $this->checker = $this->getMock("Mollie_API_CompatibilityChecker", array("satisfiesPhpVersion", "satisfiesJsonExtension", "satisfiesCurlExtension", "satisfiesCurlFunctions"));
15
+ }
16
+
17
+ /**
18
+ * @expectedException Mollie_API_Exception_IncompatiblePlatform
19
+ * @expectedExceptionCode Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_PHP_VERSION
20
+ */
21
+ public function testCheckCompatibilityThrowsExceptionOnPhpVersion ()
22
+ {
23
+ $this->checker->expects($this->once())
24
+ ->method("satisfiesPhpVersion")
25
+ ->will($this->returnValue(FALSE)); // Fail
26
+
27
+ $this->checker->expects($this->never())
28
+ ->method("satisfiesJsonExtension");
29
+
30
+ $this->checker->expects($this->never())
31
+ ->method("satisfiesCurlExtension");
32
+
33
+ $this->checker->expects($this->never())
34
+ ->method("satisfiesCurlFunctions");
35
+
36
+ $this->checker->checkCompatibility();
37
+ }
38
+
39
+ /**
40
+ * @expectedException Mollie_API_Exception_IncompatiblePlatform
41
+ * @expectedExceptionCode Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_JSON_EXTENSION
42
+ */
43
+ public function testCheckCompatibilityThrowsExceptionOnJsonExtension ()
44
+ {
45
+ $this->checker->expects($this->once())
46
+ ->method("satisfiesPhpVersion")
47
+ ->will($this->returnValue(TRUE));
48
+
49
+ $this->checker->expects($this->once())
50
+ ->method("satisfiesJsonExtension")
51
+ ->will($this->returnValue(FALSE)); // Fail
52
+
53
+ $this->checker->expects($this->never())
54
+ ->method("satisfiesCurlExtension");
55
+
56
+ $this->checker->expects($this->never())
57
+ ->method("satisfiesCurlFunctions");
58
+
59
+ $this->checker->checkCompatibility();
60
+ }
61
+
62
+ /**
63
+ * @expectedException Mollie_API_Exception_IncompatiblePlatform
64
+ * @expectedExceptionCode Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_CURL_EXTENSION
65
+ */
66
+ public function testCheckCompatibilityThrowsExceptionOnCurlExtension ()
67
+ {
68
+ $this->checker->expects($this->once())
69
+ ->method("satisfiesPhpVersion")
70
+ ->will($this->returnValue(TRUE));
71
+
72
+ $this->checker->expects($this->once())
73
+ ->method("satisfiesJsonExtension")
74
+ ->will($this->returnValue(TRUE));
75
+
76
+ $this->checker->expects($this->once())
77
+ ->method("satisfiesCurlExtension")
78
+ ->will($this->returnValue(FALSE)); // Fail
79
+
80
+ $this->checker->expects($this->never())
81
+ ->method("satisfiesCurlFunctions");
82
+
83
+ $this->checker->checkCompatibility();
84
+ }
85
+
86
+ /**
87
+ * @expectedException Mollie_API_Exception_IncompatiblePlatform
88
+ * @expectedExceptionCode Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_CURL_FUNCTION
89
+ */
90
+ public function testCheckCompatibilityThrowsExceptionOnCurlFunctions ()
91
+ {
92
+ $this->checker->expects($this->once())
93
+ ->method("satisfiesPhpVersion")
94
+ ->will($this->returnValue(TRUE));
95
+
96
+ $this->checker->expects($this->once())
97
+ ->method("satisfiesJsonExtension")
98
+ ->will($this->returnValue(TRUE));
99
+
100
+ $this->checker->expects($this->once())
101
+ ->method("satisfiesCurlExtension")
102
+ ->will($this->returnValue(TRUE));
103
+
104
+ $this->checker->expects($this->once())
105
+ ->method("satisfiesCurlFunctions")
106
+ ->will($this->returnValue(FALSE)); // Fail
107
+
108
+ $this->checker->checkCompatibility();
109
+ }
110
+ }
includes/mollie/wc/autoload.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Autoload
3
+ {
4
+ /**
5
+ * @var bool
6
+ */
7
+ static $registered = false;
8
+
9
+ /**
10
+ * @return bool
11
+ */
12
+ public static function register ()
13
+ {
14
+ if (self::$registered === true)
15
+ {
16
+ /*
17
+ * Autoloader already registered
18
+ */
19
+ return false;
20
+ }
21
+
22
+ // Set registered
23
+ self::$registered = true;
24
+
25
+ return spl_autoload_register(array(__CLASS__, "autoload"));
26
+ }
27
+
28
+ /**
29
+ * @return bool
30
+ */
31
+ public static function unregister ()
32
+ {
33
+ if (self::$registered === false)
34
+ {
35
+ /*
36
+ * Autoloader not registered
37
+ */
38
+ return false;
39
+ }
40
+
41
+ return spl_autoload_unregister(array(__CLASS__, "autoload"));
42
+ }
43
+
44
+ /**
45
+ * @param string $class_name
46
+ */
47
+ public static function autoload ($class_name)
48
+ {
49
+ // Path to includes directory
50
+ $base_path = dirname(dirname(dirname(__FILE__)));
51
+
52
+ if (stripos($class_name, "Mollie_WC_") === 0)
53
+ {
54
+ $class_path = $base_path . '/' . str_replace('_', '/', strtolower($class_name)) . '.php';
55
+
56
+ if (file_exists($class_path))
57
+ {
58
+ require_once $class_path;
59
+ }
60
+ }
61
+ // Mollie API client
62
+ elseif (stripos($class_name, "Mollie_API_") === 0)
63
+ {
64
+ $class_path = $base_path . '/mollie-api-php/src/' . str_replace('_', '/', $class_name) . '.php';
65
+
66
+ if (file_exists($class_path))
67
+ {
68
+ require_once $class_path;
69
+ }
70
+ }
71
+ }
72
+ }
includes/mollie/wc/exception.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ class Mollie_WC_Exception extends Exception {}
includes/mollie/wc/exception/couldnotconnecttomollie.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ class Mollie_WC_Exception_CouldNotConnectToMollie extends Mollie_WC_Exception {}
includes/mollie/wc/exception/incompatibleplatform.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Exception_IncompatiblePlatform extends Mollie_WC_Exception
3
+ {
4
+ const API_CLIENT_NOT_INSTALLED = 1000;
5
+ const API_CLIENT_NOT_COMPATIBLE = 2000;
6
+ }
includes/mollie/wc/exception/invalidapikey.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ class Mollie_WC_Exception_InvalidApiKey extends Mollie_WC_Exception {}
includes/mollie/wc/gateway/abstract.php ADDED
@@ -0,0 +1,774 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
3
+ {
4
+ /**
5
+ * @var string
6
+ */
7
+ protected $default_title;
8
+
9
+ /**
10
+ * @var string
11
+ */
12
+ protected $default_description;
13
+
14
+ /**
15
+ * @var bool
16
+ */
17
+ protected $display_logo;
18
+
19
+ /**
20
+ *
21
+ */
22
+ public function __construct ()
23
+ {
24
+ // No plugin id, gateway id is unique enough
25
+ $this->plugin_id = '';
26
+ // Use gateway class name as gateway id
27
+ $this->id = strtolower(get_class($this));
28
+ // Set gateway title (visible in admin)
29
+ $this->method_title = 'Mollie - ' . $this->getDefaultTitle();
30
+
31
+ // Load the settings.
32
+ $this->init_form_fields();
33
+ $this->init_settings();
34
+
35
+ $this->title = $this->get_option('title');
36
+ $this->display_logo = $this->get_option('display_logo') == 'yes';
37
+
38
+ $this->_initDescription();
39
+ $this->_initIcon();
40
+
41
+ add_action('woocommerce_api_' . $this->id, array($this, 'webhookAction'));
42
+ add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options'));
43
+ add_action('woocommerce_thankyou_' . $this->id, array($this, 'thankyou_page'));
44
+ add_action('woocommerce_email_after_order_table', array($this, 'displayInstructions'), 10, 3);
45
+
46
+ if (!$this->isValidForUse())
47
+ {
48
+ // Disable gateway if it's not valid for use
49
+ $this->enabled = false;
50
+ }
51
+ }
52
+
53
+ /**
54
+ * Initialise Gateway Settings Form Fields
55
+ */
56
+ public function init_form_fields()
57
+ {
58
+ $this->form_fields = array(
59
+ 'enabled' => array(
60
+ 'title' => __('Enable/Disable', 'mollie-payments-for-woocommerce'),
61
+ 'type' => 'checkbox',
62
+ 'label' => sprintf(__('Enable %s', 'mollie-payments-for-woocommerce'), $this->getDefaultTitle()),
63
+ 'default' => 'yes'
64
+ ),
65
+ 'title' => array(
66
+ 'title' => __('Title', 'mollie-payments-for-woocommerce'),
67
+ 'type' => 'text',
68
+ 'description' => sprintf(__('This controls the title which the user sees during checkout. Default <code>%s</code>', 'mollie-payments-for-woocommerce'), $this->getDefaultTitle()),
69
+ 'default' => $this->getDefaultTitle(),
70
+ 'desc_tip' => true,
71
+ ),
72
+ 'display_logo' => array(
73
+ 'title' => __('Display logo', 'mollie-payments-for-woocommerce'),
74
+ 'type' => 'checkbox',
75
+ 'label' => __('Display logo on checkout page. Default <code>enabled</code>', 'mollie-payments-for-woocommerce'),
76
+ 'default' => 'yes'
77
+ ),
78
+ 'description' => array(
79
+ 'title' => __('Description', 'mollie-payments-for-woocommerce'),
80
+ 'type' => 'textarea',
81
+ 'description' => sprintf(__('Payment method description that the customer will see on your checkout. Default <code>%s</code>', 'mollie-payments-for-woocommerce'), $this->getDefaultDescription()),
82
+ 'default' => $this->getDefaultDescription(),
83
+ 'desc_tip' => true,
84
+ ),
85
+ );
86
+ }
87
+
88
+ /**
89
+ * @return string
90
+ */
91
+ public function getIconUrl ()
92
+ {
93
+ return Mollie_WC_Plugin::getPluginUrl('/assets/images/' . $this->getMollieMethodId() . '.png');
94
+ }
95
+
96
+ protected function _initIcon ()
97
+ {
98
+ if ($this->display_logo)
99
+ {
100
+ $default_icon = $this->getIconUrl();
101
+ $this->icon = apply_filters($this->id . '_icon_url', $default_icon);
102
+ }
103
+ }
104
+
105
+ protected function _initDescription ()
106
+ {
107
+ $description = '';
108
+
109
+ if (Mollie_WC_Plugin::getSettingsHelper()->isTestModeEnabled())
110
+ {
111
+ $description .= '<strong>' . __('Test mode enabled.', 'mollie-payments-for-woocommerce') . '</strong><br/>';
112
+ }
113
+
114
+ $description .= $this->get_option('description');
115
+
116
+ $this->description = $description;
117
+ }
118
+
119
+ public function admin_options ()
120
+ {
121
+ if (!$this->enabled && count($this->errors))
122
+ {
123
+ echo '<div class="inline error"><p><strong>' . __('Gateway Disabled', 'mollie-payments-for-woocommerce') . '</strong>: '
124
+ . implode('<br/>', $this->errors)
125
+ . '</p></div>';
126
+
127
+ return;
128
+ }
129
+
130
+ parent::admin_options();
131
+ }
132
+
133
+ /**
134
+ * Check if this gateway can be used
135
+ *
136
+ * @return bool
137
+ */
138
+ protected function isValidForUse()
139
+ {
140
+ $settings = Mollie_WC_Plugin::getSettingsHelper();
141
+
142
+ if (!$this->isValidApiKeyProvided())
143
+ {
144
+ $test_mode = $settings->isTestModeEnabled();
145
+
146
+ $this->errors[] = ($test_mode ? __('Test mode enabled.', 'mollie-payments-for-woocommerce') . ' ' : '') . sprintf(
147
+ /* translators: The surrounding %s's Will be replaced by a link to the global setting page */
148
+ __('No API key provided. Please %sset you Mollie API key%s first.', 'mollie-payments-for-woocommerce'),
149
+ '<a href="' . $settings->getGlobalSettingsUrl() . '">',
150
+ '</a>'
151
+ );
152
+
153
+ return false;
154
+ }
155
+
156
+ if (null === $this->getMollieMethod())
157
+ {
158
+ $this->errors[] = sprintf(
159
+ /* translators: Placeholder 1: payment method title. The surrounding %s's Will be replaced by a link to the Mollie profile */
160
+ __('%s not enabled in your Mollie profile. You can enabled it by editing your %sMollie profile%s.', 'mollie-payments-for-woocommerce'),
161
+ $this->getDefaultTitle(),
162
+ '<a href="https://www.mollie.com/beheer/account/profielen/" target="_blank">',
163
+ '</a>'
164
+ );
165
+
166
+ return false;
167
+ }
168
+
169
+ if (!$this->isCurrencySupported())
170
+ {
171
+ $this->errors[] = sprintf(
172
+ /* translators: Placeholder 1: WooCommerce currency, placeholder 2: Supported Mollie currencies */
173
+ __('Shop currency %s not supported by Mollie. Mollie only supports: %s.', 'mollie-payments-for-woocommerce'),
174
+ get_woocommerce_currency(),
175
+ implode(', ', $this->getSupportedCurrencies())
176
+ );
177
+
178
+ return false;
179
+ }
180
+
181
+ return true;
182
+ }
183
+
184
+ /**
185
+ * @param int $order_id
186
+ * @return array
187
+ */
188
+ public function process_payment ($order_id)
189
+ {
190
+ $order = Mollie_WC_Plugin::getDataHelper()->getWcOrder($order_id);
191
+
192
+ if (!$order)
193
+ {
194
+ Mollie_WC_Plugin::debug($this->id . ': Could not process payment, order ' . $order_id . ' not found.');
195
+
196
+ Mollie_WC_Plugin::addNotice(sprintf(__('Could not load order %s', 'mollie-payments-for-woocommerce'), $order_id), 'error');
197
+
198
+ return array('result' => 'failure');
199
+ }
200
+
201
+ $initial_status = $this->getInitialStatus();
202
+
203
+ // Overwrite plugin-wide
204
+ $initial_status = apply_filters(Mollie_WC_Plugin::PLUGIN_ID . '_initial_order_status', $initial_status);
205
+
206
+ // Overwrite gateway-wide
207
+ $initial_status = apply_filters(Mollie_WC_Plugin::PLUGIN_ID . '_initial_order_status_' . $this->id, $initial_status);
208
+
209
+ // Set initial status
210
+ // Status is only updated if the new status is not the same as the default order status (pending)
211
+ $order->update_status(
212
+ $initial_status,
213
+ __('Awaiting payment confirmation.', 'mollie-payments-for-woocommerce') . "\n"
214
+ );
215
+
216
+ $settings_helper = Mollie_WC_Plugin::getSettingsHelper();
217
+
218
+ $payment_description = $settings_helper->getPaymentDescription();
219
+ $payment_locale = $settings_helper->getPaymentLocale();
220
+ $mollie_method = $this->getMollieMethodId();
221
+ $selected_issuer = $this->getSelectedIssuer();
222
+ $return_url = $this->getReturnUrl($order);
223
+ $webhook_url = $this->getWebhookUrl($order);
224
+
225
+ $payment_description = strtr($payment_description, array(
226
+ '{order_number}' => $order->get_order_number(),
227
+ '{order_date}' => date_i18n(wc_date_format(), strtotime($order->order_date)),
228
+ ));
229
+
230
+ $data = array_filter(array(
231
+ 'amount' => $order->get_total(),
232
+ 'description' => $payment_description,
233
+ 'redirectUrl' => $return_url,
234
+ 'webhookUrl' => $webhook_url,
235
+ 'method' => $mollie_method,
236
+ 'issuer' => $selected_issuer,
237
+ 'locale' => $payment_locale,
238
+ 'billingAddress' => $order->billing_address_1,
239
+ 'billingCity' => $order->billing_city,
240
+ 'billingRegion' => $order->billing_state,
241
+ 'billingPostal' => $order->billing_postcode,
242
+ 'billingCountry' => $order->billing_country,
243
+ 'shippingAddress' => $order->shipping_address_1,
244
+ 'shippingCity' => $order->shipping_city,
245
+ 'shippingRegion' => $order->shipping_state,
246
+ 'shippingPostal' => $order->shipping_postcode,
247
+ 'shippingCountry' => $order->shipping_country,
248
+ 'metadata' => array(
249
+ 'order_id' => $order->id,
250
+ ),
251
+ ));
252
+
253
+ $data = apply_filters('woocommerce_' . $this->id . '_args', $data, $order);
254
+
255
+ try
256
+ {
257
+ Mollie_WC_Plugin::debug($this->id . ': Create payment for order ' . $order->id, true);
258
+
259
+ do_action(Mollie_WC_Plugin::PLUGIN_ID . '_create_payment', $data, $order);
260
+
261
+ // Is test mode enabled?
262
+ $test_mode = Mollie_WC_Plugin::getSettingsHelper()->isTestModeEnabled();
263
+
264
+ // Create Mollie payment
265
+ $payment = Mollie_WC_Plugin::getApiHelper()->getApiClient($test_mode)->payments->create($data);
266
+
267
+ // Set active Mollie payment
268
+ Mollie_WC_Plugin::getDataHelper()->setActiveMolliePayment($order->id, $payment);
269
+
270
+ do_action(Mollie_WC_Plugin::PLUGIN_ID . '_payment_created', $payment, $order);
271
+
272
+ Mollie_WC_Plugin::debug($this->id . ': Payment ' . $payment->id . ' (' . $payment->mode . ') created for order ' . $order->id);
273
+
274
+ $order->add_order_note(sprintf(
275
+ /* translators: Placeholder 1: Payment method title, placeholder 2: payment ID */
276
+ __('%s payment started (%s).', 'mollie-payments-for-woocommerce'),
277
+ $this->method_title,
278
+ $payment->id . ($payment->mode == 'test' ? (' - ' . __('test mode', 'mollie-payments-for-woocommerce')) : '')
279
+ ));
280
+
281
+ return array(
282
+ 'result' => 'success',
283
+ 'redirect' => $payment->getPaymentUrl(),
284
+ );
285
+ }
286
+ catch (Mollie_API_Exception $e)
287
+ {
288
+ Mollie_WC_Plugin::debug($this->id . ': Failed to create payment for order ' . $order->id . ': ' . $e->getMessage());
289
+
290
+ /* translators: Placeholder 1: Payment method title */
291
+ $message = sprintf(__('Could not create %s payment.', 'mollie-payments-for-woocommerce'), $this->title);
292
+
293
+ if (defined('WP_DEBUG') && WP_DEBUG)
294
+ {
295
+ $message .= ' ' . $e->getMessage();
296
+ }
297
+
298
+ Mollie_WC_Plugin::addNotice($message, 'error');
299
+ }
300
+
301
+ return array('result' => 'failure');
302
+ }
303
+
304
+ public function webhookAction ()
305
+ {
306
+ // Webhook test by Mollie
307
+ if (isset($_GET['testByMollie']))
308
+ {
309
+ Mollie_WC_Plugin::debug(__METHOD__ . ': Webhook tested by Mollie.', true);
310
+ return;
311
+ }
312
+
313
+ if (empty($_GET['order_id']) || empty($_GET['key']))
314
+ {
315
+ Mollie_WC_Plugin::setHttpResponseCode(400);
316
+ Mollie_WC_Plugin::debug(__METHOD__ . ": No order ID or order key provided.");
317
+ return;
318
+ }
319
+
320
+ $order_id = $_GET['order_id'];
321
+ $key = $_GET['key'];
322
+
323
+ $data_helper = Mollie_WC_Plugin::getDataHelper();
324
+ $order = $data_helper->getWcOrder($order_id);
325
+
326
+ if (!$order)
327
+ {
328
+ Mollie_WC_Plugin::setHttpResponseCode(404);
329
+ Mollie_WC_Plugin::debug(__METHOD__ . ": Could not find order $order_id.");
330
+ return;
331
+ }
332
+
333
+ if (!$order->key_is_valid($key))
334
+ {
335
+ Mollie_WC_Plugin::setHttpResponseCode(401);
336
+ Mollie_WC_Plugin::debug(__METHOD__ . ": Invalid key $key for order $order_id.");
337
+ return;
338
+ }
339
+
340
+ // No Mollie payment id provided
341
+ if (empty($_REQUEST['id']))
342
+ {
343
+ Mollie_WC_Plugin::setHttpResponseCode(400);
344
+ Mollie_WC_Plugin::debug(__METHOD__ . ': No payment ID provided.', true);
345
+ return;
346
+ }
347
+
348
+ $payment_id = $_REQUEST['id'];
349
+ $test_mode = $data_helper->getActiveMolliePaymentMode($order_id) == 'test';
350
+
351
+ // Load the payment from Mollie, do not use cache
352
+ $payment = $data_helper->getPayment($payment_id, $test_mode, $use_cache = false);
353
+
354
+ // Payment not found
355
+ if (!$payment)
356
+ {
357
+ Mollie_WC_Plugin::setHttpResponseCode(404);
358
+ Mollie_WC_Plugin::debug(__METHOD__ . ": payment $payment_id not found.", true);
359
+ return;
360
+ }
361
+
362
+ if ($order_id != $payment->metadata->order_id)
363
+ {
364
+ Mollie_WC_Plugin::setHttpResponseCode(400);
365
+ Mollie_WC_Plugin::debug(__METHOD__ . ": Order ID does not match order_id in payment metadata. Payment ID {$payment->id}, order ID $order_id");
366
+ return;
367
+ }
368
+
369
+ // Payment requires different gateway, payment method changed on Mollie platform?
370
+ if ($payment->method != $this->getMollieMethodId())
371
+ {
372
+ Mollie_WC_Plugin::setHttpResponseCode(400);
373
+ Mollie_WC_Plugin::debug($this->id . ": Invalid gateway. This gateways can process Mollie " . $this->getMollieMethodId() . " payments. This payment has payment method " . $payment->method, true);
374
+ return;
375
+ }
376
+
377
+ // Order does not need a payment
378
+ if (!$this->orderNeedsPayment($order))
379
+ {
380
+ // Duplicate webhook call
381
+ Mollie_WC_Plugin::setHttpResponseCode(204);
382
+ Mollie_WC_Plugin::debug($this->id . ": Order $order_id does not need a payment (payment webhook {$payment->id}).", true);
383
+ return;
384
+ }
385
+
386
+ Mollie_WC_Plugin::debug($this->id . ": Mollie payment {$payment->id} (" . $payment->mode . ") webhook call for order {$order->id}.", true);
387
+
388
+ $method_name = 'onWebhook' . ucfirst($payment->status);
389
+
390
+ if (method_exists($this, $method_name))
391
+ {
392
+ $this->{$method_name}($order, $payment);
393
+ }
394
+ else
395
+ {
396
+ $order->add_order_note(sprintf(
397
+ /* translators: Placeholder 1: payment method title, placeholder 2: payment status, placeholder 3: payment ID */
398
+ __('%s payment %s (%s).', 'mollie-payments-for-woocommerce'),
399
+ $this->method_title,
400
+ $payment->status,
401
+ $payment->id . ($payment->mode == 'test' ? (' - ' . __('test mode', 'mollie-payments-for-woocommerce')) : '')
402
+ ));
403
+ }
404
+
405
+ // Status 200
406
+ }
407
+
408
+ /**
409
+ * @param Wc_Order $order
410
+ * @param Mollie_API_Object_Payment $payment
411
+ */
412
+ protected function onWebhookPaid (Wc_Order $order, Mollie_API_Object_Payment $payment)
413
+ {
414
+ Mollie_WC_Plugin::debug(__METHOD__ . ' called.');
415
+
416
+ // Woocommerce 2.2.0 has the option to store the Payment transaction id.
417
+ $woo_version = get_option('woocommerce_version', 'Unknown');
418
+
419
+ if (version_compare($woo_version, '2.2.0', '>='))
420
+ {
421
+ $order->payment_complete($payment->id);
422
+ }
423
+ else
424
+ {
425
+ $order->payment_complete();
426
+ }
427
+
428
+ $order->add_order_note(sprintf(
429
+ /* translators: Placeholder 1: payment method title, placeholder 2: payment ID */
430
+ __('Order completed using %s payment (%s).', 'mollie-payments-for-woocommerce'),
431
+ $this->method_title,
432
+ $payment->id . ($payment->mode == 'test' ? (' - ' . __('test mode', 'mollie-payments-for-woocommerce')) : '')
433
+ ));
434
+ }
435
+
436
+ /**
437
+ * @param Wc_Order $order
438
+ * @param Mollie_API_Object_Payment $payment
439
+ */
440
+ protected function onWebhookCancelled (Wc_Order $order, Mollie_API_Object_Payment $payment)
441
+ {
442
+ Mollie_WC_Plugin::debug(__METHOD__ . ' called.');
443
+
444
+ // Unset active Mollie payment id
445
+ Mollie_WC_Plugin::getDataHelper()
446
+ ->unsetActiveMolliePayment($order->id)
447
+ ->setCancelledMolliePaymentId($order->id, $payment->id);
448
+
449
+ // Reset state
450
+ $order->update_status('pending');
451
+
452
+ // User cancelled payment on Mollie or issuer page, add a cancel note.. do not cancel order.
453
+ $order->add_order_note(sprintf(
454
+ /* translators: Placeholder 1: payment method title, placeholder 2: payment ID */
455
+ __('%s payment cancelled (%s).', 'mollie-payments-for-woocommerce'),
456
+ $this->method_title,
457
+ $payment->id . ($payment->mode == 'test' ? (' - ' . __('test mode', 'mollie-payments-for-woocommerce')) : '')
458
+ ));
459
+ }
460
+
461
+ /**
462
+ * @param Wc_Order $order
463
+ * @param Mollie_API_Object_Payment $payment
464
+ */
465
+ protected function onWebhookExpired (Wc_Order $order, Mollie_API_Object_Payment $payment)
466
+ {
467
+ Mollie_WC_Plugin::debug(__METHOD__ . ' called.');
468
+
469
+ // Reset state
470
+ $order->update_status('pending');
471
+
472
+ $order->add_order_note(sprintf(
473
+ /* translators: Placeholder 1: payment method title, placeholder 2: payment ID */
474
+ __('%s payment expired (%s).', 'mollie-payments-for-woocommerce'),
475
+ $this->method_title,
476
+ $payment->id . ($payment->mode == 'test' ? (' - ' . __('test mode', 'mollie-payments-for-woocommerce')) : '')
477
+ ));
478
+ }
479
+
480
+ /**
481
+ * @param WC_Order $order
482
+ * @return string
483
+ */
484
+ public function getReturnRedirectUrlForOrder (WC_Order $order)
485
+ {
486
+ $data_helper = Mollie_WC_Plugin::getDataHelper();
487
+
488
+ if ($data_helper->hasCancelledMolliePayment($order->id))
489
+ {
490
+ Mollie_WC_Plugin::addNotice(__('You have cancelled your payment. Please complete your order with a different payment method.', 'mollie-payments-for-woocommerce'));
491
+
492
+ return WC()->cart->get_checkout_url();
493
+ }
494
+
495
+ return $this->get_return_url($order);
496
+ }
497
+
498
+ /**
499
+ * Process a refund if supported
500
+ * @param int $order_id
501
+ * @param float $amount
502
+ * @param string $reason
503
+ * @return bool|wp_error True or false based on success, or a WP_Error object
504
+ * @since WooCommerce 2.2
505
+ */
506
+ public function process_refund($order_id, $amount = null, $reason = '')
507
+ {
508
+ $order = Mollie_WC_Plugin::getDataHelper()->getWcOrder($order_id);
509
+
510
+ if (!$order)
511
+ {
512
+ Mollie_WC_Plugin::debug('process_refund - could not find order ' . $order_id);
513
+
514
+ return false;
515
+ }
516
+
517
+ try
518
+ {
519
+ $payment = Mollie_WC_Plugin::getDataHelper()->getActiveMolliePayment($order_id);
520
+
521
+ if (!$payment)
522
+ {
523
+ Mollie_WC_Plugin::debug('process_refund - could not find active Mollie payment for order ' . $order_id);
524
+
525
+ return false;
526
+ }
527
+ elseif (!$payment->isPaid())
528
+ {
529
+ Mollie_WC_Plugin::debug('process_refund - could not refund payment ' . $payment->id . ' (not paid). Order ' . $order_id);
530
+
531
+ return false;
532
+ }
533
+
534
+ Mollie_WC_Plugin::debug('process_refund - create refund - payment: ' . $payment->id . ', order: ' . $order_id . ', amount: ' . $amount . (!empty($reason) ? ', reason: ' . $reason : ''));
535
+
536
+ do_action(Mollie_WC_Plugin::PLUGIN_ID . '_create_refund', $payment, $order);
537
+
538
+ // Is test mode enabled?
539
+ $test_mode = Mollie_WC_Plugin::getSettingsHelper()->isTestModeEnabled();
540
+
541
+ // Send refund to Mollie
542
+ $refund = Mollie_WC_Plugin::getApiHelper()->getApiClient($test_mode)->payments->refund($payment, $amount);
543
+
544
+ Mollie_WC_Plugin::debug('process_refund - refund created - refund: ' . $refund->id . ', payment: ' . $payment->id . ', order: ' . $order_id . ', amount: ' . $amount . (!empty($reason) ? ', reason: ' . $reason : ''));
545
+
546
+ do_action(Mollie_WC_Plugin::PLUGIN_ID . '_refund_created', $refund, $order);
547
+
548
+ $order->add_order_note(sprintf(
549
+ /* translators: Placeholder 1: currency, placeholder 2: refunded amount, placeholder 3: optional refund reason, placeholder 4: payment ID, placeholder 5: refund ID */
550
+ __('Refunded %s%s (reason: %s) - Payment ID: %s, Refund: %s', 'mollie-payments-for-woocommerce'),
551
+ get_woocommerce_currency_symbol(),
552
+ $amount,
553
+ $reason,
554
+ $refund->payment->id,
555
+ $refund->id
556
+ ));
557
+
558
+ return true;
559
+ }
560
+ catch (Exception $e)
561
+ {
562
+ return new WP_Error(1, $e->getMessage());
563
+ }
564
+ }
565
+
566
+ /**
567
+ * Output for the order received page.
568
+ */
569
+ public function thankyou_page ($order_id)
570
+ {
571
+ $order = Mollie_WC_Plugin::getDataHelper()->getWcOrder($order_id);
572
+
573
+ // Order not found
574
+ if (!$order)
575
+ {
576
+ return;
577
+ }
578
+
579
+ // Same as email instructions, just run that
580
+ $this->displayInstructions($order, $admin_instructions = false, $plain_text = false);
581
+ }
582
+
583
+ /**
584
+ * Add content to the WC emails.
585
+ *
586
+ * @param WC_Order $order
587
+ * @param bool $admin_instructions (default: false)
588
+ * @param bool $plain_text (default: false)
589
+ * @return void
590
+ */
591
+ public function displayInstructions(WC_Order $order, $admin_instructions = false, $plain_text = false)
592
+ {
593
+ // Invalid gateway
594
+ if ($this->id !== $order->payment_method)
595
+ {
596
+ return;
597
+ }
598
+
599
+ $payment = Mollie_WC_Plugin::getDataHelper()->getActiveMolliePayment($order->id);
600
+
601
+ // Mollie payment not found or invalid gateway
602
+ if (!$payment || $payment->method != $this->getMollieMethodId())
603
+ {
604
+ return;
605
+ }
606
+
607
+ $instructions = $this->getInstructions($order, $payment, $admin_instructions, $plain_text);
608
+
609
+ if (!empty($instructions))
610
+ {
611
+ $instructions = wptexturize($instructions);
612
+
613
+ if ($plain_text)
614
+ {
615
+ echo $instructions . PHP_EOL;
616
+ }
617
+ else
618
+ {
619
+ echo '<h2>' . __('Payment', 'mollie-payments-for-woocommerce') . '</h2>';
620
+ echo wpautop($instructions) . PHP_EOL;
621
+ }
622
+ }
623
+ }
624
+
625
+ /**
626
+ * @param WC_Order $order
627
+ * @param Mollie_API_Object_Payment $payment
628
+ * @param bool $admin_instructions
629
+ * @param bool $plain_text
630
+ * @return string|null
631
+ */
632
+ protected function getInstructions (WC_Order $order, Mollie_API_Object_Payment $payment, $admin_instructions, $plain_text)
633
+ {
634
+ // No definite payment status
635
+ if ($payment->isOpen())
636
+ {
637
+ if ($admin_instructions)
638
+ {
639
+ // Message to admin
640
+ return __('We have not received a definite payment status.', 'mollie-payments-for-woocommerce');
641
+ }
642
+ else
643
+ {
644
+ // Message to customer
645
+ return __('We have not received a definite payment status. You will receive an email as soon as we receive a confirmation of the bank/merchant.', 'mollie-payments-for-woocommerce');
646
+ }
647
+ }
648
+
649
+ return null;
650
+ }
651
+
652
+ /**
653
+ * @param WC_Order $order
654
+ * @return bool
655
+ */
656
+ protected function orderNeedsPayment (WC_Order $order)
657
+ {
658
+ return $order->needs_payment();
659
+ }
660
+
661
+ /**
662
+ * @return Mollie_API_Object_Method|null
663
+ */
664
+ public function getMollieMethod ()
665
+ {
666
+ try
667
+ {
668
+ $test_mode = Mollie_WC_Plugin::getSettingsHelper()->isTestModeEnabled();
669
+
670
+ return Mollie_WC_Plugin::getDataHelper()->getPaymentMethod(
671
+ $test_mode,
672
+ $this->getMollieMethodId()
673
+ );
674
+ }
675
+ catch (Mollie_WC_Exception_InvalidApiKey $e)
676
+ {
677
+ }
678
+
679
+ return null;
680
+ }
681
+
682
+ /**
683
+ * @return string
684
+ */
685
+ protected function getInitialStatus ()
686
+ {
687
+ return 'pending';
688
+ }
689
+
690
+ /**
691
+ * @param WC_Order $order
692
+ * @return string
693
+ */
694
+ protected function getReturnUrl (WC_Order $order)
695
+ {
696
+ $return_url = WC()->api_request_url('mollie_return');
697
+ $return_url = add_query_arg(array(
698
+ 'order_id' => $order->id,
699
+ 'key' => $order->order_key,
700
+ ), $return_url);
701
+
702
+ return $return_url;
703
+ }
704
+
705
+ /**
706
+ * @param WC_Order $order
707
+ * @return string
708
+ */
709
+ protected function getWebhookUrl (WC_Order $order)
710
+ {
711
+ $webhook_url = WC()->api_request_url(strtolower(get_class($this)));
712
+ $webhook_url = add_query_arg(array(
713
+ 'order_id' => $order->id,
714
+ 'key' => $order->order_key,
715
+ ), $webhook_url);
716
+
717
+ return apply_filters(Mollie_WC_Plugin::PLUGIN_ID . '_webhook_url', $webhook_url, $order);
718
+ }
719
+
720
+ /**
721
+ * @return string|NULL
722
+ */
723
+ protected function getSelectedIssuer ()
724
+ {
725
+ $issuer_id = Mollie_WC_Plugin::PLUGIN_ID . '_issuer_' . $this->id;
726
+
727
+ return !empty($_POST[$issuer_id]) ? $_POST[$issuer_id] : NULL;
728
+ }
729
+
730
+ /**
731
+ * @return array
732
+ */
733
+ protected function getSupportedCurrencies ()
734
+ {
735
+ $default = array('EUR');
736
+
737
+ return apply_filters('woocommerce_' . $this->id . '_supported_currencies', $default);
738
+ }
739
+
740
+ /**
741
+ * @return bool
742
+ */
743
+ protected function isCurrencySupported ()
744
+ {
745
+ return in_array(get_woocommerce_currency(), $this->getSupportedCurrencies());
746
+ }
747
+
748
+ /**
749
+ * @return bool
750
+ */
751
+ protected function isValidApiKeyProvided ()
752
+ {
753
+ $settings = Mollie_WC_Plugin::getSettingsHelper();
754
+ $test_mode = $settings->isTestModeEnabled();
755
+ $api_key = $settings->getApiKey($test_mode);
756
+
757
+ return !empty($api_key) && preg_match('/^(live|test)_\w+$/', $api_key);
758
+ }
759
+
760
+ /**
761
+ * @return mixed
762
+ */
763
+ abstract public function getMollieMethodId ();
764
+
765
+ /**
766
+ * @return string
767
+ */
768
+ abstract public function getDefaultTitle ();
769
+
770
+ /**
771
+ * @return string
772
+ */
773
+ abstract protected function getDefaultDescription ();
774
+ }
includes/mollie/wc/gateway/banktransfer.php ADDED
@@ -0,0 +1,199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Gateway_BankTransfer extends Mollie_WC_Gateway_Abstract
3
+ {
4
+ const EXPIRY_DEFAULT_DAYS = 12;
5
+ const EXPIRY_MIN_DAYS = 5;
6
+ const EXPIRY_MAX_DAYS = 60;
7
+
8
+ /**
9
+ *
10
+ */
11
+ public function __construct ()
12
+ {
13
+ $this->supports = array(
14
+ 'products',
15
+ 'refunds',
16
+ );
17
+
18
+ parent::__construct();
19
+
20
+ add_filter('woocommerce_' . $this->id . '_args', array($this, 'addPaymentArguments'), 10, 2);
21
+ }
22
+
23
+ /**
24
+ * Initialise Gateway Settings Form Fields
25
+ */
26
+ public function init_form_fields()
27
+ {
28
+ parent::init_form_fields();
29
+
30
+ $this->form_fields = array_merge($this->form_fields, array(
31
+ 'expiry_days' => array(
32
+ 'title' => __('Expiry date', 'mollie-payments-for-woocommerce'),
33
+ 'type' => 'number',
34
+ 'description' => sprintf(__('Number of days after the payment will expire. Default <code>%d</code> days', 'mollie-payments-for-woocommerce'), self::EXPIRY_DEFAULT_DAYS),
35
+ 'default' => self::EXPIRY_DEFAULT_DAYS,
36
+ 'custom_attributes' => array(
37
+ 'min' => self::EXPIRY_MIN_DAYS,
38
+ 'max' => self::EXPIRY_MAX_DAYS,
39
+ 'step' => 1,
40
+ ),
41
+ ),
42
+ 'mail_payment_instructions' => array(
43
+ 'title' => __('Mail payment instructions', 'mollie-payments-for-woocommerce'),
44
+ /* translators: Placeholder 1: enabled or disabled */
45
+ 'label' => sprintf(__('Should Mollie automatically mail the payment instructions to the customer? Default <code>%s</code>', 'mollie-payments-for-woocommerce'), strtolower(__('Disabled', 'mollie-payments-for-woocommerce'))),
46
+ 'type' => 'checkbox',
47
+ 'default' => 'no',
48
+ 'description' => __('If you disable this option the customer still has an option to send the payment instructions to an email address on the Mollie payment screen.', 'mollie-payments-for-woocommerce'),
49
+ 'desc_tip' => true,
50
+ ),
51
+ ));
52
+ }
53
+
54
+ /**
55
+ * @param array $args
56
+ * @param WC_Order $order
57
+ * @return array
58
+ */
59
+ public function addPaymentArguments (array $args, WC_Order $order)
60
+ {
61
+ // Expiry date
62
+ $expiry_days = (int) $this->get_option('expiry_days', self::EXPIRY_DEFAULT_DAYS);
63
+
64
+ if ($expiry_days >= self::EXPIRY_MIN_DAYS && $expiry_days <= self::EXPIRY_MAX_DAYS)
65
+ {
66
+ $expiry_date = date("Y-m-d", strtotime("+$expiry_days days"));
67
+
68
+ $args['dueDate'] = $expiry_date;
69
+ }
70
+
71
+ // Mail payment instructions
72
+ if ($this->get_option('mail_payment_instructions') === 'yes' && !empty($order->billing_email))
73
+ {
74
+ $args['billingEmail'] = trim($order->billing_email);
75
+ }
76
+
77
+ return $args;
78
+ }
79
+
80
+ /**
81
+ * @return string
82
+ */
83
+ public function getMollieMethodId ()
84
+ {
85
+ return Mollie_API_Object_Method::BANKTRANSFER;
86
+ }
87
+
88
+ /**
89
+ * @return string
90
+ */
91
+ public function getDefaultTitle ()
92
+ {
93
+ return __('Bank Transfer', 'mollie-payments-for-woocommerce');
94
+ }
95
+
96
+ /**
97
+ * @return string
98
+ */
99
+ protected function getDefaultDescription ()
100
+ {
101
+ return '';
102
+ }
103
+
104
+ /**
105
+ * @return string
106
+ */
107
+ protected function getInitialStatus ()
108
+ {
109
+ return 'on-hold';
110
+ }
111
+
112
+ /**
113
+ * @param WC_Order $order
114
+ * @return bool
115
+ */
116
+ protected function orderNeedsPayment (WC_Order $order)
117
+ {
118
+ // needs_payment() searches using valid_statusses, but does not include on-hold status, so we add it here.
119
+ return parent::orderNeedsPayment($order) || Mollie_WC_Plugin::getDataHelper()->hasOrderStatus($order, 'on-hold');
120
+ }
121
+
122
+ /**
123
+ * @param WC_Order $order
124
+ * @param Mollie_API_Object_Payment $payment
125
+ * @param bool $admin_instructions
126
+ * @param bool $plain_text
127
+ * @return string|null
128
+ */
129
+ protected function getInstructions (WC_Order $order, Mollie_API_Object_Payment $payment, $admin_instructions, $plain_text)
130
+ {
131
+ $instructions = '';
132
+
133
+ if (!$payment->details)
134
+ {
135
+ return null;
136
+ }
137
+
138
+ $data_helper = Mollie_WC_Plugin::getDataHelper();
139
+
140
+ if ($payment->isPaid())
141
+ {
142
+ $instructions .= sprintf(
143
+ /* translators: Placeholder 1: consumer name, placeholder 2: consumer IBAN, placeholder 3: consumer BIC */
144
+ __('Payment completed by <strong>%s</strong> (IBAN: %s, BIC: %s)', 'mollie-payments-for-woocommerce'),
145
+ $payment->details->consumerName,
146
+ implode(' ', str_split($payment->details->consumerAccount, 4)),
147
+ $payment->details->consumerBic
148
+ );
149
+ }
150
+ elseif ($data_helper->hasOrderStatus($order, 'on-hold'))
151
+ {
152
+ if (!$admin_instructions)
153
+ {
154
+ $instructions .= __('Please complete your payment by transferring the total amount to the following bank account:', 'mollie-payments-for-woocommerce') . "\n\n\n";
155
+ }
156
+
157
+ /* translators: Placeholder 1: 'Stichting Mollie Payments' */
158
+ $instructions .= sprintf(__('Beneficiary: %s', 'mollie-payments-for-woocommerce'), $payment->details->bankName) . "\n";
159
+ $instructions .= sprintf(__('IBAN: <strong>%s</strong>', 'mollie-payments-for-woocommerce'), implode(' ', str_split($payment->details->bankAccount, 4))) . "\n";
160
+ $instructions .= sprintf(__('BIC: %s', 'mollie-payments-for-woocommerce'), $payment->details->bankBic) . "\n";
161
+
162
+ if ($admin_instructions)
163
+ {
164
+ /* translators: Placeholder 1: Payment reference e.g. RF49-0000-4716-6216 (SEPA) or +++513/7587/59959+++ (Belgium) */
165
+ $instructions .= sprintf(__('Payment reference: %s', 'mollie-payments-for-woocommerce'), $payment->details->transferReference) . "\n";
166
+ }
167
+ else
168
+ {
169
+ /* translators: Placeholder 1: Payment reference e.g. RF49-0000-4716-6216 (SEPA) or +++513/7587/59959+++ (Belgium) */
170
+ $instructions .= sprintf(__('Please provide the payment reference <strong>%s</strong>', 'mollie-payments-for-woocommerce'), $payment->details->transferReference) . "\n";
171
+ }
172
+
173
+ if (!empty($payment->expiryPeriod)
174
+ && class_exists('DateTime')
175
+ && class_exists('DateInterval'))
176
+ {
177
+ $expiry_date = DateTime::createFromFormat('U', time());
178
+ $expiry_date->add(new DateInterval($payment->expiryPeriod));
179
+
180
+ if ($admin_instructions)
181
+ {
182
+ $instructions .= "\n" . sprintf(
183
+ __('The payment will expire on <strong>%s</strong>.', 'mollie-payments-for-woocommerce'),
184
+ $expiry_date->format(wc_date_format())
185
+ ) . "\n";
186
+ }
187
+ else
188
+ {
189
+ $instructions .= "\n" . sprintf(
190
+ __('The payment will expire on <strong>%s</strong>. Please make sure you transfer the total amount before this date.', 'mollie-payments-for-woocommerce'),
191
+ $expiry_date->format(wc_date_format())
192
+ ) . "\n";
193
+ }
194
+ }
195
+ }
196
+
197
+ return $instructions;
198
+ }
199
+ }
includes/mollie/wc/gateway/belfius.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Gateway_Belfius extends Mollie_WC_Gateway_Abstract
3
+ {
4
+ /**
5
+ *
6
+ */
7
+ public function __construct ()
8
+ {
9
+ $this->supports = array(
10
+ 'products',
11
+ 'refunds',
12
+ );
13
+
14
+ parent::__construct();
15
+ }
16
+
17
+ /**
18
+ * @return string
19
+ */
20
+ public function getMollieMethodId ()
21
+ {
22
+ return Mollie_API_Object_Method::BELFIUS;
23
+ }
24
+
25
+ /**
26
+ * @return string
27
+ */
28
+ public function getDefaultTitle ()
29
+ {
30
+ return __('Belfius Direct Net', 'mollie-payments-for-woocommerce');
31
+ }
32
+
33
+ /**
34
+ * @return string
35
+ */
36
+ protected function getDefaultDescription ()
37
+ {
38
+ return '';
39
+ }
40
+ }
includes/mollie/wc/gateway/bitcoin.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Gateway_Bitcoin extends Mollie_WC_Gateway_Abstract
3
+ {
4
+ /**
5
+ * @return string
6
+ */
7
+ public function getMollieMethodId ()
8
+ {
9
+ return Mollie_API_Object_Method::BITCOIN;
10
+ }
11
+
12
+ /**
13
+ * @return string
14
+ */
15
+ public function getDefaultTitle ()
16
+ {
17
+ return __('Bitcoin', 'mollie-payments-for-woocommerce');
18
+ }
19
+
20
+ /**
21
+ * @return string
22
+ */
23
+ protected function getDefaultDescription ()
24
+ {
25
+ return '';
26
+ }
27
+ }
includes/mollie/wc/gateway/creditcard.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Gateway_Creditcard extends Mollie_WC_Gateway_Abstract
3
+ {
4
+ /**
5
+ *
6
+ */
7
+ public function __construct ()
8
+ {
9
+ $this->supports = array(
10
+ 'products',
11
+ 'refunds',
12
+ );
13
+
14
+ parent::__construct();
15
+ }
16
+
17
+ /**
18
+ * @return string
19
+ */
20
+ public function getMollieMethodId ()
21
+ {
22
+ return Mollie_API_Object_Method::CREDITCARD;
23
+ }
24
+
25
+ /**
26
+ * @return string
27
+ */
28
+ public function getDefaultTitle ()
29
+ {
30
+ return __('Credit card', 'mollie-payments-for-woocommerce');
31
+ }
32
+
33
+ /**
34
+ * @return string
35
+ */
36
+ protected function getDefaultDescription ()
37
+ {
38
+ return '';
39
+ }
40
+
41
+ /**
42
+ * @param WC_Order $order
43
+ * @param Mollie_API_Object_Payment $payment
44
+ * @param bool $admin_instructions
45
+ * @param bool $plain_text
46
+ * @return string|null
47
+ */
48
+ protected function getInstructions (WC_Order $order, Mollie_API_Object_Payment $payment, $admin_instructions, $plain_text)
49
+ {
50
+ $instructions = '';
51
+
52
+ if ($payment->isPaid() && $payment->details)
53
+ {
54
+ $instructions .= sprintf(
55
+ /* translators: Placeholder 1: card holder */
56
+ __('Payment completed by <strong>%s</strong>', 'mollie-payments-for-woocommerce'),
57
+ $payment->details->cardHolder
58
+ );
59
+ }
60
+
61
+ return $instructions;
62
+ }
63
+ }
includes/mollie/wc/gateway/ideal.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Gateway_Ideal extends Mollie_WC_Gateway_Abstract
3
+ {
4
+ /**
5
+ *
6
+ */
7
+ public function __construct ()
8
+ {
9
+ $this->supports = array(
10
+ 'products',
11
+ 'refunds',
12
+ );
13
+
14
+ /* Has issuers dropdown */
15
+ $this->has_fields = TRUE;
16
+
17
+ parent::__construct();
18
+ }
19
+
20
+ /**
21
+ * @return string
22
+ */
23
+ public function getMollieMethodId ()
24
+ {
25
+ return Mollie_API_Object_Method::IDEAL;
26
+ }
27
+
28
+ /**
29
+ * @return string
30
+ */
31
+ public function getDefaultTitle ()
32
+ {
33
+ return __('iDEAL', 'mollie-payments-for-woocommerce');
34
+ }
35
+
36
+ /**
37
+ * @return string
38
+ */
39
+ protected function getDefaultDescription ()
40
+ {
41
+ /* translators: Default iDEAL description, displayed above issuer drop down */
42
+ return __('Select your bank', 'mollie-payments-for-woocommerce');
43
+ }
44
+
45
+ /**
46
+ * Display fields below payment method in checkout
47
+ */
48
+ public function payment_fields()
49
+ {
50
+ // Display description above issuers
51
+ parent::payment_fields();
52
+
53
+ $test_mode = Mollie_WC_Plugin::getSettingsHelper()->isTestModeEnabled();
54
+
55
+ $ideal_issuers = Mollie_WC_Plugin::getDataHelper()->getIssuers(
56
+ $test_mode,
57
+ $this->getMollieMethodId()
58
+ );
59
+
60
+ $selected_issuer = $this->getSelectedIssuer();
61
+
62
+ $html = '<select name="' . Mollie_WC_Plugin::PLUGIN_ID . '_issuer_' . $this->id . '">';
63
+ $html .= '<option value=""></option>';
64
+ foreach ($ideal_issuers as $issuer)
65
+ {
66
+ $html .= '<option value="' . esc_attr($issuer->id) . '"' . ($selected_issuer == $issuer->id ? ' selected=""' : '') . '>' . esc_html($issuer->name) . '</option>';
67
+ }
68
+ $html .= '</select>';
69
+
70
+ echo wpautop(wptexturize($html));
71
+ }
72
+
73
+ /**
74
+ * @param WC_Order $order
75
+ * @param Mollie_API_Object_Payment $payment
76
+ * @param bool $admin_instructions
77
+ * @param bool $plain_text
78
+ * @return string|null
79
+ */
80
+ protected function getInstructions (WC_Order $order, Mollie_API_Object_Payment $payment, $admin_instructions, $plain_text)
81
+ {
82
+ if ($payment->isPaid() && $payment->details)
83
+ {
84
+ return sprintf(
85
+ /* translators: Placeholder 1: consumer name, placeholder 2: consumer IBAN, placeholder 3: consumer BIC */
86
+ __('Payment completed by <strong>%s</strong> (IBAN: %s, BIC: %s)', 'mollie-payments-for-woocommerce'),
87
+ $payment->details->consumerName,
88
+ implode(' ', str_split($payment->details->consumerAccount, 4)),
89
+ $payment->details->consumerBic
90
+ );
91
+ }
92
+
93
+ return parent::getInstructions($order, $payment, $admin_instructions, $plain_text);
94
+ }
95
+ }
includes/mollie/wc/gateway/mistercash.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Gateway_MisterCash extends Mollie_WC_Gateway_Abstract
3
+ {
4
+ /**
5
+ *
6
+ */
7
+ public function __construct ()
8
+ {
9
+ $this->supports = array(
10
+ 'products',
11
+ 'refunds',
12
+ );
13
+
14
+ parent::__construct();
15
+ }
16
+
17
+ /**
18
+ * @return string
19
+ */
20
+ public function getMollieMethodId ()
21
+ {
22
+ return Mollie_API_Object_Method::MISTERCASH;
23
+ }
24
+
25
+ /**
26
+ * @return string
27
+ */
28
+ public function getDefaultTitle ()
29
+ {
30
+ return __('Bancontact / Mister Cash', 'mollie-payments-for-woocommerce');
31
+ }
32
+
33
+ /**
34
+ * @return string
35
+ */
36
+ protected function getDefaultDescription ()
37
+ {
38
+ return '';
39
+ }
40
+ }
includes/mollie/wc/gateway/paypal.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Gateway_PayPal extends Mollie_WC_Gateway_Abstract
3
+ {
4
+ /**
5
+ *
6
+ */
7
+ public function __construct ()
8
+ {
9
+ $this->supports = array(
10
+ 'products',
11
+ 'refunds',
12
+ );
13
+
14
+ parent::__construct();
15
+ }
16
+
17
+ /**
18
+ * @return string
19
+ */
20
+ public function getMollieMethodId ()
21
+ {
22
+ return Mollie_API_Object_Method::PAYPAL;
23
+ }
24
+
25
+ /**
26
+ * @return string
27
+ */
28
+ public function getDefaultTitle ()
29
+ {
30
+ return __('PayPal', 'mollie-payments-for-woocommerce');
31
+ }
32
+
33
+ /**
34
+ * @return string
35
+ */
36
+ protected function getDefaultDescription ()
37
+ {
38
+ return '';
39
+ }
40
+
41
+ /**
42
+ * @param WC_Order $order
43
+ * @param Mollie_API_Object_Payment $payment
44
+ * @param bool $admin_instructions
45
+ * @param bool $plain_text
46
+ * @return string|null
47
+ */
48
+ protected function getInstructions (WC_Order $order, Mollie_API_Object_Payment $payment, $admin_instructions, $plain_text)
49
+ {
50
+ $instructions = '';
51
+
52
+ if ($payment->isPaid() && $payment->details)
53
+ {
54
+ $instructions .= sprintf(
55
+ /* translators: Placeholder 1: PayPal consumer name, placeholder 2: PayPal email, placeholder 3: PayPal transaction ID */
56
+ __("Payment completed by <strong>%s</strong> - %s (PayPal transaction ID: %s)", 'mollie-payments-for-woocommerce'),
57
+ $payment->details->consumerName,
58
+ $payment->details->consumerAccount,
59
+ $payment->details->paypalReference
60
+ );
61
+ }
62
+
63
+ return $instructions;
64
+ }
65
+ }
includes/mollie/wc/gateway/paysafecard.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Gateway_Paysafecard extends Mollie_WC_Gateway_Abstract
3
+ {
4
+ /**
5
+ * @return string
6
+ */
7
+ public function getMollieMethodId ()
8
+ {
9
+ return Mollie_API_Object_Method::PAYSAFECARD;
10
+ }
11
+
12
+ /**
13
+ * @return string
14
+ */
15
+ public function getDefaultTitle ()
16
+ {
17
+ return __('paysafecard', 'mollie-payments-for-woocommerce');
18
+ }
19
+
20
+ /**
21
+ * @return string
22
+ */
23
+ protected function getDefaultDescription ()
24
+ {
25
+ return '';
26
+ }
27
+ }
includes/mollie/wc/gateway/sofort.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Gateway_Sofort extends Mollie_WC_Gateway_Abstract
3
+ {
4
+ /**
5
+ *
6
+ */
7
+ public function __construct ()
8
+ {
9
+ $this->supports = array(
10
+ 'products',
11
+ 'refunds',
12
+ );
13
+
14
+ parent::__construct();
15
+ }
16
+
17
+ /**
18
+ * @return string
19
+ */
20
+ public function getMollieMethodId ()
21
+ {
22
+ return Mollie_API_Object_Method::SOFORT;
23
+ }
24
+
25
+ /**
26
+ * @return string
27
+ */
28
+ public function getDefaultTitle ()
29
+ {
30
+ return __('SOFORT Banking', 'mollie-payments-for-woocommerce');
31
+ }
32
+
33
+ /**
34
+ * @return string
35
+ */
36
+ protected function getDefaultDescription ()
37
+ {
38
+ return '';
39
+ }
40
+
41
+ /**
42
+ * @param WC_Order $order
43
+ * @param Mollie_API_Object_Payment $payment
44
+ * @param bool $admin_instructions
45
+ * @param bool $plain_text
46
+ * @return string|null
47
+ */
48
+ protected function getInstructions (WC_Order $order, Mollie_API_Object_Payment $payment, $admin_instructions, $plain_text)
49
+ {
50
+ $instructions = '';
51
+
52
+ if ($payment->isPaid() && $payment->details)
53
+ {
54
+ $instructions .= sprintf(
55
+ /* translators: Placeholder 1: consumer name, placeholder 2: consumer IBAN, placeholder 3: consumer BIC */
56
+ __('Payment completed by <strong>%s</strong> (IBAN: %s, BIC: %s)', 'mollie-payments-for-woocommerce'),
57
+ $payment->details->consumerName,
58
+ implode(' ', str_split($payment->details->consumerAccount, 4)),
59
+ $payment->details->consumerBic
60
+ );
61
+ }
62
+
63
+ return $instructions;
64
+ }
65
+ }
includes/mollie/wc/helper/api.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Helper_Api
3
+ {
4
+ /**
5
+ * @var Mollie_API_Client
6
+ */
7
+ protected static $api_client;
8
+
9
+ /**
10
+ * @var Mollie_WC_Helper_Settings
11
+ */
12
+ protected $settings_helper;
13
+
14
+ /**
15
+ * @param Mollie_WC_Helper_Settings $settings_helper
16
+ */
17
+ public function __construct (Mollie_WC_Helper_Settings $settings_helper)
18
+ {
19
+ $this->settings_helper = $settings_helper;
20
+ }
21
+
22
+ /**
23
+ * @param bool $test_mode
24
+ * @return Mollie_API_Client
25
+ * @throws Mollie_WC_Exception_InvalidApiKey
26
+ */
27
+ public function getApiClient ($test_mode = false)
28
+ {
29
+ global $wp_version;
30
+
31
+ $api_key = $this->settings_helper->getApiKey($test_mode);
32
+
33
+ if (empty($api_key))
34
+ {
35
+ throw new Mollie_WC_Exception_InvalidApiKey(__('No API key provided.', 'mollie-payments-for-woocommerce'));
36
+ }
37
+ elseif (!preg_match('/^(live|test)_\w+$/', $api_key))
38
+ {
39
+ throw new Mollie_WC_Exception_InvalidApiKey(__('Invalid API key. The API key must start with \'live_\' or \'test_\' and can\'t further contain any special characters.', 'mollie-payments-for-woocommerce'));
40
+ }
41
+
42
+ if (empty(self::$api_client))
43
+ {
44
+ $client = new Mollie_API_Client();
45
+ $client->setApiKey($api_key);
46
+ $client->setApiEndpoint(self::getApiEndpoint());
47
+ $client->addVersionString('WordPress/' . (isset($wp_version) ? $wp_version : 'Unknown'));
48
+ $client->addVersionString('WooCommerce/' . get_option('woocommerce_version', 'Unknown'));
49
+ $client->addVersionString('MollieWoo/' . Mollie_WC_Plugin::PLUGIN_VERSION);
50
+
51
+ self::$api_client = $client;
52
+ }
53
+
54
+ return self::$api_client;
55
+ }
56
+
57
+ /**
58
+ * Get API endpoint. Override using filter.
59
+ * @return string
60
+ */
61
+ public static function getApiEndpoint ()
62
+ {
63
+ return apply_filters(Mollie_WC_Plugin::PLUGIN_ID . '_api_endpoint', Mollie_API_Client::API_ENDPOINT);
64
+ }
65
+
66
+ }
includes/mollie/wc/helper/data.php ADDED
@@ -0,0 +1,458 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Helper_Data
3
+ {
4
+ /**
5
+ * Transient prefix. We can not use plugin slug because this
6
+ * will generate to long keys for the wp_options table.
7
+ *
8
+ * @var string
9
+ */
10
+ const TRANSIENT_PREFIX = 'mollie-woocommerce-';
11
+
12
+ /**
13
+ * @var Mollie_API_Object_Method[]|Mollie_API_Object_List|array
14
+ */
15
+ protected static $api_methods;
16
+
17
+ /**
18
+ * @var Mollie_API_Object_Issuer[]|Mollie_API_Object_List|array
19
+ */
20
+ protected static $api_issuers;
21
+
22
+ /**
23
+ * @var Mollie_WC_Helper_Api
24
+ */
25
+ protected $api_helper;
26
+
27
+ /**
28
+ * @param Mollie_WC_Helper_Api $api_helper
29
+ */
30
+ public function __construct (Mollie_WC_Helper_Api $api_helper)
31
+ {
32
+ $this->api_helper = $api_helper;
33
+ }
34
+
35
+ /**
36
+ * @param string $transient
37
+ * @return string
38
+ */
39
+ protected function getTransientId ($transient)
40
+ {
41
+ /*
42
+ * WordPress will save two options to wp_options table:
43
+ * 1. _transient_<transient_id>
44
+ * 2. _transient_timeout_<transient_id>
45
+ */
46
+ $transient_id = self::TRANSIENT_PREFIX . $transient;
47
+ $option_name = '_transient_timeout_' . $transient_id;
48
+ $option_name_length = strlen($option_name);
49
+
50
+ if ($option_name_length > 64)
51
+ {
52
+ trigger_error("Transient id $transient_id is to long. Option name $option_name ($option_name_length) will be to long for database column wp_options.option_name which is varchar(64).", E_USER_WARNING);
53
+ }
54
+
55
+ return $transient_id;
56
+ }
57
+
58
+ /**
59
+ * Get WooCommerce order
60
+ *
61
+ * @param int $order_id Order ID
62
+ * @return WC_Order|bool
63
+ */
64
+ public function getWcOrder ($order_id)
65
+ {
66
+ if (function_exists('wc_get_order'))
67
+ {
68
+ /**
69
+ * @since WooCommerce 2.2
70
+ */
71
+ return wc_get_order($order_id);
72
+ }
73
+
74
+ $order = new WC_Order();
75
+
76
+ if ($order->get_order($order_id))
77
+ {
78
+ return $order;
79
+ }
80
+
81
+ return false;
82
+ }
83
+
84
+ /**
85
+ * @param WC_Order $order
86
+ * @return string
87
+ */
88
+ public function getOrderStatus (WC_Order $order)
89
+ {
90
+ if (method_exists($order, 'get_status'))
91
+ {
92
+ /**
93
+ * @since WooCommerce 2.2
94
+ */
95
+ return $order->get_status();
96
+ }
97
+
98
+ return $order->status;
99
+ }
100
+
101
+ /**
102
+ * Check if a order has a status
103
+ *
104
+ * @param string|string[] $status
105
+ * @return bool
106
+ */
107
+ public function hasOrderStatus (WC_Order $order, $status)
108
+ {
109
+ if (method_exists($order, 'has_status'))
110
+ {
111
+ /**
112
+ * @since WooCommerce 2.2
113
+ */
114
+ return $order->has_status($status);
115
+ }
116
+
117
+ if (!is_array($status))
118
+ {
119
+ $status = array($status);
120
+ }
121
+
122
+ return in_array($this->getOrderStatus($order), $status);
123
+ }
124
+
125
+ /**
126
+ * Get payment gateway class by order data.
127
+ *
128
+ * @param int|WC_Order $order
129
+ * @return WC_Payment_Gateway|bool
130
+ */
131
+ public function getWcPaymentGatewayByOrder ($order)
132
+ {
133
+ if (function_exists('wc_get_payment_gateway_by_order'))
134
+ {
135
+ /**
136
+ * @since WooCommerce 2.2
137
+ */
138
+ return wc_get_payment_gateway_by_order($order);
139
+ }
140
+
141
+ if (WC()->payment_gateways())
142
+ {
143
+ $payment_gateways = WC()
144
+ ->payment_gateways
145
+ ->payment_gateways();
146
+ }
147
+ else
148
+ {
149
+ $payment_gateways = array();
150
+ }
151
+
152
+ if (!($order instanceof WC_Order))
153
+ {
154
+ $order = $this->getWcOrder($order);
155
+
156
+ if (!$order)
157
+ {
158
+ return false;
159
+ }
160
+ }
161
+
162
+ return isset($payment_gateways[$order->payment_method]) ? $payment_gateways[$order->payment_method] : false;
163
+ }
164
+
165
+ /**
166
+ * Called when page 'WooCommerce -> Checkout -> Checkout Options' is saved
167
+ *
168
+ * @see \Mollie_WC_Plugin::init
169
+ */
170
+ public function deleteTransients ()
171
+ {
172
+ Mollie_WC_Plugin::debug(__METHOD__ . ': Mollie settings saved, delete transients');
173
+
174
+ $transient_names = array(
175
+ 'api_methods_test',
176
+ 'api_methods_live',
177
+ 'api_issuers_test',
178
+ 'api_issuers_live',
179
+ );
180
+
181
+ foreach ($transient_names as $transient_name)
182
+ {
183
+ delete_transient($this->getTransientId($transient_name));
184
+ }
185
+ }
186
+
187
+ /**
188
+ * Get Mollie payment from cache or load from Mollie
189
+ * Skip cache by setting $use_cache to false
190
+ *
191
+ * @param string $payment_id
192
+ * @param bool $test_mode (default: false)
193
+ * @param bool $use_cache (default: true)
194
+ * @return Mollie_API_Object_Payment|null
195
+ */
196
+ public function getPayment ($payment_id, $test_mode = false, $use_cache = true)
197
+ {
198
+ try
199
+ {
200
+ $transient_id = $this->getTransientId('payment_' . $payment_id);
201
+
202
+ if ($use_cache)
203
+ {
204
+ $payment = @unserialize(get_transient($transient_id));
205
+
206
+ if ($payment && $payment instanceof Mollie_API_Object_Payment)
207
+ {
208
+ return $payment;
209
+ }
210
+ }
211
+
212
+ $payment = $this->api_helper->getApiClient($test_mode)->payments->get($payment_id);
213
+
214
+ set_transient($transient_id, $payment, MINUTE_IN_SECONDS * 5);
215
+
216
+ return $payment;
217
+ }
218
+ catch (Exception $e)
219
+ {
220
+ Mollie_WC_Plugin::debug(__FUNCTION__ . ": Could not load payment $payment_id (" . ($test_mode ? 'test' : 'live') . "): " . $e->getMessage() . ' (' . get_class($e) . ')');
221
+ }
222
+
223
+ return NULL;
224
+ }
225
+
226
+ /**
227
+ * @param bool $test_mode (default: false)
228
+ * @param bool $use_cache (default: true)
229
+ * @return array|Mollie_API_Object_List|Mollie_API_Object_Method[]
230
+ */
231
+ public function getPaymentMethods ($test_mode = false, $use_cache = true)
232
+ {
233
+ // Already initialized
234
+ if ($use_cache && !empty(self::$api_methods))
235
+ {
236
+ return self::$api_methods;
237
+ }
238
+
239
+ try
240
+ {
241
+ $transient_id = $this->getTransientId('api_methods_' . ($test_mode ? 'test' : 'live'));
242
+
243
+ if ($use_cache)
244
+ {
245
+ $cached = @unserialize(get_transient($transient_id));
246
+
247
+ if ($cached && $cached instanceof Mollie_API_Object_List)
248
+ {
249
+ return (self::$api_methods = $cached);
250
+ }
251
+ }
252
+
253
+ self::$api_methods = $this->api_helper->getApiClient($test_mode)->methods->all();
254
+
255
+ set_transient($transient_id, self::$api_methods, MINUTE_IN_SECONDS * 5);
256
+
257
+ return self::$api_methods;
258
+ }
259
+ catch (Mollie_API_Exception $e)
260
+ {
261
+ Mollie_WC_Plugin::debug(__FUNCTION__ . ": Could not load Mollie methods (" . ($test_mode ? 'test' : 'live') . "): " . $e->getMessage() . ' (' . get_class($e) . ')');
262
+ }
263
+
264
+ return array();
265
+ }
266
+
267
+ /**
268
+ * @param bool $test_mode (default: false)
269
+ * @param string $method
270
+ * @return Mollie_API_Object_Method|null
271
+ */
272
+ public function getPaymentMethod ($test_mode = false, $method)
273
+ {
274
+ $payment_methods = $this->getPaymentMethods($test_mode);
275
+
276
+ foreach ($payment_methods as $payment_method)
277
+ {
278
+ if ($payment_method->id == $method)
279
+ {
280
+ return $payment_method;
281
+ }
282
+ }
283
+
284
+ return null;
285
+ }
286
+
287
+ /**
288
+ * @param bool $test_mode (default: false)
289
+ * @param string|null $method
290
+ * @return array|Mollie_API_Object_Issuer[]|Mollie_API_Object_List
291
+ */
292
+ public function getIssuers ($test_mode = false, $method = NULL)
293
+ {
294
+ try
295
+ {
296
+ $transient_id = $this->getTransientId('api_issuers_' . ($test_mode ? 'test' : 'live'));
297
+
298
+ if (empty(self::$api_issuers))
299
+ {
300
+ $cached = @unserialize(get_transient($transient_id));
301
+
302
+ if ($cached && $cached instanceof Mollie_API_Object_List)
303
+ {
304
+ self::$api_issuers = $cached;
305
+ }
306
+ else
307
+ {
308
+ self::$api_issuers = $this->api_helper->getApiClient($test_mode)->issuers->all();
309
+
310
+ set_transient($transient_id, self::$api_issuers, MINUTE_IN_SECONDS * 5);
311
+ }
312
+ }
313
+
314
+ // Filter issuers by method
315
+ if ($method !== NULL)
316
+ {
317
+ $method_issuers = array();
318
+
319
+ foreach(self::$api_issuers AS $issuer)
320
+ {
321
+ if ($issuer->method === $method)
322
+ {
323
+ $method_issuers[] = $issuer;
324
+ }
325
+ }
326
+
327
+ return $method_issuers;
328
+ }
329
+
330
+ return self::$api_issuers;
331
+ }
332
+ catch (Mollie_API_Exception $e)
333
+ {
334
+ Mollie_WC_Plugin::debug(__FUNCTION__ . ": Could not load Mollie issuers (" . ($test_mode ? 'test' : 'live') . "): " . $e->getMessage() . ' (' . get_class($e) . ')');
335
+ }
336
+
337
+ return array();
338
+ }
339
+
340
+ /**
341
+ * Save active Mollie payment id for order
342
+ *
343
+ * @param int $order_id
344
+ * @param Mollie_API_Object_Payment $payment
345
+ * @return $this
346
+ */
347
+ public function setActiveMolliePayment ($order_id, Mollie_API_Object_Payment $payment)
348
+ {
349
+ add_post_meta($order_id, '_mollie_payment_id', $payment->id, $single = true);
350
+ add_post_meta($order_id, '_mollie_payment_mode', $payment->mode, $single = true);
351
+
352
+ delete_post_meta($order_id, '_mollie_cancelled_payment_id');
353
+
354
+ return $this;
355
+ }
356
+
357
+ /**
358
+ * Delete active Mollie payment id for order
359
+ *
360
+ * @param int $order_id
361
+ * @return $this
362
+ */
363
+ public function unsetActiveMolliePayment ($order_id)
364
+ {
365
+ delete_post_meta($order_id, '_mollie_payment_id');
366
+ delete_post_meta($order_id, '_mollie_payment_mode');
367
+
368
+ return $this;
369
+ }
370
+
371
+ /**
372
+ * Get active Mollie payment id for order
373
+ *
374
+ * @param int $order_id
375
+ * @return string
376
+ */
377
+ public function getActiveMolliePaymentId ($order_id)
378
+ {
379
+ return get_post_meta($order_id, '_mollie_payment_id', $single = true);
380
+ }
381
+
382
+ /**
383
+ * Get active Mollie payment mode for order
384
+ *
385
+ * @param int $order_id
386
+ * @return string test or live
387
+ */
388
+ public function getActiveMolliePaymentMode ($order_id)
389
+ {
390
+ return get_post_meta($order_id, '_mollie_payment_mode', $single = true);
391
+ }
392
+
393
+ /**
394
+ * @param int $order_id
395
+ * @param bool $use_cache
396
+ * @return Mollie_API_Object_Payment|null
397
+ */
398
+ public function getActiveMolliePayment ($order_id, $use_cache = true)
399
+ {
400
+ if ($this->hasActiveMolliePayment($order_id))
401
+ {
402
+ return $this->getPayment(
403
+ $this->getActiveMolliePaymentId($order_id),
404
+ $this->getActiveMolliePaymentMode($order_id) == 'test',
405
+ $use_cache
406
+ );
407
+ }
408
+
409
+ return null;
410
+ }
411
+
412
+ /**
413
+ * Check if the order has an active Mollie payment
414
+ *
415
+ * @param int $order_id
416
+ * @return bool
417
+ */
418
+ public function hasActiveMolliePayment ($order_id)
419
+ {
420
+ $mollie_payment_id = $this->getActiveMolliePaymentId($order_id);
421
+
422
+ return !empty($mollie_payment_id);
423
+ }
424
+
425
+ /**
426
+ * @param int $order_id
427
+ * @param string $payment_id
428
+ * @return $this
429
+ */
430
+ public function setCancelledMolliePaymentId ($order_id, $payment_id)
431
+ {
432
+ add_post_meta($order_id, '_mollie_cancelled_payment_id', $payment_id, $single = true);
433
+
434
+ return $this;
435
+ }
436
+
437
+ /**
438
+ * @param int $order_id
439
+ * @return string|false
440
+ */
441
+ public function getCancelledMolliePaymentId ($order_id)
442
+ {
443
+ return get_post_meta($order_id, '_mollie_cancelled_payment_id', $single = true);
444
+ }
445
+
446
+ /**
447
+ * Check if the order has been cancelled
448
+ *
449
+ * @param int $order_id
450
+ * @return bool
451
+ */
452
+ public function hasCancelledMolliePayment ($order_id)
453
+ {
454
+ $cancelled_payment_id = $this->getCancelledMolliePaymentId($order_id);
455
+
456
+ return !empty($cancelled_payment_id);
457
+ }
458
+ }
includes/mollie/wc/helper/settings.php ADDED
@@ -0,0 +1,421 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Helper_Settings
3
+ {
4
+ /**
5
+ * @return bool
6
+ */
7
+ public function isTestModeEnabled ()
8
+ {
9
+ return trim(get_option($this->getSettingId('test_mode_enabled'))) === 'yes';
10
+ }
11
+
12
+ /**
13
+ * @param bool $test_mode
14
+ * @return null|string
15
+ */
16
+ public function getApiKey ($test_mode = false)
17
+ {
18
+ $setting_id = $test_mode ? 'test_api_key' : 'live_api_key';
19
+
20
+ return trim(get_option($this->getSettingId($setting_id)));
21
+ }
22
+
23
+ /**
24
+ * Description send to Mollie
25
+ *
26
+ * @return string|null
27
+ */
28
+ public function getPaymentDescription ()
29
+ {
30
+ return trim(get_option($this->getSettingId('payment_description')));
31
+ }
32
+
33
+ /**
34
+ * @return string
35
+ */
36
+ protected function getPaymentLocaleSetting ()
37
+ {
38
+ $default_value = 'wp_locale';
39
+
40
+ return trim(get_option($this->getSettingId('payment_locale'), $default_value));
41
+ }
42
+
43
+ /**
44
+ * @return string|null
45
+ */
46
+ public function getPaymentLocale ()
47
+ {
48
+ $setting = $this->getPaymentLocaleSetting();
49
+
50
+ if (!empty($setting))
51
+ {
52
+ if ($setting == 'wp_locale')
53
+ {
54
+ // Send current locale to Mollie
55
+ return get_locale();
56
+ }
57
+ else
58
+ {
59
+ // Send specific locale to Mollie
60
+ return $setting;
61
+ }
62
+ }
63
+
64
+ // Do not send locale to Mollie, use browser language
65
+ return null;
66
+ }
67
+
68
+ /**
69
+ * @return bool
70
+ */
71
+ public function isDebugEnabled ()
72
+ {
73
+ return get_option($this->getSettingId('debug'), 'yes') === 'yes';
74
+ }
75
+
76
+ /**
77
+ * @return string
78
+ */
79
+ public function getGlobalSettingsUrl ()
80
+ {
81
+ return admin_url('admin.php?page=wc-settings&tab=checkout#' . Mollie_WC_Plugin::PLUGIN_ID);
82
+ }
83
+
84
+ /**
85
+ * @return string
86
+ */
87
+ public function getLogsUrl ()
88
+ {
89
+ return admin_url('admin.php?page=wc-status&tab=logs');
90
+ }
91
+
92
+ /**
93
+ * Get plugin status
94
+ *
95
+ * - Check compatibility
96
+ * - Check Mollie API connectivity
97
+ *
98
+ * @return string
99
+ */
100
+ protected function getPluginStatus ()
101
+ {
102
+ $status = Mollie_WC_Plugin::getStatusHelper();
103
+
104
+ if (!$status->isCompatible())
105
+ {
106
+ // Just stop here!
107
+ return ''
108
+ . '<div id="message" class="error fade">'
109
+ . ' <strong>' . __('Error', 'mollie-payments-for-woocommerce') . ':</strong> ' . implode('<br/>', $status->getErrors())
110
+ . '</div>';
111
+ }
112
+
113
+ try
114
+ {
115
+ // Check compatibility
116
+ $status->getMollieApiStatus();
117
+
118
+ $api_status = ''
119
+ . '<p>' . __('Mollie status:', 'mollie-payments-for-woocommerce')
120
+ . ' <span style="color:green; font-weight:bold;">' . __('Connected', 'mollie-payments-for-woocommerce') . '</span>'
121
+ . '</p>';
122
+ $api_status_type = 'updated';
123
+ }
124
+ catch (Mollie_WC_Exception_CouldNotConnectToMollie $e)
125
+ {
126
+ $api_status = ''
127
+ . '<p style="font-weight:bold;"><span style="color:red;">Communicating with Mollie failed:</span> ' . esc_html($e->getMessage()) . '</p>'
128
+ . '<p>Please check the following conditions. You can ask your system administrator to help with this.</p>'
129
+
130
+ . '<ul style="color: #2D60B0;">'
131
+ . ' <li>Please check if you\'ve inserted your API key correctly.</li>'
132
+ . ' <li>Make sure outside connections to <strong>' . esc_html(Mollie_WC_Helper_Api::getApiEndpoint()) . '</strong> are not blocked.</li>'
133
+ . ' <li>Make sure SSL v3 is disabled on your server. Mollie does not support SSL v3.</li>'
134
+ . ' <li>Make sure your server is up-to-date and the latest security patches have been installed.</li>'
135
+ . '</ul><br/>'
136
+
137
+ . '<p>Please contact <a href="mailto:info@mollie.com">info@mollie.com</a> if this still does not fix your problem.</p>';
138
+
139
+ $api_status_type = 'error';
140
+ }
141
+ catch (Mollie_WC_Exception_InvalidApiKey $e)
142
+ {
143
+ $api_status = '<p style="color:red; font-weight:bold;">' . esc_html($e->getMessage()) . '</p>';
144
+ $api_status_type = 'error';
145
+ }
146
+
147
+ return ''
148
+ . '<div id="message" class="' . $api_status_type . ' fade">'
149
+ . $api_status
150
+ . '</div>';
151
+ }
152
+
153
+ /**
154
+ * @param string $gateway_class_name
155
+ * @return string
156
+ */
157
+ protected function getGatewaySettingsUrl ($gateway_class_name)
158
+ {
159
+ return admin_url('admin.php?page=wc-settings&tab=checkout&section=' . sanitize_title(strtolower($gateway_class_name)));
160
+ }
161
+
162
+ protected function getMollieMethods ()
163
+ {
164
+ $content = '';
165
+
166
+ try
167
+ {
168
+ $data_helper = Mollie_WC_Plugin::getDataHelper();
169
+ $settings_helper = Mollie_WC_Plugin::getSettingsHelper();
170
+
171
+ // Is Test mode enabled?
172
+ $test_mode = $settings_helper->isTestModeEnabled();
173
+
174
+ if (isset($_GET['refresh-methods']) && check_admin_referer('refresh-methods'))
175
+ {
176
+ /* Reload active Mollie methods */
177
+ $data_helper->getPaymentMethods($test_mode, $use_cache = false);
178
+ }
179
+
180
+ $icon_available = ' <span style="color: green; cursor: help;" title="' . __('Gateway enabled', 'mollie-payments-for-woocommerce'). '">' . strtolower(__('Enabled', 'mollie-payments-for-woocommerce')) . '</span>';
181
+ $icon_no_available = ' <span style="color: red; cursor: help;" title="' . __('Gateway disabled', 'mollie-payments-for-woocommerce'). '">' . strtolower(__('Disabled', 'mollie-payments-for-woocommerce')) . '</span>';
182
+
183
+ $content .= '<br /><br />';
184
+
185
+ if ($test_mode)
186
+ {
187
+ $content .= '<strong>' . __('Test mode enabled.', 'mollie-payments-for-woocommerce') . '</strong> ';
188
+ }
189
+
190
+ $content .= sprintf(
191
+ /* translators: The surrounding %s's Will be replaced by a link to the Mollie profile */
192
+ __('The following payment methods are activated in your %sMollie profile%s:', 'mollie-payments-for-woocommerce'),
193
+ '<a href="https://www.mollie.com/beheer/account/profielen/" target="_blank">',
194
+ '</a>'
195
+ );
196
+
197
+ $refresh_methods_url = wp_nonce_url(
198
+ add_query_arg(array('refresh-methods' => 1)),
199
+ 'refresh-methods'
200
+ ) . '#' . Mollie_WC_Plugin::PLUGIN_ID;
201
+
202
+ $content .= ' (<a href="' . esc_attr($refresh_methods_url) . '">' . strtolower(__('Refresh', 'mollie-payments-for-woocommerce')) . '</a>)';
203
+
204
+ $content .= '<ul style="width: 1000px">';
205
+
206
+ foreach (Mollie_WC_Plugin::$GATEWAYS as $gateway_classname)
207
+ {
208
+ $gateway = new $gateway_classname;
209
+
210
+ if ($gateway instanceof Mollie_WC_Gateway_Abstract)
211
+ {
212
+ $content .= '<li style="float: left; width: 33%;">';
213
+
214
+ $content .= '<img src="' . esc_attr($gateway->getIconUrl()) . '" alt="' . esc_attr($gateway->getDefaultTitle()) . '" title="' . esc_attr($gateway->getDefaultTitle()) . '" style="width: 25px; vertical-align: bottom;" />';
215
+ $content .= ' ' . esc_html($gateway->getDefaultTitle());
216
+
217
+ if ($gateway->is_available())
218
+ {
219
+ $content .= $icon_available;
220
+ }
221
+ else
222
+ {
223
+ $content .= $icon_no_available;
224
+ }
225
+
226
+ $content .= ' <a href="' . $this->getGatewaySettingsUrl($gateway_classname) . '">' . strtolower(__('Edit', 'mollie-payments-for-woocommerce')) . '</a>';
227
+
228
+ $content .= '</li>';
229
+ }
230
+ }
231
+
232
+ $content .= '</ul>';
233
+ $content .= '<div class="clear"></div>';
234
+ }
235
+ catch (Mollie_WC_Exception_InvalidApiKey $e)
236
+ {
237
+ // Ignore
238
+ }
239
+
240
+ return $content;
241
+ }
242
+
243
+ /**
244
+ * @param array $settings
245
+ * @return array
246
+ */
247
+ public function addGlobalSettingsFields (array $settings)
248
+ {
249
+ wp_register_script('mollie_wc_admin_settings', Mollie_WC_Plugin::getPluginUrl('/assets/js/settings.js'), array('jquery'), Mollie_WC_Plugin::PLUGIN_VERSION);
250
+ wp_enqueue_script('mollie_wc_admin_settings');
251
+
252
+ $content = ''
253
+ . $this->getPluginStatus()
254
+ . $this->getMollieMethods();
255
+
256
+ /* translators: Default payment description. {order_number} and {order_date} are available tags. */
257
+ $default_payment_description = __('Order {order_number}', 'mollie-payments-for-woocommerce');
258
+ $payment_description_tags = '<code>{order_number}</code>, <code>{order_date}</code>';
259
+
260
+ $debug_desc = __('Log plugin events.', 'mollie-payments-for-woocommerce');
261
+
262
+ // For WooCommerce 2.2.0+ display view logs link
263
+ if (version_compare(Mollie_WC_Plugin::getStatusHelper()->getWooCommerceVersion(), '2.2.0', ">="))
264
+ {
265
+ $debug_desc .= ' <a href="' . $this->getLogsUrl() . '">' . __('View logs', 'mollie-payments-for-woocommerce') . '</a>';
266
+ }
267
+ // Display location of log files
268
+ else
269
+ {
270
+ /* translators: Placeholder 1: Location of the log files */
271
+ $debug_desc .= ' ' . sprintf(__('Log files are saved to <code>%s</code>', 'mollie-payments-for-woocommerce'), defined('WC_LOG_DIR') ? WC_LOG_DIR : WC()->plugin_path() . '/logs/');
272
+ }
273
+
274
+ // Global Mollie settings
275
+ $mollie_settings = array(
276
+ array(
277
+ 'id' => $this->getSettingId('title'),
278
+ 'title' => __('Mollie settings', 'mollie-payments-for-woocommerce'),
279
+ 'type' => 'title',
280
+ 'desc' => '<p id="' . Mollie_WC_Plugin::PLUGIN_ID . '">' . $content . '</p>'
281
+ . '<p>' . __('The following options are required to use the plugin and are used by all Mollie payment methods', 'mollie-payments-for-woocommerce') . '</p>',
282
+ ),
283
+ array(
284
+ 'id' => $this->getSettingId('live_api_key'),
285
+ 'title' => __('Live API key', 'mollie-payments-for-woocommerce'),
286
+ 'default' => '',
287
+ 'type' => 'text',
288
+ 'desc' => sprintf(
289
+ /* translators: Placeholder 1: API key mode (live or test). The surrounding %s's Will be replaced by a link to the Mollie profile */
290
+ __('The API key is used to connect to Mollie. You can find your <strong>%s</strong> API key in your %sMollie profile%s', 'mollie-payments-for-woocommerce'),
291
+ 'live',
292
+ '<a href="https://www.mollie.com/beheer/account/profielen/" target="_blank">',
293
+ '</a>'
294
+ ),
295
+ 'css' => 'width: 350px',
296
+ 'placeholder' => $live_placeholder = __('Live API key should start with live_', 'mollie-payments-for-woocommerce'),
297
+ 'custom_attributes' => array(
298
+ 'placeholder' => $live_placeholder,
299
+ 'pattern' => '^live_\w+$',
300
+ ),
301
+ ),
302
+ array(
303
+ 'id' => $this->getSettingId('test_mode_enabled'),
304
+ 'title' => __('Enable test mode', 'mollie-payments-for-woocommerce'),
305
+ 'default' => 'no',
306
+ 'type' => 'checkbox',
307
+ 'desc_tip' => __('Enable test mode if you want to test the plugin without using real payments.', 'mollie-payments-for-woocommerce'),
308
+ ),
309
+ array(
310
+ 'id' => $this->getSettingId('test_api_key'),
311
+ 'title' => __('Test API key', 'mollie-payments-for-woocommerce'),
312
+ 'default' => '',
313
+ 'type' => 'text',
314
+ 'desc' => sprintf(
315
+ /* translators: Placeholder 1: API key mode (live or test). The surrounding %s's Will be replaced by a link to the Mollie profile */
316
+ __('The API key is used to connect to Mollie. You can find your <strong>%s</strong> API key in your %sMollie profile%s', 'mollie-payments-for-woocommerce'),
317
+ 'test',
318
+ '<a href="https://www.mollie.com/beheer/account/profielen/" target="_blank">',
319
+ '</a>'
320
+ ),
321
+ 'css' => 'width: 350px',
322
+ 'placeholder' => $test_placeholder = __('Test API key should start with test_', 'mollie-payments-for-woocommerce'),
323
+ 'custom_attributes' => array(
324
+ 'placeholder' => $test_placeholder,
325
+ 'pattern' => '^test_\w+$',
326
+ ),
327
+ ),
328
+ array(
329
+ 'id' => $this->getSettingId('payment_description'),
330
+ 'title' => __('Description', 'mollie-payments-for-woocommerce'),
331
+ 'type' => 'text',
332
+ /* translators: Placeholder 1: Default payment description, placeholder 2: list of available tags */
333
+ 'desc' => sprintf(__('Payment description send to Mollie. Default <code>%s</code><br/>You can use the following tags: %s', 'mollie-payments-for-woocommerce'), $default_payment_description, $payment_description_tags),
334
+ 'default' => $default_payment_description,
335
+ 'css' => 'width: 350px',
336
+ ),
337
+ array(
338
+ 'id' => $this->getSettingId('payment_locale'),
339
+ 'title' => __('Payment screen language', 'mollie-payments-for-woocommerce'),
340
+ 'type' => 'select',
341
+ 'options' => array(
342
+ '' => __('Detect using browser language', 'mollie-payments-for-woocommerce'),
343
+ /* translators: Placeholder 1: Current WordPress locale */
344
+ 'wp_locale' => sprintf(__('Send WordPress language (%s)', 'mollie-payments-for-woocommerce'), get_locale()) . ' (' . __('default', 'mollie-payments-for-woocommerce') . ')',
345
+ 'nl_NL' => __('Dutch', 'mollie-payments-for-woocommerce'),
346
+ 'nl_BE' => __('Flemish (Belgium)', 'mollie-payments-for-woocommerce'),
347
+ 'en' => __('English', 'mollie-payments-for-woocommerce'),
348
+ 'de' => __('German', 'mollie-payments-for-woocommerce'),
349
+ 'es' => __('Spanish', 'mollie-payments-for-woocommerce'),
350
+ 'fr_FR' => __('French', 'mollie-payments-for-woocommerce'),
351
+ 'fr_BE' => __('French (Belgium)', 'mollie-payments-for-woocommerce'),
352
+ ),
353
+ 'default' => 'wp_locale',
354
+ ),
355
+ array(
356
+ 'id' => $this->getSettingId('debug'),
357
+ 'title' => __('Debug Log', 'mollie-payments-for-woocommerce'),
358
+ 'type' => 'checkbox',
359
+ 'desc' => $debug_desc,
360
+ 'default' => 'yes',
361
+ ),
362
+ array(
363
+ 'id' => $this->getSettingId('sectionend'),
364
+ 'type' => 'sectionend',
365
+ ),
366
+ );
367
+
368
+ return $this->mergeSettings($settings, $mollie_settings);
369
+ }
370
+
371
+ /**
372
+ * @param string $setting
373
+ * @return string
374
+ */
375
+ protected function getSettingId ($setting)
376
+ {
377
+ $setting_id = Mollie_WC_Plugin::PLUGIN_ID . '_' . trim($setting);
378
+ $setting_id_length = strlen($setting_id);
379
+
380
+ if ($setting_id_length > 64)
381
+ {
382
+ trigger_error("Setting id $setting_id ($setting_id_length) to long for database column wp_options.option_name which is varchar(64).", E_USER_WARNING);
383
+ }
384
+
385
+ return $setting_id;
386
+ }
387
+
388
+ /**
389
+ * @param array $settings
390
+ * @param array $mollie_settings
391
+ * @return array
392
+ */
393
+ protected function mergeSettings(array $settings, array $mollie_settings)
394
+ {
395
+ $insert_after_index = NULL;
396
+
397
+ // Find payment gateway options index
398
+ foreach ($settings as $index => $setting) {
399
+ if (isset($setting['id']) && $setting['id'] == 'payment_gateways_options'
400
+ && (!isset($setting['type']) || $setting['type'] != 'sectionend')
401
+ ) {
402
+ $insert_after_index = $index;
403
+ break;
404
+ }
405
+ }
406
+
407
+ // Payment gateways setting found
408
+ if ($insert_after_index !== NULL)
409
+ {
410
+ // Insert Mollie settings before payment gateways setting
411
+ array_splice($settings, $insert_after_index, 0, $mollie_settings);
412
+ }
413
+ else
414
+ {
415
+ // Append Mollie settings
416
+ $settings = array_merge($settings, $mollie_settings);
417
+ }
418
+
419
+ return $settings;
420
+ }
421
+ }
includes/mollie/wc/helper/status.php ADDED
@@ -0,0 +1,176 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Mollie_WC_Helper_Status
3
+ {
4
+ /**
5
+ * Minimal required WooCommerce version
6
+ *
7
+ * @var string
8
+ */
9
+ const MIN_WOOCOMMERCE_VERSION = '2.1.0';
10
+
11
+ /**
12
+ * @var string[]
13
+ */
14
+ protected $errors = array();
15
+
16
+ /**
17
+ * @return bool
18
+ */
19
+ public function hasErrors ()
20
+ {
21
+ return !empty($this->errors);
22
+ }
23
+
24
+ /**
25
+ * @return string[]
26
+ */
27
+ public function getErrors ()
28
+ {
29
+ return $this->errors;
30
+ }
31
+
32
+ /**
33
+ * Check if this plugin is compatible
34
+ *
35
+ * @return bool
36
+ */
37
+ public function isCompatible ()
38
+ {
39
+ static $is_compatible = null;
40
+
41
+ if ($is_compatible !== null)
42
+ {
43
+ return $is_compatible;
44
+ }
45
+
46
+ // Default
47
+ $is_compatible = true;
48
+
49
+ if (!$this->hasCompatibleWooCommerceVersion())
50
+ {
51
+ $this->errors[] = sprintf(
52
+ /* translators: Placeholder 1: Plugin name, placeholder 2: required WooCommerce version, placeholder 3: used WooCommerce version */
53
+ __('The %s plugin requires at least WooCommerce version %s, you are using version %s. Please update your WooCommerce plugin.', 'mollie-payments-for-woocommerce'),
54
+ Mollie_WC_Plugin::PLUGIN_TITLE,
55
+ self::MIN_WOOCOMMERCE_VERSION,
56
+ $this->getWooCommerceVersion()
57
+ );
58
+
59
+ return $is_compatible = false;
60
+ }
61
+
62
+ if (!$this->isApiClientInstalled())
63
+ {
64
+ $this->errors[] = __('Mollie API client not installed. Please make sure the plugin is installed correctly.', 'mollie-payments-for-woocommerce');
65
+
66
+ return $is_compatible = false;
67
+ }
68
+
69
+ try
70
+ {
71
+ $checker = $this->getApiClientCompatibilityChecker();
72
+
73
+ $checker->checkCompatibility();
74
+ }
75
+ catch (Mollie_API_Exception_IncompatiblePlatform $e)
76
+ {
77
+ switch ($e->getCode())
78
+ {
79
+ case Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_PHP_VERSION:
80
+ $error = sprintf(
81
+ /* translators: Placeholder 1: Required PHP version, placeholder 2: current PHP version */
82
+ __('The client requires PHP version >= %s, you have %s.', 'mollie-payments-for-woocommerce'),
83
+ Mollie_API_CompatibilityChecker::$MIN_PHP_VERSION,
84
+ PHP_VERSION
85
+ );
86
+ break;
87
+
88
+ case Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_JSON_EXTENSION:
89
+ $error = __('The Mollie API client requires the PHP extension JSON to be enabled. Please enable the \'json\' extension in your PHP configuration.', 'mollie-payments-for-woocommerce');
90
+ break;
91
+
92
+ case Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_CURL_EXTENSION:
93
+ $error = __('The Mollie API client requires the PHP extension cURL to be enabled. Please enable the \'curl\' extension in your PHP configuration.', 'mollie-payments-for-woocommerce');
94
+ break;
95
+
96
+ case Mollie_API_Exception_IncompatiblePlatform::INCOMPATIBLE_CURL_FUNCTION:
97
+ $error = sprintf(
98
+ /* translators: Placeholder 1: The required cURL function names */
99
+ __('The Mollie API client requires the following PHP cURL functions to be available: %s. Please make sure all of these functions are available.', 'mollie-payments-for-woocommerce'),
100
+ implode(', ', Mollie_API_CompatibilityChecker::$REQUIRED_CURL_FUNCTIONS)
101
+ );
102
+ break;
103
+
104
+ default:
105
+ $error = $e->getMessage();
106
+ break;
107
+ }
108
+
109
+ $this->errors[] = $error;
110
+
111
+ return $is_compatible = false;
112
+ }
113
+
114
+ return $is_compatible;
115
+ }
116
+
117
+ /**
118
+ * @return string
119
+ */
120
+ public function getWooCommerceVersion ()
121
+ {
122
+ return WooCommerce::instance()->version;
123
+ }
124
+
125
+ /**
126
+ * @return bool
127
+ */
128
+ public function hasCompatibleWooCommerceVersion ()
129
+ {
130
+ return (bool) version_compare($this->getWooCommerceVersion(), self::MIN_WOOCOMMERCE_VERSION, ">=");
131
+ }
132
+
133
+ /**
134
+ * @return bool
135
+ */
136
+ protected function isApiClientInstalled ()
137
+ {
138
+ $includes_dir = dirname(dirname(dirname(dirname(__FILE__))));
139
+
140
+ return file_exists($includes_dir . '/mollie-api-php');
141
+ }
142
+
143
+ /**
144
+ * @throws Mollie_WC_Exception_CouldNotConnectToMollie
145
+ */
146
+ public function getMollieApiStatus ()
147
+ {
148
+ try
149
+ {
150
+ // Is test mode enabled?
151
+ $test_mode = Mollie_WC_Plugin::getSettingsHelper()->isTestModeEnabled();
152
+
153
+ $api_helper = Mollie_WC_Plugin::getApiHelper();
154
+ $api_client = $api_helper->getApiClient($test_mode);
155
+
156
+ // Try to load Mollie issuers
157
+ $api_client->issuers->all();
158
+ }
159
+ catch (Mollie_API_Exception $e)
160
+ {
161
+ throw new Mollie_WC_Exception_CouldNotConnectToMollie(
162
+ $e->getMessage(),
163
+ 0,
164
+ $e
165
+ );
166
+ }
167
+ }
168
+
169
+ /**
170
+ * @return Mollie_API_CompatibilityChecker
171
+ */
172
+ protected function getApiClientCompatibilityChecker ()
173
+ {
174
+ return new Mollie_API_CompatibilityChecker();
175
+ }
176
+ }
includes/mollie/wc/plugin.php ADDED
@@ -0,0 +1,351 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Require WooCommerce fallback functions
3
+ require_once dirname(dirname(dirname(__FILE__))) . '/woocommerce_functions.php';
4
+
5
+ class Mollie_WC_Plugin
6
+ {
7
+ const PLUGIN_ID = 'mollie-payments-for-woocommerce';
8
+ const PLUGIN_TITLE = 'Mollie Payments for WooCommerce';
9
+ const PLUGIN_VERSION = '2.0.0-beta1';
10
+
11
+ /**
12
+ * @var bool
13
+ */
14
+ private static $initiated = false;
15
+
16
+ /**
17
+ * @var array
18
+ */
19
+ public static $GATEWAYS = array(
20
+ 'Mollie_WC_Gateway_BankTransfer',
21
+ 'Mollie_WC_Gateway_Belfius',
22
+ 'Mollie_WC_Gateway_Bitcoin',
23
+ 'Mollie_WC_Gateway_Creditcard',
24
+ 'Mollie_WC_Gateway_Ideal',
25
+ 'Mollie_WC_Gateway_MisterCash',
26
+ 'Mollie_WC_Gateway_PayPal',
27
+ 'Mollie_WC_Gateway_Paysafecard',
28
+ 'Mollie_WC_Gateway_Sofort',
29
+ );
30
+
31
+ private function __construct () {}
32
+
33
+ /**
34
+ * Initialize plugin
35
+ */
36
+ public static function init ()
37
+ {
38
+ if (self::$initiated)
39
+ {
40
+ /*
41
+ * Already initialized
42
+ */
43
+ return;
44
+ }
45
+
46
+ $plugin_basename = self::getPluginFile();
47
+ $settings_helper = self::getSettingsHelper();
48
+ $data_helper = self::getDataHelper();
49
+
50
+ // Add global Mollie settings to 'WooCommerce -> Checkout -> Checkout Options'
51
+ add_filter('woocommerce_payment_gateways_settings', array($settings_helper, 'addGlobalSettingsFields'));
52
+ // When page 'WooCommerce -> Checkout -> Checkout Options' is saved
53
+ add_action('woocommerce_settings_save_checkout', array($data_helper, 'deleteTransients'));
54
+ // Add Mollie gateways
55
+ add_filter('woocommerce_payment_gateways', array(__CLASS__, 'addGateways'));
56
+ // Add settings link to plugins page
57
+ add_filter('plugin_action_links_' . $plugin_basename, array(__CLASS__, 'addPluginActionLinks'));
58
+ // Listen to return URL call
59
+ add_action('woocommerce_api_mollie_return', array(__CLASS__, 'onMollieReturn'));
60
+ // On order details
61
+ add_action('woocommerce_order_details_after_order_table', array(__CLASS__, 'onOrderDetails'), 10, 1);
62
+
63
+ // Mark plugin initiated
64
+ self::$initiated = true;
65
+ }
66
+
67
+ /**
68
+ * Payment return url callback
69
+ */
70
+ public static function onMollieReturn ()
71
+ {
72
+ $data_helper = self::getDataHelper();
73
+
74
+ $order_id = !empty($_GET['order_id']) ? $_GET['order_id'] : NULL;
75
+ $key = !empty($_GET['key']) ? $_GET['key'] : NULL;
76
+
77
+ $order = $data_helper->getWcOrder($order_id);
78
+
79
+ if (!$order)
80
+ {
81
+ self::setHttpResponseCode(404);
82
+ self::debug(__METHOD__ . ": Could not find order $order_id.");
83
+ return;
84
+ }
85
+
86
+ if (!$order->key_is_valid($key))
87
+ {
88
+ self::setHttpResponseCode(401);
89
+ self::debug(__METHOD__ . ": Invalid key $key for order $order_id.");
90
+ return;
91
+ }
92
+
93
+ $gateway = $data_helper->getWcPaymentGatewayByOrder($order);
94
+
95
+ if (!$gateway)
96
+ {
97
+ self::setHttpResponseCode(404);
98
+ self::debug(__METHOD__ . ": Could not find gateway for order $order_id.");
99
+ return;
100
+ }
101
+
102
+ if (!($gateway instanceof Mollie_WC_Gateway_Abstract))
103
+ {
104
+ self::setHttpResponseCode(400);
105
+ self::debug(__METHOD__ . ": Invalid gateway " . get_class($gateway) . " for this plugin. Order $order_id.");
106
+ return;
107
+ }
108
+
109
+ /** @var Mollie_WC_Gateway_Abstract $gateway */
110
+
111
+ $redirect_url = $gateway->getReturnRedirectUrlForOrder($order);
112
+
113
+ // Add utm_nooverride query string
114
+ $redirect_url = add_query_arg(array(
115
+ 'utm_nooverride' => 1,
116
+ ), $redirect_url);
117
+
118
+ self::debug(__METHOD__ . ": Redirect url on return order " . $gateway->id . ", order $order_id: $redirect_url");
119
+
120
+ wp_safe_redirect($redirect_url);
121
+ }
122
+
123
+ /**
124
+ * @param WC_Order $order
125
+ */
126
+ public static function onOrderDetails (WC_Order $order)
127
+ {
128
+ if (is_order_received_page())
129
+ {
130
+ /**
131
+ * Do not show instruction again below details on order received page
132
+ * Instructions already displayed on top of order received page by $gateway->thankyou_page()
133
+ *
134
+ * @see Mollie_WC_Gateway_Abstract::thankyou_page
135
+ */
136
+ return;
137
+ }
138
+
139
+ $gateway = Mollie_WC_Plugin::getDataHelper()->getWcPaymentGatewayByOrder($order);
140
+
141
+ if (!$gateway || !($gateway instanceof Mollie_WC_Gateway_Abstract))
142
+ {
143
+ return;
144
+ }
145
+
146
+ /** @var Mollie_WC_Gateway_Abstract $gateway */
147
+
148
+ $gateway->displayInstructions($order);
149
+ }
150
+
151
+ /**
152
+ * Set HTTP status code
153
+ *
154
+ * @param int $status_code
155
+ */
156
+ public static function setHttpResponseCode ($status_code)
157
+ {
158
+ if (PHP_SAPI !== 'cli' && !headers_sent())
159
+ {
160
+ if (function_exists("http_response_code"))
161
+ {
162
+ http_response_code($status_code);
163
+ }
164
+ else
165
+ {
166
+ header(" ", TRUE, $status_code);
167
+ }
168
+ }
169
+ }
170
+
171
+ /**
172
+ * Add Mollie gateways
173
+ *
174
+ * @param array $gateways
175
+ * @return array
176
+ */
177
+ public static function addGateways (array $gateways)
178
+ {
179
+ return array_merge($gateways, self::$GATEWAYS);
180
+ }
181
+
182
+ /**
183
+ * Add a WooCommerce notification message
184
+ *
185
+ * @param string $message Notification message
186
+ * @param string $type One of notice, error or success (default notice)
187
+ * @return $this
188
+ */
189
+ public static function addNotice ($message, $type = 'notice')
190
+ {
191
+ $type = in_array($type, array('notice','error','success')) ? $type : 'notice';
192
+
193
+ // Check for existence of new notification api (WooCommerce >= 2.1)
194
+ if (function_exists('wc_add_notice'))
195
+ {
196
+ wc_add_notice($message, $type);
197
+ }
198
+ else
199
+ {
200
+ $woocommerce = WooCommerce::instance();
201
+
202
+ switch ($type)
203
+ {
204
+ case 'error' :
205
+ $woocommerce->add_error($message);
206
+ break;
207
+ default :
208
+ $woocommerce->add_message($message);
209
+ break;
210
+ }
211
+ }
212
+ }
213
+
214
+ /**
215
+ * Log messages to WooCommerce log
216
+ *
217
+ * @param mixed $message
218
+ * @param bool $set_debug_header Set X-Mollie-Debug header (default false)
219
+ */
220
+ public static function debug ($message, $set_debug_header = false)
221
+ {
222
+ // Convert message to string
223
+ if (!is_string($message))
224
+ {
225
+ $message = print_r($message, true);
226
+ }
227
+
228
+ // Set debug header
229
+ if ($set_debug_header && PHP_SAPI !== 'cli' && !headers_sent())
230
+ {
231
+ header("X-Mollie-Debug: $message");
232
+ }
233
+
234
+ // Log message
235
+ if (self::getSettingsHelper()->isDebugEnabled())
236
+ {
237
+ static $logger;
238
+
239
+ if (empty($logger))
240
+ {
241
+ // TODO: Use error_log() fallback if Wc_Logger is not available
242
+ $logger = new WC_Logger();
243
+ }
244
+
245
+ $logger->add(self::PLUGIN_ID . '-' . date('Y-m-d'), $message);
246
+ }
247
+ }
248
+
249
+ /**
250
+ * Get location of main plugin file
251
+ *
252
+ * @return string
253
+ */
254
+ public static function getPluginFile ()
255
+ {
256
+ return plugin_basename(self::PLUGIN_ID . '/' . self::PLUGIN_ID . '.php');
257
+ }
258
+
259
+ /**
260
+ * Get plugin URL
261
+ *
262
+ * @param string $path
263
+ * @return string
264
+ */
265
+ public static function getPluginUrl ($path = '')
266
+ {
267
+ return untrailingslashit(plugins_url($path, self::getPluginFile()));
268
+ }
269
+
270
+ /**
271
+ * Add plugin action links
272
+ * @param array $links
273
+ * @return array
274
+ */
275
+ public static function addPluginActionLinks (array $links)
276
+ {
277
+ $action_links = array(
278
+ // Add link to global Mollie settings
279
+ '<a href="' . self::getSettingsHelper()->getGlobalSettingsUrl() . '">' . __('Mollie settings', 'mollie-payments-for-woocommerce') . '</a>',
280
+ );
281
+
282
+ // Add link to log files viewer for WooCommerce >= 2.2.0
283
+ if (version_compare(self::getStatusHelper()->getWooCommerceVersion(), '2.2.0', ">="))
284
+ {
285
+ // Add link to WooCommerce logs
286
+ $action_links[] = '<a href="' . self::getSettingsHelper()->getLogsUrl() . '">' . __('Logs', 'mollie-payments-for-woocommerce') . '</a>';
287
+ }
288
+
289
+ return array_merge($action_links, $links);
290
+ }
291
+
292
+ /**
293
+ * @return Mollie_WC_Helper_Settings
294
+ */
295
+ public static function getSettingsHelper ()
296
+ {
297
+ static $settings_helper;
298
+
299
+ if (!$settings_helper)
300
+ {
301
+ $settings_helper = new Mollie_WC_Helper_Settings();
302
+ }
303
+
304
+ return $settings_helper;
305
+ }
306
+
307
+ /**
308
+ * @return Mollie_WC_Helper_Api
309
+ */
310
+ public static function getApiHelper ()
311
+ {
312
+ static $api_helper;
313
+
314
+ if (!$api_helper)
315
+ {
316
+ $api_helper = new Mollie_WC_Helper_Api(self::getSettingsHelper());
317
+ }
318
+
319
+ return $api_helper;
320
+ }
321
+
322
+ /**
323
+ * @return Mollie_WC_Helper_Data
324
+ */
325
+ public static function getDataHelper ()
326
+ {
327
+ static $data_helper;
328
+
329
+ if (!$data_helper)
330
+ {
331
+ $data_helper = new Mollie_WC_Helper_Data(self::getApiHelper());
332
+ }
333
+
334
+ return $data_helper;
335
+ }
336
+
337
+ /**
338
+ * @return Mollie_WC_Helper_Status
339
+ */
340
+ public static function getStatusHelper ()
341
+ {
342
+ static $status_helper;
343
+
344
+ if (!$status_helper)
345
+ {
346
+ $status_helper = new Mollie_WC_Helper_Status();
347
+ }
348
+
349
+ return $status_helper;
350
+ }
351
+ }
includes/woocommerce_functions.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if (!function_exists('is_order_received_page'))
4
+ {
5
+ /**
6
+ * Check if the current page is the order received page
7
+ *
8
+ * @since WooCommerce 2.3.3
9
+ * @return bool
10
+ */
11
+ function is_order_received_page ()
12
+ {
13
+ global $wp;
14
+
15
+ return (is_page(wc_get_page_id('checkout')) && isset($wp->query_vars['order-received'])) ? true : false;
16
+ }
17
+ }
18
+
19
+ if (!function_exists('wc_date_format'))
20
+ {
21
+ function wc_date_format ()
22
+ {
23
+ return apply_filters('woocommerce_date_format', get_option('date_format'));
24
+ }
25
+ }
26
+
27
+ if (!function_exists('untrailingslashit'))
28
+ {
29
+ /**
30
+ * @since WooCommerce 2.2.0
31
+ * @param string $string
32
+ * @return string
33
+ */
34
+ function untrailingslashit ($string)
35
+ {
36
+ return rtrim($string, '/');
37
+ }
38
+ }
license.txt ADDED
@@ -0,0 +1,357 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Mollie Payments for WooCommerce plugin
2
+ Copyright (C) 2015, Mollie B.V. <info@mollie.com>
3
+
4
+ This program is free software; you can redistribute it and/or modify
5
+ it under the terms of the GNU General Public License as published by
6
+ the Free Software Foundation; either version 2 of the License, or
7
+ (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU General Public License for more details.
13
+
14
+ You should have received a copy of the GNU General Public License
15
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ -----------------------------------------------------------------------
18
+
19
+ GNU GENERAL PUBLIC LICENSE
20
+ Version 2, June 1991
21
+
22
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
23
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24
+ Everyone is permitted to copy and distribute verbatim copies
25
+ of this license document, but changing it is not allowed.
26
+
27
+ Preamble
28
+
29
+ The licenses for most software are designed to take away your
30
+ freedom to share and change it. By contrast, the GNU General Public
31
+ License is intended to guarantee your freedom to share and change free
32
+ software--to make sure the software is free for all its users. This
33
+ General Public License applies to most of the Free Software
34
+ Foundation's software and to any other program whose authors commit to
35
+ using it. (Some other Free Software Foundation software is covered by
36
+ the GNU Lesser General Public License instead.) You can apply it to
37
+ your programs, too.
38
+
39
+ When we speak of free software, we are referring to freedom, not
40
+ price. Our General Public Licenses are designed to make sure that you
41
+ have the freedom to distribute copies of free software (and charge for
42
+ this service if you wish), that you receive source code or can get it
43
+ if you want it, that you can change the software or use pieces of it
44
+ in new free programs; and that you know you can do these things.
45
+
46
+ To protect your rights, we need to make restrictions that forbid
47
+ anyone to deny you these rights or to ask you to surrender the rights.
48
+ These restrictions translate to certain responsibilities for you if you
49
+ distribute copies of the software, or if you modify it.
50
+
51
+ For example, if you distribute copies of such a program, whether
52
+ gratis or for a fee, you must give the recipients all the rights that
53
+ you have. You must make sure that they, too, receive or can get the
54
+ source code. And you must show them these terms so they know their
55
+ rights.
56
+
57
+ We protect your rights with two steps: (1) copyright the software, and
58
+ (2) offer you this license which gives you legal permission to copy,
59
+ distribute and/or modify the software.
60
+
61
+ Also, for each author's protection and ours, we want to make certain
62
+ that everyone understands that there is no warranty for this free
63
+ software. If the software is modified by someone else and passed on, we
64
+ want its recipients to know that what they have is not the original, so
65
+ that any problems introduced by others will not reflect on the original
66
+ authors' reputations.
67
+
68
+ Finally, any free program is threatened constantly by software
69
+ patents. We wish to avoid the danger that redistributors of a free
70
+ program will individually obtain patent licenses, in effect making the
71
+ program proprietary. To prevent this, we have made it clear that any
72
+ patent must be licensed for everyone's free use or not licensed at all.
73
+
74
+ The precise terms and conditions for copying, distribution and
75
+ modification follow.
76
+
77
+ GNU GENERAL PUBLIC LICENSE
78
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
79
+
80
+ 0. This License applies to any program or other work which contains
81
+ a notice placed by the copyright holder saying it may be distributed
82
+ under the terms of this General Public License. The "Program", below,
83
+ refers to any such program or work, and a "work based on the Program"
84
+ means either the Program or any derivative work under copyright law:
85
+ that is to say, a work containing the Program or a portion of it,
86
+ either verbatim or with modifications and/or translated into another
87
+ language. (Hereinafter, translation is included without limitation in
88
+ the term "modification".) Each licensee is addressed as "you".
89
+
90
+ Activities other than copying, distribution and modification are not
91
+ covered by this License; they are outside its scope. The act of
92
+ running the Program is not restricted, and the output from the Program
93
+ is covered only if its contents constitute a work based on the
94
+ Program (independent of having been made by running the Program).
95
+ Whether that is true depends on what the Program does.
96
+
97
+ 1. You may copy and distribute verbatim copies of the Program's
98
+ source code as you receive it, in any medium, provided that you
99
+ conspicuously and appropriately publish on each copy an appropriate
100
+ copyright notice and disclaimer of warranty; keep intact all the
101
+ notices that refer to this License and to the absence of any warranty;
102
+ and give any other recipients of the Program a copy of this License
103
+ along with the Program.
104
+
105
+ You may charge a fee for the physical act of transferring a copy, and
106
+ you may at your option offer warranty protection in exchange for a fee.
107
+
108
+ 2. You may modify your copy or copies of the Program or any portion
109
+ of it, thus forming a work based on the Program, and copy and
110
+ distribute such modifications or work under the terms of Section 1
111
+ above, provided that you also meet all of these conditions:
112
+
113
+ a) You must cause the modified files to carry prominent notices
114
+ stating that you changed the files and the date of any change.
115
+
116
+ b) You must cause any work that you distribute or publish, that in
117
+ whole or in part contains or is derived from the Program or any
118
+ part thereof, to be licensed as a whole at no charge to all third
119
+ parties under the terms of this License.
120
+
121
+ c) If the modified program normally reads commands interactively
122
+ when run, you must cause it, when started running for such
123
+ interactive use in the most ordinary way, to print or display an
124
+ announcement including an appropriate copyright notice and a
125
+ notice that there is no warranty (or else, saying that you provide
126
+ a warranty) and that users may redistribute the program under
127
+ these conditions, and telling the user how to view a copy of this
128
+ License. (Exception: if the Program itself is interactive but
129
+ does not normally print such an announcement, your work based on
130
+ the Program is not required to print an announcement.)
131
+
132
+ These requirements apply to the modified work as a whole. If
133
+ identifiable sections of that work are not derived from the Program,
134
+ and can be reasonably considered independent and separate works in
135
+ themselves, then this License, and its terms, do not apply to those
136
+ sections when you distribute them as separate works. But when you
137
+ distribute the same sections as part of a whole which is a work based
138
+ on the Program, the distribution of the whole must be on the terms of
139
+ this License, whose permissions for other licensees extend to the
140
+ entire whole, and thus to each and every part regardless of who wrote it.
141
+
142
+ Thus, it is not the intent of this section to claim rights or contest
143
+ your rights to work written entirely by you; rather, the intent is to
144
+ exercise the right to control the distribution of derivative or
145
+ collective works based on the Program.
146
+
147
+ In addition, mere aggregation of another work not based on the Program
148
+ with the Program (or with a work based on the Program) on a volume of
149
+ a storage or distribution medium does not bring the other work under
150
+ the scope of this License.
151
+
152
+ 3. You may copy and distribute the Program (or a work based on it,
153
+ under Section 2) in object code or executable form under the terms of
154
+ Sections 1 and 2 above provided that you also do one of the following:
155
+
156
+ a) Accompany it with the complete corresponding machine-readable
157
+ source code, which must be distributed under the terms of Sections
158
+ 1 and 2 above on a medium customarily used for software interchange; or,
159
+
160
+ b) Accompany it with a written offer, valid for at least three
161
+ years, to give any third party, for a charge no more than your
162
+ cost of physically performing source distribution, a complete
163
+ machine-readable copy of the corresponding source code, to be
164
+ distributed under the terms of Sections 1 and 2 above on a medium
165
+ customarily used for software interchange; or,
166
+
167
+ c) Accompany it with the information you received as to the offer
168
+ to distribute corresponding source code. (This alternative is
169
+ allowed only for noncommercial distribution and only if you
170
+ received the program in object code or executable form with such
171
+ an offer, in accord with Subsection b above.)
172
+
173
+ The source code for a work means the preferred form of the work for
174
+ making modifications to it. For an executable work, complete source
175
+ code means all the source code for all modules it contains, plus any
176
+ associated interface definition files, plus the scripts used to
177
+ control compilation and installation of the executable. However, as a
178
+ special exception, the source code distributed need not include
179
+ anything that is normally distributed (in either source or binary
180
+ form) with the major components (compiler, kernel, and so on) of the
181
+ operating system on which the executable runs, unless that component
182
+ itself accompanies the executable.
183
+
184
+ If distribution of executable or object code is made by offering
185
+ access to copy from a designated place, then offering equivalent
186
+ access to copy the source code from the same place counts as
187
+ distribution of the source code, even though third parties are not
188
+ compelled to copy the source along with the object code.
189
+
190
+ 4. You may not copy, modify, sublicense, or distribute the Program
191
+ except as expressly provided under this License. Any attempt
192
+ otherwise to copy, modify, sublicense or distribute the Program is
193
+ void, and will automatically terminate your rights under this License.
194
+ However, parties who have received copies, or rights, from you under
195
+ this License will not have their licenses terminated so long as such
196
+ parties remain in full compliance.
197
+
198
+ 5. You are not required to accept this License, since you have not
199
+ signed it. However, nothing else grants you permission to modify or
200
+ distribute the Program or its derivative works. These actions are
201
+ prohibited by law if you do not accept this License. Therefore, by
202
+ modifying or distributing the Program (or any work based on the
203
+ Program), you indicate your acceptance of this License to do so, and
204
+ all its terms and conditions for copying, distributing or modifying
205
+ the Program or works based on it.
206
+
207
+ 6. Each time you redistribute the Program (or any work based on the
208
+ Program), the recipient automatically receives a license from the
209
+ original licensor to copy, distribute or modify the Program subject to
210
+ these terms and conditions. You may not impose any further
211
+ restrictions on the recipients' exercise of the rights granted herein.
212
+ You are not responsible for enforcing compliance by third parties to
213
+ this License.
214
+
215
+ 7. If, as a consequence of a court judgment or allegation of patent
216
+ infringement or for any other reason (not limited to patent issues),
217
+ conditions are imposed on you (whether by court order, agreement or
218
+ otherwise) that contradict the conditions of this License, they do not
219
+ excuse you from the conditions of this License. If you cannot
220
+ distribute so as to satisfy simultaneously your obligations under this
221
+ License and any other pertinent obligations, then as a consequence you
222
+ may not distribute the Program at all. For example, if a patent
223
+ license would not permit royalty-free redistribution of the Program by
224
+ all those who receive copies directly or indirectly through you, then
225
+ the only way you could satisfy both it and this License would be to
226
+ refrain entirely from distribution of the Program.
227
+
228
+ If any portion of this section is held invalid or unenforceable under
229
+ any particular circumstance, the balance of the section is intended to
230
+ apply and the section as a whole is intended to apply in other
231
+ circumstances.
232
+
233
+ It is not the purpose of this section to induce you to infringe any
234
+ patents or other property right claims or to contest validity of any
235
+ such claims; this section has the sole purpose of protecting the
236
+ integrity of the free software distribution system, which is
237
+ implemented by public license practices. Many people have made
238
+ generous contributions to the wide range of software distributed
239
+ through that system in reliance on consistent application of that
240
+ system; it is up to the author/donor to decide if he or she is willing
241
+ to distribute software through any other system and a licensee cannot
242
+ impose that choice.
243
+
244
+ This section is intended to make thoroughly clear what is believed to
245
+ be a consequence of the rest of this License.
246
+
247
+ 8. If the distribution and/or use of the Program is restricted in
248
+ certain countries either by patents or by copyrighted interfaces, the
249
+ original copyright holder who places the Program under this License
250
+ may add an explicit geographical distribution limitation excluding
251
+ those countries, so that distribution is permitted only in or among
252
+ countries not thus excluded. In such case, this License incorporates
253
+ the limitation as if written in the body of this License.
254
+
255
+ 9. The Free Software Foundation may publish revised and/or new versions
256
+ of the General Public License from time to time. Such new versions will
257
+ be similar in spirit to the present version, but may differ in detail to
258
+ address new problems or concerns.
259
+
260
+ Each version is given a distinguishing version number. If the Program
261
+ specifies a version number of this License which applies to it and "any
262
+ later version", you have the option of following the terms and conditions
263
+ either of that version or of any later version published by the Free
264
+ Software Foundation. If the Program does not specify a version number of
265
+ this License, you may choose any version ever published by the Free Software
266
+ Foundation.
267
+
268
+ 10. If you wish to incorporate parts of the Program into other free
269
+ programs whose distribution conditions are different, write to the author
270
+ to ask for permission. For software which is copyrighted by the Free
271
+ Software Foundation, write to the Free Software Foundation; we sometimes
272
+ make exceptions for this. Our decision will be guided by the two goals
273
+ of preserving the free status of all derivatives of our free software and
274
+ of promoting the sharing and reuse of software generally.
275
+
276
+ NO WARRANTY
277
+
278
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
279
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
280
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
281
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
282
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
283
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
284
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
285
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
286
+ REPAIR OR CORRECTION.
287
+
288
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
289
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
290
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
291
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
292
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
293
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
294
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
295
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
296
+ POSSIBILITY OF SUCH DAMAGES.
297
+
298
+ END OF TERMS AND CONDITIONS
299
+
300
+ How to Apply These Terms to Your New Programs
301
+
302
+ If you develop a new program, and you want it to be of the greatest
303
+ possible use to the public, the best way to achieve this is to make it
304
+ free software which everyone can redistribute and change under these terms.
305
+
306
+ To do so, attach the following notices to the program. It is safest
307
+ to attach them to the start of each source file to most effectively
308
+ convey the exclusion of warranty; and each file should have at least
309
+ the "copyright" line and a pointer to where the full notice is found.
310
+
311
+ <one line to give the program's name and a brief idea of what it does.>
312
+ Copyright (C) <year> <name of author>
313
+
314
+ This program is free software; you can redistribute it and/or modify
315
+ it under the terms of the GNU General Public License as published by
316
+ the Free Software Foundation; either version 2 of the License, or
317
+ (at your option) any later version.
318
+
319
+ This program is distributed in the hope that it will be useful,
320
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
321
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
322
+ GNU General Public License for more details.
323
+
324
+ You should have received a copy of the GNU General Public License along
325
+ with this program; if not, write to the Free Software Foundation, Inc.,
326
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
327
+
328
+ Also add information on how to contact you by electronic and paper mail.
329
+
330
+ If the program is interactive, make it output a short notice like this
331
+ when it starts in an interactive mode:
332
+
333
+ Gnomovision version 69, Copyright (C) year name of author
334
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
335
+ This is free software, and you are welcome to redistribute it
336
+ under certain conditions; type `show c' for details.
337
+
338
+ The hypothetical commands `show w' and `show c' should show the appropriate
339
+ parts of the General Public License. Of course, the commands you use may
340
+ be called something other than `show w' and `show c'; they could even be
341
+ mouse-clicks or menu items--whatever suits your program.
342
+
343
+ You should also get your employer (if you work as a programmer) or your
344
+ school, if any, to sign a "copyright disclaimer" for the program, if
345
+ necessary. Here is a sample; alter the names:
346
+
347
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
348
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
349
+
350
+ <signature of Ty Coon>, 1 April 1989
351
+ Ty Coon, President of Vice
352
+
353
+ This General Public License does not permit incorporating your program into
354
+ proprietary programs. If your program is a subroutine library, you may
355
+ consider it more useful to permit linking proprietary applications with the
356
+ library. If this is what you want to do, use the GNU Lesser General
357
+ Public License instead of this License.
mollie-payments-for-woocommerce.php ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plugin Name: Mollie Payments for WooCommerce
4
+ * Plugin URI: https://github.com/mollie/WooCommerce
5
+ * Description: Accept payments in WooCommerce with Mollie iDEAL, Credit Card, Bancontact/Mister Cash, Bank Transfer, PayPal, Bitcoin, paysafecard and SOFORT Banking
6
+ * Version: 2.0
7
+ * Author: Mollie
8
+ * Author URI: https://www.mollie.com
9
+ * Requires at least: 3.8
10
+ * Tested up to: 3.8
11
+ * Text Domain: mollie-payments-for-woocommerce
12
+ * Domain Path: /i18n/languages/
13
+ * License: GPLv2 or later
14
+ */
15
+ require_once 'includes/mollie/wc/autoload.php';
16
+
17
+ load_plugin_textdomain('mollie-payments-for-woocommerce', false, 'mollie-payments-for-woocommerce/i18n/languages');
18
+
19
+ /**
20
+ * Called when plugin is loaded
21
+ */
22
+ function mollie_wc_plugin_init ()
23
+ {
24
+ if (!class_exists('WooCommerce'))
25
+ {
26
+ /*
27
+ * Plugin depends on WooCommerce
28
+ * is_plugin_active() is not available yet :(
29
+ */
30
+ return;
31
+ }
32
+
33
+ // Register Mollie autoloader
34
+ Mollie_WC_Autoload::register();
35
+
36
+ // Setup and start plugin
37
+ Mollie_WC_Plugin::init();
38
+ }
39
+
40
+ /**
41
+ * Called when plugin is activated
42
+ */
43
+ function mollie_wc_plugin_activation_hook ()
44
+ {
45
+ // WooCommerce plugin not activated
46
+ if (!is_plugin_active('woocommerce/woocommerce.php'))
47
+ {
48
+ $title = sprintf(
49
+ __('Could not activate plugin %s', 'mollie-payments-for-woocommerce'),
50
+ 'Mollie Payments for WooCommerce'
51
+ );
52
+ $message = ''
53
+ . '<h1><strong>' . $title . '</strong></h1><br/>'
54
+ . 'WooCommerce plugin not activated. Please activate WooCommerce plugin first.';
55
+
56
+ wp_die($message, $title, array('back_link' => true));
57
+ return;
58
+ }
59
+
60
+ // Register Mollie autoloader
61
+ Mollie_WC_Autoload::register();
62
+
63
+ $status_helper = Mollie_WC_Plugin::getStatusHelper();
64
+
65
+ if (!$status_helper->isCompatible())
66
+ {
67
+ $title = 'Could not activate plugin ' . Mollie_WC_Plugin::PLUGIN_TITLE;
68
+ $message = '<h1><strong>Could not activate plugin ' . Mollie_WC_Plugin::PLUGIN_TITLE . '</strong></h1><br/>'
69
+ . implode('<br/>', $status_helper->getErrors());
70
+
71
+ wp_die($message, $title, array('back_link' => true));
72
+ return;
73
+ }
74
+ }
75
+
76
+ /**
77
+ * Called when admin is initialised
78
+ */
79
+ function mollie_wc_plugin_admin_init ()
80
+ {
81
+ // WooCommerce plugin not activated
82
+ if (!is_plugin_active('woocommerce/woocommerce.php'))
83
+ {
84
+ // Deactivate myself
85
+ deactivate_plugins(plugin_basename(__FILE__));
86
+
87
+ add_action('admin_notices', 'mollie_wc_plugin_deactivated');
88
+ }
89
+ }
90
+
91
+ function mollie_wc_plugin_deactivated ()
92
+ {
93
+ echo '<div class="error"><p>' . sprintf(__('%s deactivated because it depends on WooCommerce.', 'mollie-payments-for-woocommerce'), Mollie_WC_Plugin::PLUGIN_TITLE) . '</p></div>';
94
+ }
95
+
96
+ register_activation_hook(__FILE__, 'mollie_wc_plugin_activation_hook');
97
+
98
+ add_action('admin_init', 'mollie_wc_plugin_admin_init');
99
+ add_action('init', 'mollie_wc_plugin_init');
readme.txt ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Mollie Payments for WooCommerce ===
2
+ Contributors: l.vangunst
3
+ Tags: mollie, payments, woocommerce, e-commerce, webshop, psp, ideal, sofort, credit card, creditcard, visa, mastercard, mistercash, bancontact, bitcoin, paysafecard, banktransfer, overboeking, betalingen
4
+ Requires at least: 3.8
5
+ Tested up to: 4.2.4
6
+ Stable tag: 2.0
7
+ License: GPLv2 or later
8
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
+
10
+ Accept payments in WooCommerce with Mollie iDEAL, Credit Card, Bancontact/Mister Cash, Bank Transfer, PayPal, Bitcoin, paysafecard and SOFORT Banking
11
+
12
+ == Description ==
13
+
14
+ This plugin will add support for the following Mollie payments methods to your WooCommerce webshop:
15
+
16
+ * iDEAL
17
+ * Banktransfer
18
+ * Credit card
19
+ * Bancontact / Mister Cash
20
+ * PayPal
21
+ * SOFORT banking
22
+ * Belfius Direct Net
23
+ * Bitcoin
24
+ * paysafecard
25
+
26
+ Please go to the [signup page](https://www.mollie.com/nl/signup) to create a new Mollie account and start receiving payments in a couple of minutes. Contact info@mollie.com if you have any questions or comments about this plugin.
27
+
28
+ = Features =
29
+
30
+ * Support for all available Mollie payment methods
31
+ * Edit order, title, description for every payment method
32
+ * Refunds (WooCommerce 2.2+)
33
+ * Multiple translations: English, Dutch, German and French
34
+ * Event log for debugging purposes
35
+ * WordPress Multisite support
36
+
37
+ == Frequently Asked Questions ==
38
+
39
+ = I can't install the plugin, the plugin is displayed incorrectly =
40
+
41
+ Please temporary enable the [WordPress Debug Mode](https://codex.wordpress.org/Debugging_in_WordPress). Edit your `wp-config.php` and set the contants `WP_DEBUG` and `WP_DEBUG_LOG` to `true` and try
42
+ it again. When the plugin triggers an error, WordPress will log the error to the log file `/wp-content/debug.log`. Please check this file for errors. When done, don't forget to turn off
43
+ the WordPress debug mode by setting the two contants `WP_DEBUG` and `WP_DEBUG_LOG` back to `false`.
44
+
45
+ = I get a white screen when opening ... =
46
+
47
+ Most of the time a white screen means a PHP error. Because PHP won't show error messages on default for security reasons, the page is white. Please turn on the WordPress Debug Mode to turn on PHP error messages (see previous answer).
48
+
49
+ = The Mollie payment gateways aren't displayed in my checkout =
50
+
51
+ * Please go to WooCommerce -> Settings -> Checkout in your WordPress admin and scroll down to the Mollie settings section.
52
+ * Check which payment gateways are disabled.
53
+ * Go to the specific payment gateway settings page to find out why the payment gateway is disabled.
54
+
55
+ = The order status is not getting updated after successfully completing the payment =
56
+
57
+ * Please check the Mollie log file located in `/wp-content/uploads/wc-logs/` or `/wp-content/plugin/woocommerce/logs` for debug info. Please search for the correct order number and check if Mollie has called the shop Webhook to report the payment status.
58
+ * Do you have maintenance mode enabled? Please make sure to whitelist the 'wc-api' endpoint otherwise Mollie can't report the payment status to your website.
59
+ * Please check your Mollie dashboard to check if there are failed webhook reports. Mollie tried to report the payment status to your website but something went wrong.
60
+ * Contact info@mollie.com with your Mollie partner ID and the order number. We can investigate the specific payment and check whether Mollie successfully reported the payment state to your webshop.
61
+
62
+ = I have a different question about this plugin =
63
+
64
+ Please contact info@mollie.com with your Mollie partner ID, please describe your problem as detailed as possible. Include screenshots where appropriate.
65
+ Where possible, also include the Mollie log file. You can find the Mollie log files in `/wp-content/uploads/wc-logs/` or `/wp-content/plugin/woocommerce/logs`.
66
+
67
+ == Screenshots ==
68
+
69
+ 1. The global Mollie settings are used by all the payment gateways. Please insert your Mollie API key to start.
70
+ 2. Change the title and description for every payment gateway. Some gateways have special options.
71
+ 3. The available payment gateways in the checkout.
72
+ 4. The order received page will display the payment status and customer details if available.
73
+ 5. The order received page for the gateway banktransfer will display payment instructions.
74
+
75
+ == Installation ==
76
+
77
+ = Minimum Requirements =
78
+
79
+ * PHP version 5.2 or greater
80
+ * PHP extensions enabled: cURL, JSON
81
+ * WordPress 3.8 or greater
82
+ * WooCommerce 2.1.0 or greater
83
+
84
+ = Automatic installation =
85
+
86
+ 1. Install the plugin via Plugins -> New plugin. Search for 'Mollie Payments for WooCommerce'.
87
+ 2. Activate the 'Mollie Payments for WooCommerce' plugin through the 'Plugins' menu in WordPress
88
+ 3. Set you Mollie API key at WooCommerce -> Settings -> Checkout (or use the *Mollie Settings* link in the Plugins overview)
89
+ 4. Your done, the active payment methods should be visible in the checkout of your webshop.
90
+
91
+ = Manual installation =
92
+
93
+ 1. Unpack the download package
94
+ 2. Upload the directory 'mollie-payments-for-woocommerce' to the `/wp-content/plugins/` directory
95
+ 3. Activate the 'Mollie Payments for WooCommerce' plugin through the 'Plugins' menu in WordPress
96
+ 4. Set you Mollie API key at WooCommerce -> Settings -> Checkout (or use the *Mollie Settings* link in the Plugins overview)
97
+ 5. Your done, the active payment methods should be visible in the checkout of your webshop.
98
+
99
+ Please contact info@mollie.com if you need help installing the Mollie WooCommerce plugin. Please provide your Mollie partner ID and website URL.
100
+
101
+ = Updating =
102
+
103
+ Automatic updates should work like a charm; as always though, ensure you backup your site just in case.
104
+
105
+ == Changelog ==
106
+
107
+ = 2.0.0 =
108
+ * Complete rewrite of our WooCommerce plugin to better follow WordPress and WooCommerce standards and add better support for other plugins.
109
+
110
+ == Upgrade Notice ==
111
+
112
+ = 2.0.0 =
113
+ * The 2.x version of the plugin uses a different plugin name. You can still run version 1.x of our plugin if you want to temporary
114
+ keep support for payments created using version 1.x. Hide the old payment gateways by disabling the old 'Mollie Payment Module' payment gateway in WooCommerce -> Settings -> Checkout.