Skip to content

Commit fef9ebf

Browse files
authored
Merge pull request #189 from blacklanternsecurity/dev
Dev->Main
2 parents a8f7ab7 + 2466967 commit fef9ebf

11 files changed

+1403
-372
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Inspired by [Blacklist3r](https://github.com/NotSoSecure/Blacklist3r), with a de
3636
| Laravel_SignedCookies | Checks 'laravel_session' cookies for known laravel 'APP_KEY' |
3737
| ASPNET_Vstate | Checks for a once popular custom compressed Viewstate [code snippet](https://blog.sorcery.ie/posts/higherlogic_rce/) vulnerable to RCE|
3838
| Rack2_SignedCookies | Checks Rack 2.x signed cookies for known secret keys |
39+
| Yii2_SignedCookies | Checks Yii2 framework's cookie validation keys for known secrets |
3940

4041
## Installation
4142

@@ -282,6 +283,7 @@ Express_SignedCookies_CS = modules_loaded["express_signedcookies_cs"]
282283
Laravel_SignedCookies = modules_loaded["laravel_signedcookies"]
283284
ASPNET_Vstate = modules_loaded["aspnet_vstate"]
284285
Rack2_SignedCookies = modules_loaded["rack2_signedcookies"]
286+
Yii2_SignedCookies = modules_loaded["yii2_signedcookies"]
285287
286288
287289
x = ASPNET_Viewstate()
@@ -409,6 +411,14 @@ if r:
409411
else:
410412
print("KEY NOT FOUND :(")
411413
414+
x = Yii2_SignedCookies()
415+
print(f"###{str(x.__class__.__name__)}###")
416+
r = x.check_secret("0bb72f36d041a3a022f231eebe114889ee442092ee350242ffb2d4bb53887a81a%3A2%3A%7Bi%3A0%3Bs%3A4%3A%22lang%22%3Bi%3A1%3Bs%3A7%3A%22English%22%3B%7D")
417+
if r:
418+
print(r)
419+
else:
420+
print("KEY NOT FOUND :(")
421+
412422
```
413423
414424
#### Carve

badsecrets/base.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ def carve(self, body=None, cookies=None, headers=None, requests_response=None, *
112112

113113
if headers:
114114
for header_value in headers.values():
115+
115116
# Check if we have a match outright
116117
r = self.check_secret(header_value)
117118
if r:
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# flask_secret_keys wordlist shamelessly copied from https://github.com/Paradoxis/Flask-Unsign <3 <3 <3
2+
3+
import re
4+
from badsecrets.base import BadsecretsBase
5+
import hmac
6+
from hashlib import sha256
7+
from urllib.parse import unquote
8+
9+
10+
class Yii2_SignedCookies(BadsecretsBase):
11+
# Match 64 hex chars (SHA256) followed by PHP serialized data
12+
identify_regex = re.compile(r"^[a-fA-F0-9]{64}a%3A[a-zA-Z0-9%]+$")
13+
description = {"product": "Yii2 Signed Cookie", "secret": "Yii2 cookieValidationKey", "severity": "HIGH"}
14+
15+
def verify_yii2_cookie(self, cookie_value, validation_key):
16+
17+
# URL decode the whole value first
18+
decoded_cookie = unquote(cookie_value)
19+
20+
# Split decoded value into signature and data
21+
signature = decoded_cookie[:64]
22+
data = decoded_cookie[64:].encode("utf-8")
23+
24+
# Calculate HMAC-SHA256 using raw key
25+
mac = hmac.new(validation_key.encode("utf-8"), data, sha256)
26+
expected_signature = mac.hexdigest()
27+
return signature.lower() == expected_signature.lower()
28+
29+
def check_secret(self, yii2_cookie):
30+
if not self.identify(yii2_cookie):
31+
return None
32+
33+
for password in set(self.load_resources(["yii2_cookieValidationKeys.txt", "top_100000_passwords.txt"])):
34+
password = password.rstrip()
35+
if self.verify_yii2_cookie(yii2_cookie, password):
36+
return {"secret": password, "details": "Valid cookieValidationKey found"}
37+
38+
def get_hashcat_commands(self, yii2_cookie, *args):
39+
return [
40+
{
41+
"command": f"hashcat -m 19700 -a 0 {yii2_cookie} <dictionary_file>",
42+
"description": "Yii2 Cookie Validation Key",
43+
"severity": "HIGH",
44+
}
45+
]
46+
47+
def carve_regex(self):
48+
return re.compile(r"[^=]+=([a-fA-F0-9]{64}a%3A[^;]+)")

badsecrets/resources/laravel_app_keys.txt

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1-
base64:INVALID
1+
base64:/9QshpxORp0Mt68zOLiDNqdwRjxQFbThs0y1bsJ9+L4=
2+
base64:/e/SRpeUq1QRFRVvpqQzuidKc5rA0VgvxnlI94sm/NU=
3+
base64:/huj8pIAzAQO4MIFwrPDdh5xA8LP9YdGwkhsExLs3JE=
4+
base64:/IvXHEB/EVa+ZsEeolHvq0HtFMLrC8iWlKi1TadvefA=
5+
base64:/l71HcP1CJX0uUUbu5chm7EBNx0za3boPuRypq46MSs=
6+
base64:/lcdR9cfwQMItnAUH7+zYc2gUsqxeErCyvowfaliMyQ=
7+
base64:/LSpuNJfJsGEdF1WyNAfXdZr2rpaacMoq9i8Vo31plo=
8+
base64:/mA6zcfJpsysJ1Ubrkz7YqkS8vBs4TpwDCpVm6BnvQw=
9+
base64:/Qsc0nZlYC6l2AwBNPfNuVa6Fj9ct4lDLU7KPGgZ/dY=
10+
base64:/SoV+BrjW7YPOWXleZMqwu0qTHKlhqPIHX6m9W15mug=
211
base64:+0WM4iV1pkMedDbbLsA6SpO+aLaXrsfMy4NkDupjwQ8=
312
base64:+1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a=
413
base64:+4ai/RJ6Xl2RP6WxOp1svwylcQJB5yFS8C56b1z9w8M=
@@ -16,27 +25,20 @@ base64:+SlcmMXT7PlVUyb51HZ4oqMZrDpWrvJsZIsDKoJCAOM=
1625
base64:+u5YjMwsJrBitDF3uVARLOlO3iwe0m64k03k4BCBFoo=
1726
base64:+urN9gwinpcMgKT0CpDRdB+OpiAsl48dfbwOIP5Mx7c=
1827
base64:+YMHeDN6re2ecTfhNUXdzk4hO9ajH5cqM8ENf8dlnQE=
19-
base64:/9QshpxORp0Mt68zOLiDNqdwRjxQFbThs0y1bsJ9+L4=
20-
base64:/e/SRpeUq1QRFRVvpqQzuidKc5rA0VgvxnlI94sm/NU=
21-
base64:/huj8pIAzAQO4MIFwrPDdh5xA8LP9YdGwkhsExLs3JE=
22-
base64:/IvXHEB/EVa+ZsEeolHvq0HtFMLrC8iWlKi1TadvefA=
23-
base64:/l71HcP1CJX0uUUbu5chm7EBNx0za3boPuRypq46MSs=
24-
base64:/lcdR9cfwQMItnAUH7+zYc2gUsqxeErCyvowfaliMyQ=
25-
base64:/LSpuNJfJsGEdF1WyNAfXdZr2rpaacMoq9i8Vo31plo=
26-
base64:/mA6zcfJpsysJ1Ubrkz7YqkS8vBs4TpwDCpVm6BnvQw=
27-
base64:/Qsc0nZlYC6l2AwBNPfNuVa6Fj9ct4lDLU7KPGgZ/dY=
28-
base64:/SoV+BrjW7YPOWXleZMqwu0qTHKlhqPIHX6m9W15mug=
2928
base64:027oA4CMT9z2GAdDj1OkGAbqjJ38qHTX1lf0Zm2NIqA=
3029
base64:05aGX08JrSEXNBarsG/0pqBTZxGjHPR/WgFS6SnRLSc=
3130
base64:0dLDhNon3ilgxe1wzTKttICV5yfWcjVVbwytHN9Dtps=
3231
base64:0JpSMQ/V8KcRO1F1IcsQaVBxdF35ISL6uqLKUKuwX1A=
32+
base64:0l/IxrMOxcym1ruRNh+9MJmQtcevJGzpxkHDXAAMpgg=
3333
base64:0ntdidtF9oEmNAsXFjr2RrdEac1q4wz7S9PKU5E2LnY=
34+
base64:0SfZIs9xW2Sf7O4f7KLkGE1lyUtTbxMS0qSTmbOjeCg=
3435
base64:0WKY8nVgsmp+NNOAaJBJ7FR64pwib8J/cL1Bob6PI6o=
3536
base64:1+jNMZs+hsN7bMSHnYdnBPRD8UTrbSB/Zad/GkxjvRU=
3637
base64:1A/PQiiIkwNm04ftgLPzG20N//X6XUgoZI25wWYe/bU=
3738
base64:1bcYafP1Yn1HTtvKQ6fHnNAPbJSE8l1G7dBp8FhPiao=
3839
base64:1BSk6zzoX6a0u3+cB3DV/egoB+Gw90ssPilyNa+ZbU0=
3940
base64:1ezeTL65y7OzLZehrazIWWfIM61mKDjmfOSvIjBrcfY=
41+
base64:1fHdW86pSowSnqXr6Rw/DHgjMH7aahtqvW8NnfYCLv8=
4042
base64:1HPidpybaLPZnlnoylB4LiDnf1iSMR8lNUEqAUDSNCk=
4143
base64:1UhNx2BvXB/v3XoxclINNK2S/BriFCVD5yBFv+J3sUI=
4244
base64:1uoci6jiUHN4hsJK1FycdhLRF4NS59vt40zi6GNAqbA=
@@ -51,6 +53,7 @@ base64:2EjGMkLNFX3wl4YbKvfTvIcXt7uroeeN/eVzgo/ulzI=
5153
base64:2ew0gnfULJPlKpjCeSqr5IgqthFVKPlpW0MdoTGUUsM=
5254
base64:2fl+Ktvkfl+Fuz4Qp/A75G2RTiWVA/ZoKZvp6fiiM10=
5355
base64:2haEyzFO5qNXDIXFiCRpIWPcmdoorjnXH2rcUaolBmI=
56+
base64:2kUnZwV0mkuw1bT/H2CutiuorYiInXgyRolcAf+iDko=
5457
base64:2lY+ePqCW7DKC4g16Wv22YBQ/GwV95al0L7yy6Dfu5o=
5558
base64:2P5vn6m7ZImfkPhzjcFsIybivBPf1Qu4tT6MJ6nOFyU=
5659
base64:2rmIsvJq32TFy6Mfa1vRwXs6RoGdYgTX1XCn4KcGuj8=
@@ -77,6 +80,7 @@ base64:40Hxff7sdxEVjzDIXViOKdonGNigp3y5eFpKnIl2neo=
7780
base64:41DuhNKjcFKtUDMCjsat9uyIzkLc6CFsu0lqLQ9OAXQ=
7881
base64:43fq3YvfIYSdy8AhVKCYgtUrSNU7ACxVLGMN0a+Nnlg=
7982
base64:44964KZpnM5M+pOjc6ZOK4xxuaEOp2MV8c3OvDv/uLc=
83+
base64:44qFOYQmLnxQ4/QI1J32AIxfRRs+3rIE9i9bXY6yMhA=
8084
base64:47qXQqQhQabxJ9HYbh5bNBUc0tv7AS1CBxeUg6+9Bmo=
8185
base64:496RTpf4K7tRWPEk/QspS50xB6pKRlWqZTB1pv4748s=
8286
base64:4a+OUff6lLTn0SAkhmQOOvTAzY53ppLva2blqWjvH4c=
@@ -89,6 +93,7 @@ base64:4OdmB2m2dgewlczC+YqifPLDk0RtHCzf8C3UPf5IPXw=
8993
base64:4R9W47bT7VnNGF7fnG6W9gQqE7958DmxU2t29Tmc+IE=
9094
base64:4rIqxGmv/9+pXJ83UvZ56PBR36u1N7WpPtBIwfjjHJg=
9195
base64:4VY6jyiRg1mo4O9sPWFCabDkDqtUegrRX6A/M07Ebw8=
96+
base64:4YN7psd03OusVfzvJfGHWj1ajm3Muz9x8p7Jp00hoMU=
9297
base64:4yut09GQ2+r4XXEpTSsXR9nhw6W9mT+bTrvkoo5k3pc=
9398
base64:4yuvgSTJQO/bWaj7SsydG8mKzIcj5BjGQKVAQG/+GGQ=
9499
base64:5/vciR3UF9RgO2OKOHSR9Hs3V9kBLjtjzMo9dYYSXhc=
@@ -108,8 +113,9 @@ base64:5uLmjtlC2vp+MgH87G49R7mQ5KvooTQr+s7GdprWAkA=
108113
base64:5uMTdhlfg3IGY4I0uuCResaLGUEzea9bESkDkXj6tS8=
109114
base64:5VIvMYEXaRUdR1vHyDTAh28n4uqngzD6KN4eoEgtBUw=
110115
base64:5XNvZCMI6HPIy4yixRb9VYKFSwhudt2J78ck1oZIluM=
111-
base64:6++9XvT2dbO35wt0AJYGN52u854Q8Fj+s3Oshrtdf+4=
116+
base64:5YrPcBu4obulBkCzE3hUsNmzmYYZbgq32IHrIMMJAkM=
112117
base64:6/ml6L4UUsbHLER7RJsxUFV1l45s7OzCKHsmv1TuX5s=
118+
base64:6++9XvT2dbO35wt0AJYGN52u854Q8Fj+s3Oshrtdf+4=
113119
base64:60+6dygEqCWnHdYOfgTvmxDBab2dv2hd
114120
base64:60LJIcA08R89JLRe1byHzzWmCOgtYpn25lmChZcTX4U=
115121
base64:67F6U1jFu29lU5gaNO4XWYwsYRQECzKIlw8Xhn2G9f4=
@@ -135,11 +141,13 @@ base64:7F6zU1l4SVZVL6VmpUu46b4zCqyMkZFIGnNx6XDrpwo=
135141
base64:7Fjg4VnBR7Bl0iyLHz+1I7y9lr20GWJ0iqfjdHxe+mA=
136142
base64:7Lg2UB1oA1mmvYOyQYsLhF94QWvieMjt4QlNqmiI
137143
base64:7llC+cQGJ7fS58iPY+BRGC2NCGcCmZaqOIcGAfgp1kI=
144+
base64:7m+G7vyCnj1nx8emioA0yW2wpqm/F9aZpvAWEdHl5Kw=
138145
base64:7mbiJ7+YWK7SgZ9d1H9OgkfHEnnowGErn+IJQEO7ocU=
139146
base64:7n2cYSYBxJo0ovtr6AIyk5eytwlewTsruznMdu4IJaI=
140147
base64:7n4MG+3TgK4yipA6Vvu+aRU/2PQ5hggPWNseGnIXhYQ=
141148
base64:7QKM93laOIbjURJMsuqx4uW0CS5H6zzkyQJsss3nySQ=
142149
base64:7UBgNk65N9N5XKu8Jx7QZTxCdjdTIUhAzJvADSNSZ7Y=
150+
base64:7vl1ACgZxfy7zWbcLtjZ2TVIRsA4+zFUBts3xxR6a2s=
143151
base64:7YrxFkYUtnIZlusCVmLC8Oh+oLR8g6XKlYLC66p67ZI=
144152
base64:7zPNEjM9ClSiAlNh1aRFN2KD83Awn1rfMSJRaB+dTRA=
145153
base64:87Ijv8QF7DS5tfaZZtXl19lZYc/OE6+FJVMglKfhpcM=
@@ -156,7 +164,9 @@ base64:8uR9b5TW253zHOSXjUPQAfQvQp5ACKhwBH6M5Q1Go3g=
156164
base64:8uUUY6cysvZ/r+faYcCyhGjbFHy1/aJscQcBVLYQZk4=
157165
base64:8z0XXZqoBBb9GRcDbIPlZ/YcW29RHLEBv6T46/S/bWY=
158166
base64:91teBwphQMScpGl9n1EJ3i9/AsgqregHdAfjZRQTfzg=
167+
base64:98i1FzSlwI3Y5qQ3wafoyEJWKKktrjshOr+wnvGOd4c=
159168
base64:9cogxokq2Bj1qCRLG8AEkGjjbJXU9BI2uA/vtTUMFGQ=
169+
base64:9D74AySW2RLJ89uOze2ofGRyPD/lNlF8uM7fDJQCEHs=
160170
base64:9EB8D3F7ygNyZbTVIDcBIf34CoUfNslFwAylbas/g8w=
161171
base64:9fSl5OzNLcxZG2kjtrC8H9StlvuOuzklXYjl2DjbFc4=
162172
base64:9GBceVvJawucMcgm9USZTnbidF/mhyNKzwy1/mHu3RQ=
@@ -196,6 +206,7 @@ base64:AncvxPyxqpJlD87XriL0FsqzHisEXOsB03mvuE67IQs=
196206
base64:AnWeHWfGLkitEYnHTw43xuZ4qd/pSvKP0RV9dlFXyXg=
197207
base64:ao/1Djd0dv72O1kVrjX4ucVH4DimwqJfnMyzlALdLTI=
198208
base64:aQH6a/dWOf67PeU3MW1K/ynoLdxJkOov5WY6LrAsHlo=
209+
base64:aQRqql6aWPXNnPl5UdczcRGTTDrubfifa6mqLXpAfgw=
199210
base64:ATM10q5JXcL37xckWACJ7xEIImqAeIRaJR0nRR6RT2A=
200211
base64:Aup6zYzXyt2K8D7zDXqS4ltLqw1DnIH1Lw8AeEkhWfY=
201212
base64:aVD9kJ+dZvCiF2uiMMTLl/3aiOqdyObsquvUvfshhFA=
@@ -248,8 +259,10 @@ base64:Ctm7ecWQR5tquhaoNy0aZ1z9fRXRsCWXeRwGfDA3li0=
248259
base64:CUwcJ8WPal9M3lgUjqV6WZG44UZhK04eJItYdBPVsho=
249260
base64:CWOF9XCcUkm9/xzhHa3w+FToqje/FVfbJdhdxs1SF/Q=
250261
base64:CX9KtRoaCEMWeKkSk6IhH14HKDT6yo8EuA8SekrI/U4=
262+
base64:cyRuHSQ4PEjwiS63ozVqdoj7uQmlbPTcgskUxvKrgqE=
251263
base64:cZapUtHxWz8kJI0cYkhMI9o8XJSFFGuX9ZtSRffGyR4=
252264
base64:d1OqYSX7xBMd/thqoLFK4/wQ2iRC0UWXWshrJSbWI7k=
265+
base64:d96Q67bcisr2+mow9I0WTHrLDcTRoAjszN7Z5YKEE/8=
253266
base64:dadz+aCeCiPvmzghdds+ob40lmHHqXV8g446QhSLu7k=
254267
base64:DC7wRRcmBY6OYx30+gylX/+jG6o/VTDMvWfKvbHrP0s=
255268
base64:del2di75oTOJ50raX00YTJ5UBCzZBWtmnXednDnzdqQ=
@@ -274,6 +287,7 @@ base64:E7cSacuN9DWWUc+zI7Og7YrvD2XwAt9WSw4YMQzah1c=
274287
base64:E8bcBtXb4bvGFcbOrle2O7nt+d5ETRs67n7mhaLTNPg=
275288
base64:e9YMLuQLZAZ1S73KnliPMmwcR9uos0KOwG4c9lZTwZM=
276289
base64:ec2Cw6WQfuaut4IxUrWL0JYGNxqnD5zAsXYKHbCLPnM=
290+
base64:ecTVlYPtHv05xacO1GZhcqmXVsnO2XRwIjp9l8MnCwI=
277291
base64:eeD988Sm1GSinj5zkHiqUXsXcMD2eo4Noqowfr9p3DE=
278292
base64:eftWZbNMrXoZe0vz1Wibap32jW3qDpUSsycgspS2EnU=
279293
base64:EglxUtygy2OhkAX1YsS8MsMEDzNQsJa5cJ9mjtiSiwk=
@@ -286,6 +300,7 @@ base64:ePteyZr1Cf2eSsIyXhvImo62ir5GtWKSIOxVQoNgjpE=
286300
base64:erCz9UkoU7rFGTNReb+GkWCGmhyn2Dlbg8rZLnbLfCA=
287301
base64:eY8+oYc5zrlEyU/3KsSWeJk0mf7Z4oNEm1fxNQjTSbY=
288302
base64:eZMEwmBRSOY5gUkDeARf3EvkeHu2oJKJu1R2UcYQ/go=
303+
base64:f/YSunQ1hRBmFNTYOCVFg0VCKW2pZvNBPirqQ3x1xNc=
289304
base64:F0KzKT+u97hkQ8S1BENcREmHjJ71wjrZUOkiW6SB0Gk=
290305
base64:F0Ww+bxXeWvG4ErWbpqSM40are1mBjRaB/H8G6dA8KA=
291306
base64:f5LrwnPzdEXl2mJYzEsp2nHSYUU7krkfINKzO5ZuIBc=
@@ -363,6 +378,7 @@ base64:h7hzIY1l7zQ38eOSKa3XxNp9PIvzrwwlMzn7jnCAqEw=
363378
base64:Hc0VUHCGKq3B7poHbkD/c658q3jR0CQjtS3q/eosvDM=
364379
base64:hcd7LG5XWs+r30DggGLIesbPjaqGHq9ng7mGN557T2U=
365380
base64:HDFXsjF5AVPOwuSNIva5kg8llvsevzd9PYOpG6Yfhpo=
381+
base64:HdS3j1UJe2BQde1DxUbFPTVF5SGMm9FSjHhpDt6ujTo=
366382
base64:HG4+m9jTf6xlVLhTpi2UhTNKCowdahrt8rfccihv
367383
base64:hgMrLmXy4kpV4wUnAkkbs1w7caiPipKs3EG+2jTDh2s=
368384
base64:HGT19Mfm6j77W2N6K3GXqJqqNgUromHg41lRFHesEJc=
@@ -391,6 +407,7 @@ base64:iA9/zEmqK2ySEibgGJFc1xoKoQPGWpU8j3GdDIYIqlI=
391407
base64:IAxP4IGbQOYZiOOK6PI8naPtb41KEZijUywWZIIMqjc=
392408
base64:IB8eJbI9VUxmpEWRe3UWDBgxqkTWagkRQh6ReMwnmSM=
393409
base64:iClDY+duwZa72aoE/ObAYFqGwRbV4cAyKvsffTOWb8c=
410+
base64:icTi/sxVmvHJkPflNyyKoLkQWAbmlZQDNidjffjGmlI=
394411
base64:IdDlpLmYyWA9z4Ruj5st1FSYrhCR7lPOscLGCz2Jf4I=
395412
base64:IdGwtYxQExgt+TaXvitCNAmNeVoowt0Bsd0y1Ru5m50=
396413
base64:IfMsCgGwgCUDsxLQvFihcYVB7Uel3YWe5J0EEdqkf8g=
@@ -407,6 +424,7 @@ base64:iMO0ExvW1uuTJgnAkownIko9OaTbwGWl5nnPTOhcxec=
407424
base64:In8bso+Tfs+gUUSaCtZpSJs4o2fQPSw2Q7OLx9Rc3n0=
408425
base64:iN9gNbccVffo9TjSA0YuuyeWKVH+FeNTmPPqeA/8PWk=
409426
base64:iNEI8FiHSP/zm5ISVlml8Nf+E924Zp2no5lzP/DWFqo=
427+
base64:INVALID
410428
base64:IPL8y+brq2psDGAd7znr8rU6NmLAtCpnkT5Kh0DR82g=
411429
base64:ipvsN3GKn1Se+QWfbA86ZrVBAvRvRSQgq5vlVqWSDMI=
412430
base64:IrvaDrgBHezmt/JfxeZZIf7+HvJTl40lCXZXwfCi0N4=
@@ -517,6 +535,7 @@ base64:lVrRVLVTfFO8CHvZvedVHnZ21sGUhqO5jnCj0TtMRtc=
517535
base64:lZJyDj1tQ0fcYCheHwBm7UqXl4oNJrJyHgpm5dGKuPA=
518536
base64:M+fgn8t/WZf2nx1pRoAI6Il6F/s1zJDTg2Siq/P6yI0=
519537
base64:m01VwGwCcwKocDsWyJ2PpEy1lBnKq1hvNuZNtmpoeAY=
538+
base64:m0fxndX379uMv61oM5kyePZqaBMFe7JvCTywnkwbe+A=
520539
base64:M0r3Ha/4VkLvQztXmWsvk9FINXBr8kVeVq17lx0SXVc=
521540
base64:m50/rvsDU4f+E0PEcPcm69t+0CCEkNPCYPblrf/dP4k=
522541
base64:M5rIAOPDDprYiZ59yms8zW9qeYyL9+N8RwMRTHobwz8=
@@ -539,6 +558,7 @@ base64:MknQCbr1YwZRWyI5dbe6r48gTkrxQE/bwqEzgVkO5s8=
539558
base64:MKUlaO9Ki+k13O+Rj2qHZhbRMJBT8JrWuSrSyijH6m4=
540559
base64:Mm3+1mbz89XLkMZQu595B7VHXvTJA5dkkp3ZaTToc58=
541560
base64:mneztAePqDIxZRR6phyEmX8QcZI3FNk5Kip9+u4ePLI=
561+
base64:MpcvOjqGOqF2EQWynK1VSDOAJM7AtGFhu62TSAGpcSw=
542562
base64:mrbYgRdSzkUlGSb/kadVM4kgmtCw4f0bhAvjHDedEy0=
543563
base64:mrgPzJEAoEPNaM2J6j4h5D8XCbSo7YpfifRwhDOXnBE=
544564
base64:mskdvikF91Lz7F1xp2MItkxLAuj7Y2zdYfOBj1Uel+o=
@@ -608,6 +628,7 @@ base64:pbcRYqzZvrh5ibJO4vWu8TWZ1PuBdJb5ZN5Dyuyd4Bg=
608628
base64:pdFRDSmSuigoy3BiyCCp6rj3RUVxE9bXfTKeO3WM7O8=
609629
base64:PGRap+Cn11couIxZAF03fMaGxSmOMWyi6HLLL+K7neI=
610630
base64:PgRq6c7nezHMR5K9PB3hR8ceTDzkxD19733fbzD7uKk=
631+
base64:pGwNRHBYg+/GuUZ6N9GSfb+cFrCED+0t0yjl+E7OI0g=
611632
base64:pHA74AODncjDvqAUeQNhMqh5rEyYivTZP2i0VY4EW5I=
612633
base64:PHBfgngQoOlPv203o1AZqyeqNYL4EXhxKZqNgEVLA54=
613634
base64:PJGLH/WytRcP+hSQJgSKCv/rFNS3HVheUU5aTm/hoWQ=
@@ -636,6 +657,7 @@ base64:qCdRwQ4lM0ajvQWUv6qNarGcyUiw8zxmHPMLpv8GU2Y=
636657
base64:qEVMM82S+VkvIjvIxO/fFECHxyZOjchvQqrT/zA8/po=
637658
base64:QFIlbXa1UjSO9oR0jUXeVPrLJsB4PYkab1mmi+SJOLA=
638659
base64:qfTHCI2GJpPQc06Cve+ytXSCRMXu6Wj/ZXm21Wc61EA=
660+
base64:qHr09R0bEm/pFwlRvFMfvka+jWXwmGN693ueNMoFgzc=
639661
base64:Qkl8TUh4zhf9ZF110E3EcMg5LhJKWqp6W4/7e/AA03Y=
640662
base64:qLwyFbsu0eMKV7u+NofhfgOhslVlrWDfgMCi4TNyp5Q=
641663
base64:QOz1K6l4udI9PKPZIEFYyRv7mIS9XadFH0omcptXW8E=
@@ -670,12 +692,14 @@ base64:RJXd3aXvduowbZg98AcfnHmd0CTrCRf869edwFyBZZM=
670692
base64:RK7W5ernW3hypjD1qKcgaUG29NkreHy7WagdONpxvUM=
671693
base64:Rot1GA0vPhQglKPoiHa+z6QFv6OMo25sN/UIULJZKSs=
672694
base64:rqmUBaPQcU328ZN96BrrGwXvSPjNyr8LxQRapSRRKy0=
695+
base64:RR++yx2rJ9kdxbdh3+AmbHLDQu+Q76i++co9Y8ybbno=
673696
base64:RS5qESNbvwpYJO9akWf1APqjJv43EpeuY+PBjxkGZLU=
674697
base64:rSgGSW9WFVlgaV8U6gGz2PQed3e2EfjQRLgHzP78sVA=
675698
base64:rStQqLzIFBjKtsxn526tDLQqNZCpELAgjz8U0NnPFkc=
676699
base64:rvFZAdijuOB3q6BmVmZ5XoJSlX57UmmpcvmuIoOf/oA=
677700
base64:RVQgNW0UecWpfrzuX0KKMjIgxYjONf0X2qdD6sr++KI=
678701
base64:S24F5flCaVF7VAzfamro3Kqm9mb9boeU4H9aXl22KHI=
702+
base64:S2NVQv9IxQvBqtHoTaYtdPb7EGt+4DN20oVp9vwd9kQ=
679703
base64:S2Y1bDZHaEZBdmNOV1VlandUbjNJOVJsaDBQNDV6emU=
680704
base64:s3F01KNrdYp7CVFeqhGVPJzoY9K1516eHb1y6nBjV8k=
681705
base64:s3LcgGeF/Gd49vO5Jq8TbOuBrUtBbAl+ulc3gbeB5mc=
@@ -686,6 +710,7 @@ base64:s9OoQAgjmQ6YmhOCYeBG50VfHe0a89nBvPHJd4qgnD0=
686710
base64:SCdhAqTtqYsiKvHSHD80zfit1nYn7U84+rfL9MDc8To=
687711
base64:sci4EjvwaZroPEsHbxmI6EqQ7sHODjSy5TRlfXj4Gx8=
688712
base64:SewjCpfUYYstuwKs09prsZXaGrvcPVQnn5QQpSCkqY4=
713+
base64:SFTS6WWGj1iqMfkYK9LaMwTsG0rfqVlwzH5wNp1s+/o=
689714
base64:SGJITnJXZ1NNSXlEVWRwU29BVHRodGhwOXhxREV3OEk=
690715
base64:SHy+rpI6zLpOq+GofMpKYHx8L9Gd3FW5A+7WpwF5MoM=
691716
base64:siU5u+dQQzNZSjg8E+FQzQuxb9PunU8l7HAB96HVhio=
@@ -732,11 +757,13 @@ base64:tvpEqAYAyWqTG/kh4vdkUeY8+JVLPGvZqTx3eNmU45U=
732757
base64:TVX4Zm4Ccx5Qxzcc+SPX0NtmMONaHTCHOXAvQ4SVk7E=
733758
base64:TWrybYY8BDKuRFnC85czc0dBSrUc/K+vmZV75pZwHSw=
734759
base64:tzIJe+FKENnMsPmSp+Iuf4ktwueeBCGDJoXHVwG75XY=
760+
base64:u//vIpsiKxrbkYoGY7ZVV+n7VjObO/QeofukQLD4OJI=
735761
base64:U+v0+vHAwrchxrhk
736762
base64:u07w3fIEiBnOwMIPV+q9Z7KlQusI4B3dqE0XcNCmdEE=
737763
base64:u4CzZUFTwd/U2FLsf5KE55tlsSIcOla2+H5m/wlaXvM=
738764
base64:u9+bCGM4fH4nVKTVeSvtg1OvfnvBU1IBbppBTiepnIg=
739765
base64:U9lXDXOaM6r0jy0cDo/4mZ+VNhm9X2XqMfPv3Rh2yfU=
766+
base64:UbAcJDlmYHjI3i2Dr+6/ogFa+j/MU5uOCy7b8gpWL70=
740767
base64:UbsnQQ0KSMOg3CTOBb+Fd/8GNkaaPKaZMFWBzrTK/v4=
741768
base64:UCfgTCY1PYHCii+kT6F6V088hZCxNnSIa7uGJmS6zHs=
742769
base64:UdAH2B63rlotjrkSSsj3Hppy4gbfr+OeHvtSdF9r9q8=
@@ -756,6 +783,7 @@ base64:usWIs2TR5YbilKBw3AYHRffsLWhnIMc6zI7ehImi5Oo=
756783
base64:UYTiyq0ttRIAJhc5MxXif2CyCBO1uBPoZOr9M9Gasqo=
757784
base64:uz3Q
758785
base64:V19oaHyTnH+qiak1hsn96VeNqAc2CUYuiW+twZ2D8dc=
786+
base64:V2r76Ak/Q5Vr9uMwmbKhDmAeiejZuFaQ4w7qkJpYzig=
759787
base64:V8K2dcGH2cEkeYfmmTNDJJu0z6nAupnbMg93QNyHjTI=
760788
base64:VA2CKnoO2HiKUAp7Qh3W
761789
base64:VBLjdBJyRsXzlYpXkaHEPHliE9Ny1iZauzdAv8k2bY8=
@@ -791,6 +819,7 @@ base64:wBUOB+QR0BlmF0+BRAvL3czJFvKThPYEH8v0R1dW2rs=
791819
base64:wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA=
792820
base64:Wea1JQnkL9W25wyk1ne1IDaAxQQg1ykrU5CDa4M7KYI=
793821
base64:weJMCPc0SVAurD1YEeN7AmGoUuIH2P4qpbgv2zE1sUQ=
822+
base64:Wg214XomSL4anMxQUS8tj00IvDsouRT2K4Qh46s+J2Y=
794823
base64:WgjYR4JhhJyZXccYSL3a3MQbnFhw4D5qYD5cVmxISeI=
795824
base64:WIreMr8bdQG20oCGRCtE8RiCPzxCybh59TfM9miuONw=
796825
base64:wj6alGJV4kVTflyJDal7bKXV8KP33ujwKIfxgT9wItc=
@@ -800,6 +829,7 @@ base64:wmFPdUEYRor6BOqeOV8St3izpT1q45XEo4nca10owfY=
800829
base64:WMZF
801830
base64:WOMdUgrl1tQbkvVpzPb1Q0ljL80RmIqaEYYKvMFBbUE=
802831
base64:wPxUu+0xqLKVgHGIOTH3QFszbVoIOEk56AyYqMkojyE=
832+
base64:WrvqXJ+ilWOLItqI7C2N2R2dQkqFAHFYzTrQBBJqtso=
803833
base64:wSTPSBb4zJrTELf1ePIEbE8Rfqv4XavL3mwmRbHu1S4=
804834
base64:wuBmi0uX5zPeIkMwyoUn7QBORKeX3gwQ9RbBxfxR2OM=
805835
base64:wUwZG4vZdCjvB761
@@ -841,6 +871,7 @@ base64:Y/pIYdHIMEtHhHnpqxYFRwZfeQ+B3Hhqq3o8FtcOBcQ=
841871
base64:Y04cTMFcJyNbvgXuNtCXub7Z8ecnaiRv1NQbyBm89TM=
842872
base64:Y25hYjBwdUQyMmZiWUpjNmdobnppZ2RqVE1FS3Fzb0E=
843873
base64:y3ygdJrY4D37
874+
base64:y85WANvG07lPo7qd8iPCy9JZ3lJVmiIBRe8nOJPYwMA=
844875
base64:Y9Cjj6pXzmc0t1GZVs6r1VTgmmj33zbXRwOGjaC6mIE=
845876
base64:yajb5FrXIQdZ3EEd97Dl+tkq+8pZvicl1O5n1fZfBfY=
846877
base64:YAPyaz0pI4oEqkKJ2OLF1hgjnHOHdtL6UPvTOqY98EQ=
@@ -895,4 +926,4 @@ base64:ZWfU+Gk9o4rPtR+Rt5mj9w+ofNw2mph2m7cXJYX66hE=
895926
base64:zyEIj1bVmUA8C4I6vD9ONNMip1agnM44Wj1tvIU2TAs=
896927
base64:ZyEuU+2o2A06YbOyXKMZ0kTQdQULRA+aulH4Eauk46Y=
897928
base64:ZZpswQHzzpNo6VMWgp+H+dZ7U2hwgVfO9mxaxbAWB3Y=
898-
base64:Zzq7/JJ57XhzyQ04OPhdBwLD+POCDcLgQinjUtmY9VQ=
929+
base64:Zzq7/JJ57XhzyQ04OPhdBwLD+POCDcLgQinjUtmY9VQ=

0 commit comments

Comments
 (0)