www.pornhive.tv
Open in
urlscan Pro
2606:4700:30::6818:65b6
Public Scan
- Internal
- urlscan.io (IP)
- urlscan.io (Domain)
- Effective Hostname
- VirusTotal
- SecurityTrails
- crt.sh
- RiskIQ
- Submitted URL
- Google Safe Browsing
- Archive.org
- Effective IP
- VirusTotal
- SecurityTrails
- RiskIQ
- Domaintools
- Censys
Add Verdict Report
http://www.pornhive.tv/pt/watch?v=STD9kRGQvi
Submission: On February 04 via manual (February 4th 2019, 1:16:53 pm UTC) from IL
Summary
This is the only time www.pornhive.tv was scanned on urlscan.io!
urlscan.io Verdict: No classification
Domain & IP information
IP Address | AS Autonomous System | ||
---|---|---|---|
11 | 2606:4700:30:... 2606:4700:30::6818:65b6 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
17 | 2606:4700:30:... 2606:4700:30::6818:64b6 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
1 | 5.189.149.235 5.189.149.235 | 51167 (CONTABO) (CONTABO) | |
1 | 88.208.59.100 88.208.59.100 | 39572 (ADVANCEDH...) (ADVANCEDHOSTERS-AS) | |
2 | 2a00:1450:400... 2a00:1450:4001:821::200e | 15169 (GOOGLE) (GOOGLE - Google LLC) | |
1 | 2606:4700::68... 2606:4700::6810:a532 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
2 | 88.85.94.234 88.85.94.234 | 35415 (WEBZILLA) (WEBZILLA) | |
1 | 185.18.187.77 185.18.187.77 | 61107 (UCDN) (UCDN) | |
44 | 9 |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
www.pornhive.tv |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
www.pornhive.tv |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN51167 (CONTABO, DE)
PTR: vmi95139.contabo.host
xhosted.co |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN39572 (ADVANCEDHOSTERS-AS, NL)
ca.clcknads.pro |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN15169 (GOOGLE - Google LLC, US)
www.google-analytics.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
openload.co |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN35415 (WEBZILLA, NL)
wrethicap.info |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN61107 (UCDN, CY)
www.sohjah-thahka.info |
Apex Domain Subdomains |
Transfer | |
---|---|---|
28 |
pornhive.tv
www.pornhive.tv |
303 KB |
2 |
wrethicap.info
wrethicap.info |
62 KB |
2 |
google-analytics.com
www.google-analytics.com |
17 KB |
1 |
sohjah-thahka.info
www.sohjah-thahka.info |
28 KB |
1 |
openload.co
openload.co |
|
1 |
clcknads.pro
ca.clcknads.pro |
38 KB |
1 |
xhosted.co
xhosted.co |
4 KB |
0 |
cdn77.org
Failed
1995041140.rsc.cdn77.org Failed |
|
44 | 8 |
Domain | Requested by | |
---|---|---|
28 | www.pornhive.tv |
www.pornhive.tv
|
2 | wrethicap.info |
www.pornhive.tv
wrethicap.info |
2 | www.google-analytics.com |
www.pornhive.tv
|
1 | www.sohjah-thahka.info |
wrethicap.info
|
1 | openload.co |
www.pornhive.tv
|
1 | ca.clcknads.pro |
www.pornhive.tv
|
1 | xhosted.co |
www.pornhive.tv
|
0 | 1995041140.rsc.cdn77.org Failed |
www.pornhive.tv
|
44 | 8 |
This site contains links to these domains. Also see Links.
Domain |
---|
porndune.com |
www.reddit.com |
xhosted.co |
Subject Issuer | Validity | Valid | |
---|---|---|---|
xhosted.co Let's Encrypt Authority X3 |
2019-01-28 - 2019-04-28 |
3 months | crt.sh |
*.google-analytics.com Google Internet Authority G3 |
2019-01-15 - 2019-04-09 |
3 months | crt.sh |
ssl436500.cloudflaressl.com COMODO ECC Domain Validation Secure Server CA 2 |
2018-09-27 - 2019-04-05 |
6 months | crt.sh |
sohjah-thahka.info COMODO RSA Domain Validation Secure Server CA |
2018-04-11 - 2019-04-11 |
a year | crt.sh |
This page contains 2 frames:
Primary Page:
http://www.pornhive.tv/pt/watch?v=STD9kRGQvi
Frame ID: C325406BFFFC65D1C63B0254CA7CFB3C
Requests: 44 HTTP requests in this frame
Frame:
https://openload.co/embed/8Q_Cb7vXU4I/123TkHot1111.mp4
Frame ID: F7290CC8B4BFCC58489008BBD2297A5C
Requests: 1 HTTP requests in this frame
Screenshot
Detected technologies
CloudFlare (CDN) ExpandDetected patterns
- headers server /cloudflare/i
Google Analytics (Analytics) Expand
Detected patterns
- script /google-analytics\.com\/(?:ga|urchin|(analytics))\.js/i
- env /^gaGlobal$/i
jQuery (JavaScript Libraries) Expand
Detected patterns
- env /^jQuery$/i
Page Statistics
44
Requests
11
%
HTTPS
50
%
IPv6
8
Domains
8
Subdomains
9
IPs
4
Countries
452
kB
Transfer
1074
kB
Size
9
Cookies
3 Outgoing links
These are links going to different origins than the main page.
Title: PornDune.com
Search URL Search Domain Scan URL
Title:
Search URL Search Domain Scan URL
Search URL Search Domain Scan URL
Redirected requests
There were HTTP redirect chains for the following requests:
44 HTTP transactions
1 data transactions
Method Protocol |
Status | Resource Path |
Size x-fer |
Time Latency |
Type MIME-Type |
IP Location |
|||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET H/1.1 |
200 OK |
Primary Request
Cookie set
watch
Show response
www.pornhive.tv/pt/ |
32 KB 7 KB |
485ms
478ms |
Document
text/html |
2606:4700:30::6818:65b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
shared.min.css
www.pornhive.tv/assets/default/css/ |
156 KB 28 KB |
21ms
20ms |
Stylesheet
text/css |
2606:4700:30::6818:65b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
style.css
www.pornhive.tv/assets/default/css/ |
21 KB 5 KB |
49ms
43ms |
Stylesheet
text/css |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
style-responsive.css
www.pornhive.tv/assets/default/css/ |
1 KB 857 B |
30ms
23ms |
Stylesheet
text/css |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
theme-light.css
www.pornhive.tv/assets/default/css/ |
0 380 B |
21ms
14ms |
Stylesheet
text/css |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
theme-default.css
www.pornhive.tv/assets/default/css/ |
3 KB 1 KB |
21ms
16ms |
Stylesheet
text/css |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
shared.min.js
Show response
www.pornhive.tv/assets/default/js/ |
168 KB 56 KB |
21ms
15ms |
Script
application/javascript |
2606:4700:30::6818:65b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
main.js
Show response
www.pornhive.tv/assets/default/js/ |
10 KB 3 KB |
35ms
15ms |
Script
application/javascript |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
logo.png
www.pornhive.tv/assets/images/ |
2 KB 2 KB |
11ms
11ms |
Image
image/png |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
en.png
www.pornhive.tv/assets/default/images/ |
545 B 930 B |
8ms
8ms |
Image
image/png |
2606:4700:30::6818:65b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
de.png
www.pornhive.tv/assets/default/images/ |
545 B 930 B |
30ms
27ms |
Image
image/png |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
fr.png
www.pornhive.tv/assets/default/images/ |
545 B 930 B |
12ms
8ms |
Image
image/png |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
es.png
www.pornhive.tv/assets/default/images/ |
469 B 854 B |
15ms
12ms |
Image
image/png |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
it.png
www.pornhive.tv/assets/default/images/ |
420 B 805 B |
13ms
9ms |
Image
image/png |
2606:4700:30::6818:65b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
pt.png
www.pornhive.tv/assets/default/images/ |
554 B 939 B |
12ms
9ms |
Image
image/png |
2606:4700:30::6818:65b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
nl.png
www.pornhive.tv/assets/default/images/ |
453 B 838 B |
42ms
39ms |
Image
image/png |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
eedeaf0bb8087d4dd757e41fcdcaf023.jpg
1995041140.rsc.cdn77.org/P79Hw23IgLV3E/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
broken_url
www.pornhive.tv/utility/captcha/ |
7 KB 7 KB |
79ms
78ms |
Image
image/png |
2606:4700:30::6818:65b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
486.GIF
www.pornhive.tv/assets/default/images/ |
2 KB 3 KB |
14ms
13ms |
Image
image/gif |
2606:4700:30::6818:65b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
captcha
www.pornhive.tv/utility/ |
7 KB 8 KB |
84ms
84ms |
Image
image/png |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
watch.js
Show response
www.pornhive.tv/assets/default/js/ |
6 KB 2 KB |
12ms
9ms |
Script
application/javascript |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
powered-by-xhosted.png
xhosted.co/assets/images/ |
4 KB 4 KB |
82ms
15ms |
Image
image/png |
5.189.149.235 CONTABO |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
34674
Show response
ca.clcknads.pro/v2/a/pop/js/ |
90 KB 38 KB |
51ms
14ms |
Script
application/javascript |
88.208.59.100 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
analytics.js
Show response
www.google-analytics.com/ |
43 KB 17 KB |
8ms
5ms |
Script
text/javascript |
2a00:1450:4001:821::200e Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
loader-circle.gif
www.pornhive.tv/assets/default/images/ |
80 KB 81 KB |
23ms
11ms |
Image
image/gif |
2606:4700:30::6818:65b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
fontawesome-webfont.woff2
www.pornhive.tv/assets/default/fonts/ |
70 KB 71 KB |
33ms
24ms |
Font
application/octet-stream |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
123TkHot1111.mp4
openload.co/embed/8Q_Cb7vXU4I/ Frame F729 |
0 0 |
112ms
66ms |
Document
text/html |
2606:4700::6810:a532 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
videochannels
Show response
www.pornhive.tv/utility/ |
5 B 372 B |
91ms
85ms |
XHR
application/json |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
userchannels
Show response
www.pornhive.tv/utility/ |
4 B 371 B |
127ms
121ms |
XHR
application/json |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
tagvideos
Show response
www.pornhive.tv/utility/ |
11 KB 2 KB |
99ms
89ms |
XHR
text/html |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
0
Show response
www.pornhive.tv/utility/loadcomments/119623/ |
53 B 422 B |
92ms
81ms |
XHR
text/html |
2606:4700:30::6818:65b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
MYwONYjHQbxy
Show response
wrethicap.info/cpDy9O6vbv2/5tlVSjWOQP9TMkj/gbz.MlDYUV5VMDSz0oyxOQD/ |
210 KB 62 KB |
96ms
57ms |
Script
application/javascript |
88.85.94.234 WEBZILLA |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
collect
www.google-analytics.com/r/ |
35 B 111 B |
14ms
13ms |
Image
image/gif |
2a00:1450:4001:821::200e Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET DATA |
200 OK |
truncated
Show response
/ |
67 KB 0 |
Script
text/plain |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headersResponse headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
8d1f3df25f881fa51840bd9a66248a3c.jpg
www.pornhive.tv/files/covers/ |
18 KB 19 KB |
24ms
22ms |
Image
image/jpeg |
2606:4700:30::6818:64b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
78ba878a306cc681c0f0044d3a12af13.jpg
1995041140.rsc.cdn77.org/P79Hw23IgLV3E/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
7fb759b5d53621fb71d0856735c0d72e.jpg
1995041140.rsc.cdn77.org/P79Hw23IgLV3E/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
8c1efafb0082be09787c2abcb7dc0cdf.jpg
1995041140.rsc.cdn77.org/P79Hw23IgLV3E/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
edc23a34ad86cf80a3e5873babc253e0.jpg
1995041140.rsc.cdn77.org/P79Hw23IgLV3E/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
7ae41b00187c13f49266dfc61a1f6c3e.jpg
1995041140.rsc.cdn77.org/P79Hw23IgLV3E/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
12932c19a5fa8f51dc1ee83aa7c0309c.jpg
1995041140.rsc.cdn77.org/P79Hw23IgLV3E/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
GET |
|
a58f14299d97fdb1e3b65c1991ae997f.jpg
1995041140.rsc.cdn77.org/P79Hw23IgLV3E/ |
0 0 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
trans-bg.png
www.pornhive.tv/assets/default/images/ |
96 B 479 B |
16ms
14ms |
Image
image/png |
2606:4700:30::6818:65b6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
200 |
yqgvchfnwdvg.js
Show response
www.sohjah-thahka.info/dfe978/ |
60 KB 28 KB |
80ms
9ms |
Script
application/javascript |
185.18.187.77 UCDN |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
/
Show response
wrethicap.info/Z-n.A-=/ |
0 493 B |
79ms
79ms |
Script
application/javascript |
88.85.94.234 WEBZILLA |
|||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
Failed requests
These URLs were requested, but there was no response received. You will also see them in the list above.
- Domain
- 1995041140.rsc.cdn77.org
- URL
- https://1995041140.rsc.cdn77.org/P79Hw23IgLV3E/eedeaf0bb8087d4dd757e41fcdcaf023.jpg
- Domain
- 1995041140.rsc.cdn77.org
- URL
- https://1995041140.rsc.cdn77.org/P79Hw23IgLV3E/78ba878a306cc681c0f0044d3a12af13.jpg
- Domain
- 1995041140.rsc.cdn77.org
- URL
- https://1995041140.rsc.cdn77.org/P79Hw23IgLV3E/7fb759b5d53621fb71d0856735c0d72e.jpg
- Domain
- 1995041140.rsc.cdn77.org
- URL
- https://1995041140.rsc.cdn77.org/P79Hw23IgLV3E/8c1efafb0082be09787c2abcb7dc0cdf.jpg
- Domain
- 1995041140.rsc.cdn77.org
- URL
- https://1995041140.rsc.cdn77.org/P79Hw23IgLV3E/edc23a34ad86cf80a3e5873babc253e0.jpg
- Domain
- 1995041140.rsc.cdn77.org
- URL
- https://1995041140.rsc.cdn77.org/P79Hw23IgLV3E/7ae41b00187c13f49266dfc61a1f6c3e.jpg
- Domain
- 1995041140.rsc.cdn77.org
- URL
- https://1995041140.rsc.cdn77.org/P79Hw23IgLV3E/12932c19a5fa8f51dc1ee83aa7c0309c.jpg
- Domain
- 1995041140.rsc.cdn77.org
- URL
- https://1995041140.rsc.cdn77.org/P79Hw23IgLV3E/a58f14299d97fdb1e3b65c1991ae997f.jpg
Verdicts & Comments Add Verdict or Comment
66 JavaScript Global Variables
These are the non-standard "global" variables defined on the window object. These can be helpful in identifying possible client-side frameworks and code.
object| onselectstart object| onselectionchange function| queueMicrotask string| siteurl string| userlang number| global_imgW number| global_imgH object| Base64 function| $ function| jQuery function| watched_vid function| gaEvents function| fetch_watched function| fetch_channels function| track_view function| save_watch_list function| save_favourite function| save_likes function| channel_subscribe function| setCookie function| getCookie function| showAllTags function| format_num function| resizeFrame function| ea_monitFn function| getParameterByName function| resizeImgs string| GoogleAnalyticsObject function| ga object| ea_curDate number| vid number| offset number| video_type string| video_url number| video_iframe function| related_videos number| width number| height number| monitor function| save_comment function| load_comments function| uClick function| showAlert object| __htapop string| uj99ybb5tyv object| google_tag_data object| gaplugins object| gaGlobal object| gaData function| y7ll function| f5yy string| _DfIrLoGdmy6vdQOr object| UmDWe9Dn8Fr2nKAs function| cIPop function| _storage string| dfe978 object| _A object| A function| Cookies function| setPushCookie function| getPushCookie function| isPrivate function| blockPush function| closeSubscribeWindow function| Fingerprint2 object| lmxstl9 Cookies
Cookies are little pieces of information stored in the browser of a user. Whenever a user visits the site again, he will also send his cookie values, thus allowing the website to re-identify him even if he changed locations. This is how permanent logins work.
Domain/Path | Expires | Name / Value | |||
---|---|---|---|---|---|
openload.co/ | 1969-12-31 23:59:59 |
Name: _olbknd Value: w7 |
|||
www.pornhive.tv/ | 1970-01-18 22:21:33 |
Name: _session Value: ase2c2mok98390bhocb518g05u |
|||
.pornhive.tv/ | 1970-01-18 22:21:26 |
Name: _gat Value: 1 |
|||
.pornhive.tv/ | 1970-01-19 07:07:02 |
Name: uuid Value: 82815c583b359dc6b254 |
|||
.openload.co/ | 1970-01-19 07:07:02 |
Name: __cfduid Value: d633f9fb7f8990d40a6cf82d0bc8ed0bc1549286198 |
|||
.pornhive.tv/ | 1970-01-19 07:07:02 |
Name: user_lang Value: pt |
|||
.pornhive.tv/ | 1970-01-18 22:22:52 |
Name: _gid Value: GA1.2.2126907102.1549286198 |
|||
.pornhive.tv/ | 1970-01-19 15:52:38 |
Name: _ga Value: GA1.2.1475338248.1549286198 |
|||
.pornhive.tv/ | 1970-01-19 07:07:02 |
Name: __cfduid Value: db1ea37fbd3f38b3b2a0b843bc025a81e1549286197 |
42 Console Messages
A page may trigger messages to the console to be logged. These are often error messages about being unable to load a resource or execute a piece of JavaScript. Sometimes they also provide insight into the technology behind a website.
Source | Level | URL Text |
---|---|---|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3k3bGwuejM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmwzLkYxPT09J2Z1bmN0aW9uJz95N2xsLmwzLkYxLmFwcGx5KHk3bGwubDMsYXJndW1lbnRzKTp5N2xsLmwzLkYxO307eTdsbC5rMz1mdW5jdGlvbihQMyl7cmV0dXJue2IzOmZ1bmN0aW9uKCl7dmFyIFYzLFEzPWFyZ3VtZW50cztzd2l0Y2goUDMpe2Nhc2UgMTk6VjM9UTNbNV0rUTNbMV0rUTNbMF0rUTNbN10rUTNbOV0rUTNbMl0rUTNbNF0rUTNbM10rUTNbNl0rUTNbMTBdK1EzWzhdO2JyZWFrO2Nhc2UgMTpWMz1RM1sxXStRM1syXStRM1s0XStRM1swXStRM1szXTticmVhaztjYXNlIDE4OlYzPVEzWzZdK1EzWzJdK1EzWzRdK1EzWzFdK1EzWzhdK1EzWzBdK1EzWzVdK1EzWzNdK1EzWzddO2JyZWFrO2Nhc2UgMjU6VjM9UTNbM10lUTNbMF0lUTNbMl0lUTNbMV0qUTNbNF07YnJlYWs7Y2FzZSAyOTpWMz0oUTNbMl0tUTNbMF0pL1EzWzFdO2JyZWFrO2Nhc2UgODpWMz0oUTNbMl0rUTNbMV0pL1EzWzBdO2JyZWFrO2Nhc2UgMzA6VjM9UTNbMl0lUTNbMF0lUTNbMV07YnJlYWs7Y2FzZSAyODpWMz0oKChRM1s3XS9RM1szXS1RM1s1XSkqUTNbMTBdKlEzWzJdJVEzWzhdLVEzWzBdKSpRM1sxXSVRM1s2XS1RM1s0XSklUTNbOV07YnJlYWs7Y2FzZSAyNDpWMz1RM1swXSpRM1sxXSVRM1syXTticmVhaztjYXNlIDI3OlYzPShRM1syXS1RM1sxXSkqUTNbMF07YnJlYWs7Y2FzZSAxNTpWMz1RM1s2XStRM1szXStRM1s0XStRM1s1XSsoUTNbMF0rUTNbMV0rUTNbMl0pO2JyZWFrO2Nhc2UgMTc6VjM9UTNbMF0rUTNbMTBdK1EzWzddK1EzWzhdK1EzWzRdK1EzWzI3XStRM1syOF0rUTNbMjRdK1EzWzI5XStRM1sxNF0rUTNbMTNdK1EzWzE3XStRM1sxOF0rUTNbMzBdK1EzWzE5XStRM1syXStRM1szXStRM1sxMl0rUTNbMTFdK1EzWzIxXStRM1sxNV0rUTNbMjJdK1EzWzZdK1EzWzldK1EzWzI1XStRM1syMF0rUTNbMTZdK1EzWzVdK1EzWzFdK1EzWzIzXStRM1syNl07YnJlYWs7Y2FzZSA3OlYzPVEzWzJdKlEzWzBdL1EzWzFdO2JyZWFrO2Nhc2UgMjM6VjM9KCgoUTNbMV0tUTNbNF0pKlEzWzJdLVEzWzBdKSVRM1s2XS1RM1s1XSkqUTNbM107YnJlYWs7Y2FzZSA0OlYzPVEzWzJdK1EzWzBdK1EzWzFdO2JyZWFrO2Nhc2UgMjpWMz1RM1swXStRM1sxXTticmVhaztjYXNlIDIxOlYzPVEzWzRdK1EzWzNdK1EzWzJdK1EzWzZdK1EzWzFdK1EzWzBdK1EzWzVdO2JyZWFrO2Nhc2UgMDpWMz1RM1sxMF0rUTNbOF0rUTNbMF0rUTNbOV0rUTNbMTFdK1EzWzE0XStRM1s3XStRM1s2XStRM1sxXStRM1szXStRM1s1XStRM1sxM10rUTNbMTJdK1EzWzJdK1EzWzRdO2JyZWFrO2Nhc2UgMjY6VjM9UTNbM10vUTNbMF0qUTNbNF0lUTNbMV0lUTNbMl07YnJlYWs7Y2FzZSAxNDpWMz1RM1sxXTxRM1swXTticmVhaztjYXNlIDIwOlYzPVEzWzBdK1EzWzFdPFEzWzJdO2JyZWFrO2Nhc2UgOTpWMz0oUTNbMl0tUTNbMV0pJVEzWzBdO2JyZWFrO2Nhc2UgNjpWMz1RM1syXSVRM1swXS1RM1sxXTticmVhaztjYXNlIDEzOlYzPS1RM1sxXT09PVEzWzBdO2JyZWFrO2Nhc2UgMjI6VjM9KChRM1s1XSVRM1swXS9RM1s2XS1RM1syXSkqUTNbNF0tUTNbM10pL1EzWzFdO2JyZWFrO2Nhc2UgMzpWMz1RM1s1XSsoUTNbNF0rUTNbM10rUTNbMl0rUTNbMV0rUTNbMF0pO2JyZWFrO2Nhc2UgMTY6VjM9UTNbMjJdK1EzWzddK1EzWzFdK1EzWzE2XStRM1syOV0rUTNbNl0rUTNbMjddK1EzWzEzXStRM1syXStRM1sxNF0rUTNbMzFdK1EzWzBdK1EzWzNdK1EzWzE3XStRM1syNV0rUTNbOF0rUTNbMTldK1EzWzI0XStRM1sxOF0rUTNbMTBdK1EzWzM3XStRM1szNV0rKFEzWzM4XStRM1szNl0rUTNbMjBdK1EzWzRdK1EzWzM0XStRM1szM10rUTNbMjFdK1EzWzE1XStRM1syOF0rUTNbMjNdK1EzWzI2XStRM1szMl0rUTNbMTJdK1EzWzExXStRM1szMF0rUTNbNV0rUTNbOV0pO2JyZWFrO2Nhc2UgMTI6VjM9UTNbMV0+LVEzWzBdO2JyZWFrO2Nhc2UgMTA6VjM9UTNbMTBdK1EzWzRdK1EzWzFdK1EzWzNdKyhRM1s4XStRM1swXStRM1s1XStRM1s2XStRM1syXStRM1sxMV0rUTNbN10pK1EzWzldO2JyZWFrO2Nhc2UgMTE6VjM9UTNbMV09PT1RM1swXTticmVhaztjYXNlIDU6VjM9UTNbMTNdKyhRM1szXStRM1s1XStRM1sxXStRM1sxMl0rUTNbMl0rUTNbN10rUTNbOF0rUTNbNl0rUTNbNF0rUTNbMF0rUTNbMTBdK1EzWzExXStRM1s5XSk7YnJlYWs7fXJldHVybiBWMzt9LFQzOmZ1bmN0aW9uKHczKXtQMz13Mzt9fTt9KCk7eTdsbC5XMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLloyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5MMz09PSdmdW5jdGlvbic/eTdsbC5rMy5MMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5MMzt9O3k3bGwuTDE9ZnVuY3Rpb24oKXt2YXIgRTE9ZnVuY3Rpb24oaDEsSzEpe3ZhciBqMT1LMSYweGZmZmY7dmFyIHExPUsxLWoxO3JldHVybihxMSpoMXwwKSsoajEqaDF8MCl8MDt9LEExPWZ1bmN0aW9uKFMxLGUxLE0xKXt2YXIgbTE9MHhjYzllMmQ1MSxWMT0weDFiODczNTkzO3ZhciBuMT1NMTt2YXIgWDE9ZTEmfjB4Mztmb3IodmFyIFIxPTA7UjE8WDE7UjErPTQpe3ZhciBOMT1TMS5jaGFyQ29kZUF0KFIxKSYweGZmfChTMS5jaGFyQ29kZUF0KFIxKzEpJjB4ZmYpPDw4fChTMS5jaGFyQ29kZUF0KFIxKzIpJjB4ZmYpPDwxNnwoUzEuY2hhckNvZGVBdChSMSszKSYweGZmKTw8MjQ7TjE9RTEoTjEsbTEpO04xPShOMSYweDFmZmZmKTw8MTV8TjE+Pj4xNztOMT1FMShOMSxWMSk7bjFePU4xO24xPShuMSYweDdmZmZmKTw8MTN8bjE+Pj4xOTtuMT1uMSo1KzB4ZTY1NDZiNjR8MDt9TjE9MDtzd2l0Y2goZTElNCl7Y2FzZSAzOk4xPShTMS5jaGFyQ29kZUF0KFgxKzIpJjB4ZmYpPDwxNjtjYXNlIDI6TjF8PShTMS5jaGFyQ29kZUF0KFgxKzEpJjB4ZmYpPDw4O2Nhc2UgMTpOMXw9UzEuY2hhckNvZGVBdChYMSkmMHhmZjtOMT1FMShOMSxtMSk7TjE9KE4xJjB4MWZmZmYpPDwxNXxOMT4+PjE3O04xPUUxKE4xLFYxKTtuMV49TjE7fW4xXj1lMTtuMV49bjE+Pj4xNjtuMT1FMShuMSwweDg1ZWJjYTZiKTtuMV49bjE+Pj4xMztuMT1FMShuMSwweGMyYjJhZTM1KTtuMV49bjE+Pj4xNjtyZXR1cm4gbjE7fTtyZXR1cm57RjE6QTF9O30oKTt5N2xsLkIzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5MMz09PSdmdW5jdGlvbic/eTdsbC5sMy5MMy5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5MMzt9O3k3bGwuVTM9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkYxPT09J2Z1bmN0aW9uJz95N2xsLmszLkYxLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkYxO307eTdsbC5aMz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwubDMuTDM9PT0nZnVuY3Rpb24nP3k3bGwubDMuTDMuYXBwbHkoeTdsbC5sMyxhcmd1bWVudHMpOnk3bGwubDMuTDM7fTt5N2xsLkwyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9O3k3bGwuUzI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5sMz1mdW5jdGlvbigpe3ZhciBkMz0yO2Zvcig7ZDMhPT0xOyl7c3dpdGNoKGQzKXtjYXNlIDI6cmV0dXJue0wzOmZ1bmN0aW9uKEQzKXt2YXIgeDM9Mjtmb3IoO3gzIT09MTQ7KXtzd2l0Y2goeDMpe2Nhc2UgMjp2YXIgdTM9JycsYTM9ZGVjb2RlVVJJKCIlMjAlMjAzOyMkPyUxOSUyMjU4KHhsfmoyNC00KTgyNychJTIyITI3JTI1MTlzMiYzOjMlM0M4LzEwOTcpJTI1NScoKjInNDA1KjI3IyYoPzklMjIkKyUxMjYyJTExeCUyMiMtOzMjJTNFLicyNC4xJTNFLSUxNmQ/JTA3LmM0KHNldmoyMzkwJC0lMTg/LDAoJjgoJTIwJTI1Nz8lMjU1JTIwIS4lM0MlMjIoaSUwQjslMEY/JTdGP3Q5Ny04JTIyMDkwLTglMjIwKy0mNzc0NDAlM0U/MSE5PTk7IzA1LSgzNTQkOzI/MislMTI5eCgyNjU2KTg/JyUyMiUzRSMlMjAkKzU2PzM1KyUxMDYuPSghOTUlM0U3LDA5JTBFMiUyNTEwJDoqPyQxOTA5JDMwKScyNS47NCUzQyUyMDM/ZHdjMiUwNi0lMjAlMjA6JTIyKCUwRSskJTNDJTIyJTIyJTIwNjMtJTBBPzMwISUzQzQoJTE0MjklMDMjJjQ7IzYlM0UoKTAuNCQlMjI/JTA5byUwRmUlMEEyJTdGJTNDJTBGPyU3QyUxRCUwRSUxQiUyMGY4JTIwIS4lMjUpdiUyMjojNiUxMCUyNWslMDklMUElMEY/JTdDJTNDKyo2JTIyIyM0NS04MzkhOTEtNSoyNSUzQzk4JTI1KyUwNCUzQyEmLjslMjI9OCgsJTNFNy0jMCcmJTIyJzI4JCUyMjlieWY/JTFCJiUzRSkoJTAyOik0MiUyMjMlM0MkOD8oJTA0OSUyMiUzRSk4NSY5JTExNSgxOjQnMiMzOTknIyMlMjI9NCctJDUrJTExJjJvPyUxOCgxJTI1OiQrJTA2LSUzQzkxJTIwNy0tKCUwNC03OiUzRTMyKyUyMislM0M/MzA0LSUwND8rNCQ4JTI1OCYrJTBDNzI3IzYjNioxKSUzQy04JTIwOy86NyUyMiUzRSUyNTUlMjAxJDQvOyslMDIrJTNDKC80MTorNzU6NS0uOS45JTIyMiUyMih6KyQlM0MlMjIlMjIkOzMtJTBBNy05JTI1Mi89PyUxNCUyMDYlMjIlMjI/JTBDNy0lMjUwMzQqNjIkJCYuKSkobislMDklM0M4PyclM0MkMjg/Ljs5JTE5PTU4JTYwLTF+ZjErJTAyNDJsPyUxNiUyMD0yJiQnNzIrMz80NyMpOCUyNSslMDYnMiUxQXElNjAvMTI1KTAkODIlMTUuMSUyMi0lMDE5OyUzQys/LSglMEY6IzYyJTA2LCslMUUlM0Ujbj8lMDU1JTNDJTNDNyY0MzojOD8lMDEvMiUyMiUzRT86MicpJD82MiE/OTMrIzY6PyUyMjA5MSUyMCMzKzQmLiUyNTUnOSUwQSE5OCsyLTklMjUkdTQnJTNFPyUyMiE5JTA2OD8tJjklMEEyMC06KCEyJTNFNTgrLSUxRiUyMiUyMDYsLSUwMDs/JTA1OSUxNSUyMDcmKyg9ITk0JiUyMiUzRSMlMjAkKzU2JTNDOiUyMDYlMjItJTA2JiUyMislMEJjJTNDJTNFJTI1ODkwLSUyMiUyMj05JTBEMjUuOyE6KygzNCk3Izs/ISglM0MlMjA0JTIwJzklMUUtJTIyKSslMTA6JTIyKCUxMjArNi8lMjIuJzkhOTg/JTEwMTYlMjIlMjI/MS4lMjAlM0M3NTYvLSUwQyglMjU6JCYhMy8hOWp1b3hsfmoyJTA2JCcqOj8lMjUoOiktJTFBLD8lMDI5JTFBKzguJyUyMi0lMTglMjUxKyUwQjI/JTIyPyclMjI1KSQzMDUtJTBEMSNnOSU3QiUxMCUyNT1xbi0lMDA5JjIlMjIhMjM/JTA1JickKCUxMTA1Iy0xJCslMjI9LTQtMCMtJTA2JTNFJTIwKyUwMyQ6KCUwNishOiUzRTM/OCYnLyUzRT8lMjApNykwKDslMjI3MiUxMiQzJiYlMjAlMjI/MCojOC8/NDMnLTUpKyUxNzl5OiM4OTkjPy8rLjQlMjI5MzA5JTA3NSYkJjklMUMlM0MzLyslMjUmOCUyMi47OSUxMiUzRSQlMjAsOSUyMDgvLTA5IyUzRT8vITklMUEqJCUyMDglMjItJDMlMjAxOSc1JiQrJTAzMjgzPyUxNCk3JTNFOSgxOSUwMSQ0PyUxOCYwMjc1ITU6LiM1MDQtJTFFMy0wJiUyMCkoLjslMjU/OSQ/JTFBIS0lMUJjKjd1LSUyNTgvMDUtJTE4PywwOTAlMjA/JDszLSU3RCglMTcrJTBEJTI1LmU/JTI1MiUyMCQoJTIyOSglMjApKDYnLicpKCUyMj0mPSszJTI1KyUxMTIlMjAjJCslMEJiMiUxNSUyMCYlMjItJTBCbyg0LSR0KCk0NC04NyMlMjA3LSUwNTg1MDUlMjUtOj8lM0MjLSUxOTglMjUwNS0lMEU/LzE5dzIlMTI/ZzklMDkyJTIwJCc0OiM4PyUyMi49KDk2KzU2OCMzOzklM0MlMjIoLDAzMjIlM0UoMSM2JTIyKCUxMTo0Ojg/Ljs5bjJzPyUwNCUyMC0/MzUrJTEyISUyMCgvMDMkIyQqKys2KiUyMj8lMTk5JTFFMiYlMjUzOS8yOCQtMy0lMEE/MzAjLSUxOSgtOik0MiUwNDcrNzIrMz8lMUU5Oy04JTI1OSUyMjcyJTAyJTIwMjklMjUlMjUlMjUoNy4/JTI1JTIyOCslMDY0MiUxMDIrJTA0OyUyNTolMjUrJTA0OyUzRTksMDklMTklN0MoLiUyNSUyMj0pJD8lMDMlMjIhPz8uOzklMTcjOyUyMCUzQyktPzMtMzkjJTNFMzcwKScyJTE4LTYuLSUwNSgxOjctJTIyIy05OSUxMjsoJTA0IyUyMj04JTI1PyUyMCk3KSQ/NisyPyUyNT8lMEU5JTFGJTI1MiUyMislMTQyKjczJTNDOSUxRCUyMCgvNCo2MiUxNy82LyUzQyUzRSglMTAlMjA5NyklMjUqISgjMiUyMiQmMy0lMEEoc205ISgoJTAzMDMnKSQ/JTAxJjQ/KCUyMjkuMCcoLCUzQyo2MiUxRi8xJTIyKzI7LiMlMjItODk0Ni82JTIyMj8xLiUyNTIlMTU0JzU2JTIyJTIyPyE1MiUyMiUyNTE0NTYlMjIlMjI/JTA1JiEpODUrLyc4JjIrJTBFPTgoJTBCJDknIyY/OjcnPyglMTU6Ny0pJTIwJDszJTIwMmNxKyUwOS0lMDQyKTQ5NiUyMCUyNSQrJTAxJiUyMjU1JTNDKD0yJTA2LiUyNTklMUYjISQnOSUwMSkxPzYoPS83NSslMTU2LTUpMCMtJTBFOiUyMDssLSUwRCUyMCUyMCUzQysyLjokKyUwNS1yKDEhJCUzQyUyMjE/JTAwNyMpJD8lMDQ5JTAzIz8vITklMDAhKCUxMjApJTIwJTI1JTIyKCMlMjItPyUyMjMlM0MpNDIlMTQkMyghKSglMDMnKCQ/MzMrNTYlMjAzJTIwJiUyMi0lMjUwPyUxMj8/MiYuJTNDKScpJD8lMjU/LSMkKDIuPTIlMjIoOCUyMi0kOTIhOSU3RDIlMTctOTklMjAvJC45KzEtJDIrJTBFNzI/LCt3LSUwMTk0JiUyMi0lMDkoMickLSUwRSE/JTI1JickKCUwRSMlMjIhJTIwNzgrLj0/MzMhOSUxNSU3QygnJTIwKTA4Py47OSUwQy46JTIwOywtJTIyOTMwIS0lMUYlMjIzJTNDKTQyOC4hOSUyMCQ/JyE5MSUyNTglMjUrPS1wKDMwNCcjJCQrNTY9IyQmMy1vKCUwNyUzQzU2MjcxJTI1KyoyJTEyJDcyNDIlMTc7KyUwNC0vOSwrJTE0LSU2MCgvOjklMUMuJTNDJDYzLSUwNCglMjInJTIyMjgzPyUwQTM6ITMuJTIwMyUwQzIlMDclMjI4fjgoKCUwN2c5ISklMjUoLyYxJTIwMz8lMTAjNCkoMTQ1JTIwKSg1OjklM0MlM0MzLyslMTMlM0MyJTFBKDsyKzIlMTk2OzklMTElMjAoJTE5KyUxNiYpIyQxOSUzRSkkJjA5JTBBITktKyolM0M5JTI1JDEoJCUyMiglMDAhMyElMjU0NCElMjItJTAxLz8xLiUyMCUzQzolMjAsOSUxOT8obCslMTU2KjMzMDUtJTNFNy8xOSUxQik/Jj0zLSM0KzAkJzIlN0Y/JTAycjgyJTE1LiUyMCknMiUxRiYrJTA1Ji40LTA5MCUyMDMlMjAnOSUxNHU/JTIwPzknLTQ/Ji8lM0M5OiUyNSslMDBqJTIyKHNlOSMjJjQ7IzYlM0UlM0MyKyklM0MoMz8xKCUzRS0/LyshJTNDLyMyKyUwNiY4JTNFLic5MSkwLiclMjItJTE4OTQ2LzY/KCUxNi0rMCYheSszITUoLTokMjg/Ljs5JTA3MiUwRnIrJTI1Mj8zd2E5JTNDJTIwMj8lMDEmMTIlMjUlMjAzJTIyLTcoJTBGNDklM0UtLj84JTIyJTIwPzcmMDklMTIjKCclM0M/NigoMiEoIzIlMTUuOyE6KygvOik2MiUwOTU0NTQpJTIyPyUxQTcnJTI1OS8mOSUxQyUzQzMzNDklMUUpJTI1MjQlMjA2MjEkOislM0MvNzUlM0MoPTIlMDIlMjAnJTIwNjgoJDklMjIlM0UpODUrLj0yMSQhOTAkNzMrIzYvOSUyNTA5Mi45NCE5JTFFKygpJyUyMjUyPy8lMjUyJzIlMDklMUUxJTIyNSUyNTgkKy49KDM5KyUxMDooJTIyKSslMDg9LzM/JiQhJTI1JjUrNyUzQyUzQyMvMSUyMiEyMiUyMCEmLSUyMDklMjAxOSUxMSQoJTAwOiQtKDM3Kyg9LzooNiwtJTIwMy8yMzsyJTE1LSUzQyQ4KTI/JTNDOSUxRSMyJCtvLSUwMD8yISUyMj0pJD84KDElMjU6JCsuPSUyNSUyMj8lMjA0NiUzRSglMTE/OSMjJTI1KCEuJTNDJTIyKCw6MiUyMCkjMSslMTQnLTsxKyUxNCcjJCUyMDIlMjItODcmKzA6KCUyMikrJTIyJTIwLzcxMDklMDEyJTExJCEzNiUzRSUwOSUxRSslMEUnKTs/JTA3Li0lMjA5JiskJTNDIz0oMDklMUMlMjI6LjQjLT8lMjIlMjAhMiUyMDIlMTV4K2UtJTAwJTNDPzYoJTI1KSQ/JTA2JCEjOi03JiEyJTI1LSUzQyQ2MiUwNik0KS05OCMlM0MpNzIlMjIlMjAnJTIwNjgoJTBCKyUwNSUyNTI6LjYmPzIlMjIlMjA3Mj0oMzMrbC0tNDIrJTE0MCUzRT8xITklMTUlM0U5LCslMDQlM0MhJiUyMCclMjItKDMjJTIwJTIwLSU3QyY5KyUxMDolMjIyLiUyMjklMTAjOSolM0MlMjItJTFDJC4lMjUlMjIhOC8/JTAwJTNFLSgzLTQlM0UtJTBBJTI1Jis0IyUyMD81KzklMUMlM0MzLzA1LSUwOTokOCUyMj04KCUyMjQrPzIlMjAlMjAnOSUzQzozMzMrJTNDOyglM0MrMC0hPy8rNDYlMjAzJTIyISghMiYlMjAnJTIyPTgoJTBGPyQlM0UlMjAhJTI1KyUxNDouOig7JTIwIik7eDM9MTticmVhaztjYXNlIDE6dmFyIGYzPTAsYzM9MDt4Mz01O2JyZWFrO2Nhc2UgMzpjMz0wO3gzPTk7YnJlYWs7Y2FzZSA0OngzPWMzPT09RDMubGVuZ3RoPzM6OTticmVhaztjYXNlIDk6dTMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYTMuY2hhckNvZGVBdChmMyleRDMuY2hhckNvZGVBdChjMykpO3gzPTg7YnJlYWs7Y2FzZSA1OngzPWYzPGEzLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSA3OnUzPXUzLnNwbGl0KCd+Jyk7cmV0dXJuIGZ1bmN0aW9uKHkzKXt2YXIgSjM9Mjtmb3IoO0ozIT09MTspe3N3aXRjaChKMyl7Y2FzZSAyOnJldHVybiB1M1t5M107YnJlYWs7fX19O2JyZWFrO2Nhc2UgODpmMysrLGMzKys7eDM9NTticmVhazt9fX0oJ0FVR1NMVicpfTticmVhazt9fX0oKTt5N2xsLnQzPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5sMy5GMT09PSdmdW5jdGlvbic/eTdsbC5sMy5GMS5hcHBseSh5N2xsLmwzLGFyZ3VtZW50cyk6eTdsbC5sMy5GMTt9O3k3bGwuaTI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLkwzPT09J2Z1bmN0aW9uJz95N2xsLmszLkwzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLkwzO307ZnVuY3Rpb24geTdsbCgpe315N2xsLngyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5GMT09PSdmdW5jdGlvbic/eTdsbC5rMy5GMS5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5GMTt9O3k3bGwuTjI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB5N2xsLmszLmIzPT09J2Z1bmN0aW9uJz95N2xsLmszLmIzLmFwcGx5KHk3bGwuazMsYXJndW1lbnRzKTp5N2xsLmszLmIzO307eTdsbC5CMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHk3bGwuTDEuRjE9PT0nZnVuY3Rpb24nP3k3bGwuTDEuRjEuYXBwbHkoeTdsbC5MMSxhcmd1bWVudHMpOnk3bGwuTDEuRjE7fTt5N2xsLnMyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgeTdsbC5rMy5UMz09PSdmdW5jdGlvbic/eTdsbC5rMy5UMy5hcHBseSh5N2xsLmszLGFyZ3VtZW50cyk6eTdsbC5rMy5UMzt9OyFmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvLHMsYyxhLHUsaCxmLHAsXyxsLGQsdixiLG0sZyxrLHksdyx4LE8sQyxFLFAsVCxBLEYsUyxqLEwseixCLEksTSxXLEQsVSxSLE4sSCxxLEosViwkLFEsRyxZLEssWixYLHR0LGV0LGl0LG50LHJ0LG90LHN0LGN0LGF0LHV0LGh0LGZ0LHB0LF90LGx0LGR0LHZ0LGJ0LG10LGd0LGt0LHl0LHd0LHh0LE90LEN0LEV0LFB0LFR0LEF0LEZ0LFN0LGp0LEx0LHp0LEJ0LEl0LE10LFd0LER0LFV0LFJ0LE50LEh0LHF0LEp0LFZ0LCR0LFF0LEd0LFl0LEt0LFp0LFh0LHRlLGVlLGllLG5lLHJlLG9lLHNlLGNlLGFlLHVlLGhlLGZlLHBlLF9lLGxlLGRlLHZlLGJlLG1lLGdlLGtlLHllLHdlLHhlLE9lLENlLEVlLFBlLFRlLEFlLEZlLFNlLGplLExlLHplLEJlLEllLE1lLFdlLERlLFVlLFJlLE5lLEhlLHFlLEplLFZlLCRlLFFlLEdlLFllLEtlLFplLFhlLHRpLGVpLGlpLG5pLHJpLG9pLHNpLGNpLGFpLHVpLGhpLGZpLHBpLF9pLGxpLGRpLHZpLGJpLG1pLGdpLGtpLHlpLHdpLHhpLE9pLENpLEVpLFBpLFRpLEFpLEZpLFNpLGppLExpLHppLEJpLElpLE1pLFdpLERpLFVpLFJpLE5pLEhpLHFpLEppLFZpLCRpLFFpLEdpLFlpLEtpLFppLFhpLHRuLGVuLG5uLHJuLG9uLHNuLGNuLGFuLHVuLGhuLGZuLHBuLF9uLGxuLGRuLHZuLGJuLG1uLGduLGtuLHluLHduLHhuLE9uLENuLEVuLFBuLFRuLEFuLEZuLFNuLGpuLExuLHpuLEJuLEluLE1uLFduLERuLFVuLFJuLE5uLEhuLHFuLEpuLFZuLCRuLFFuLEduLFluLEtuLFpuLFhuLHRyLGVyLGlyLG5yLHJyLG9yLHNyLGNyLGFyLHVyLGhyLGZyLHByLF9yLGxyLGRyLHZyLGJyLG1yLGdyLGtyLHlyLHdyLHhyLE9yLENyLEVyLFByLFRyLEFyLEZyLFNyLGpyLExyLHpyLEJyLElyLE1yLFdyLERyLFVyLFJyLE5yLEhyLHFyLEpyLFZyLCRyLFFyLEdyLFlyLEtyLFpyLFhyLHRvLGVvLGlvLG5vLHJvLG9vLHNvLGNvLGFvLHVvLGhvLGZvLHBvLF9vLGxvLHZvLGJvLG1vLGdvLGtvLHlvLHdvLHhvLE9vLENvLEVvLFBvLFRvLEFvLEZvLFNvLGpvLExvLHpvLEJvLElvLE1vLFdvLERvLFVvLFJvLE5vLEhvLHFvLEpvLFZvLCRvLFFvLEdvLFlvLEtvLFpvLFhvLHRzLGVzLGlzLG5zLHJzLG9zLHNzLGNzLGFzLHVzLGhzLGZzLHBzLF9zLGxzLGRzLHZzLGJzLG1zLGdzLGtzLHlzLHdzLHhzLE9zLENzLEVzLFBzLFRzLEFzLEZzLFNzLGpzLExzLHpzLEJzLElzLE1zLFdzLERzLFVzLFJzLE5zLEhzLHFzLEpzLFZzLCRzLFFzLEdzLFlzLEtzLFpzLFhzLHRjLGVjLGljLG5jLHJjLG9jLHNjLGNjLGFjLHVjLGhjLGZjLHBjLF9jLGxjLGRjLHZjLGJjLG1jLGdjLGtjLHljLHdjLHhjLE9jLENjLEVjLFBjLFRjLEFjLEZjLFNjLGpjLExjLHpjLEJjLEljLE1jLFdjLERjLFVjLFJjLE5jLEhjLHFjLEpjLFZjLCRjLFFjLEdjLFljLEtjLFpjLFhjLHRhLGVhLGlhLG5hLHJhLG9hLHNhLGNhLGFhLHVhLGhhLGZhLHBhLF9hLGxhLGRhLHZhLGJhLG1hLGdhLGthLHlhLHdhLHhhLE9hLENhLEVhLFBhLFRhLEFhLEZhLFNhLGphLExhLHphLEJhLElhLE1hLFdhLERhLFVhLFJhLE5hLEhhLHFhLEphLFZhLCRhLFFhLEdhLFlhLEthLFphLFhhLHR1LGV1LGl1O2U9eTdsbC5aMygzMDQpO2k9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87bj0nIic7cj0icmFuZCI7bz0id2lkdGgiO3M9Ii4iO2M9ImhhcyI7YT0iQ2hyb21lIjt1PSJwYWdlIjtoPS93aW5kb3dzLztmPSJOYSI7cD0iQ29uZyI7Xz0icmVxdWVzdCI7bD0iQnYiO2Q9IkRlZmF1bHQiO3Y9Im9uYmx1ciI7Yj0iVGFiIjttPSJ3aW5kb3ciO2c9ImF0dHJpYnV0ZXMiO2s9L29wZXJhLzt5PSJkb2N1bWVudCI7dz0iZW5hYmxlZCI7eD0iUXUiO089ImRhbmNlIjtDPSJUaGFuaCI7RT0idW5iaW5kIjtQPSJMZWZ0IjtUPSJQbHVnaW4iO0E9Im1lbnViYXIiO0Y9LyMuKiQvO1M9InVzZXIiO2o9InRvdWNoZW5kIjtMPSJWZXJzaW9uIjt6PSI1MCI7Qj0iX3RhcmdldCI7ST0iT2JqZWN0IjtNPSIxMDAiO1c9ImV4ZWMiO0Q9IndlYmtpdCI7VT0iT2YiO1I9IkFnYjIiO049InR5cGUiO0g9InJkIjtxPSIlIjtKPSJiYWNrZ3JvdW5kIjtWPSJHIjskPSJvdXRlciI7UT0iUmVnIjtHPSJ1cmwiO1k9Illtb2wiO0s9IlN0cmluZyI7Wj0ibWVzc2FnZSI7WD0ic3JjIjt0dD0iQ2xpY2tlZCI7ZXQ9IkVkZ2UiO2l0PSJJbmRleCI7bnQ9InNsaWNlIjtydD0iaWYiO290PSJfYmxhbmsiO3N0PSJwb3B1bmRlcmpzIjtjdD0iUSI7YXQ9IlF1ZXVlZCI7dXQ9IkpxIjtodD0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7ZnQ9IjoiO3B0PSJaIjtfdD0icHRjb25nIjtsdD0iVmFsdWUiO2R0PS9jaHJvbWV8b3BlcmF8ZWRnZXxjcmlvc3xvcGlvc3xmeGlvc3x1Yy9pO3Z0PSJwZXJwYWdlIjtidD0iaWdub3JlIjttdD0iTmxjaSI7Z3Q9Ik4iO2t0PSJSaTB4Ijt5dD0iY29va2llIjt3dD0ic2NyZWVuIjt4dD0iRWciO090PSJGaXJlIjtDdD0iRzlpYWp3OCI7RXQ9InN1YnN0ciI7UHQ9Ikxvd2VyIjtUdD0iZG9tYWluIjtBdD0iRGVidWciO0Z0PSJjb250ZW50IjtTdD0iaXMiO2p0PSJBZ2VudCI7THQ9InVuZGVmaW5lZCI7enQ9IkF0IjtCdD0ibmV0d29yayI7SXQ9L3JhZGlvfGNoZWNrYm94L2k7TXQ9IlRzcCI7V3Q9ImRpc3BsYXkiO0R0PSJGdW5jdGlvbiI7VXQ9IkZzZyI7UnQ9InJlc2V0IjtOdD0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SHQ9IlJpIjtxdD0idG9vbGJhciI7SnQ9IlN0b3JhZ2UiO1Z0PSJkZWNvZGUiOyR0PSJMMDVoYiI7UXQ9InNwZWNpZmllZCI7R3Q9L2ZpcmVmb3h8Znhpb3MvaTtZdD0ibnVtYmVyIjtLdD0iaW0iO1p0PSJjb20iO1h0PSJXaW5kb3ciO3RlPSJ2aXNpYmlsaXR5IjtlZT0iWjIiO2llPS9lZGdlfG9wclwvLztuZT0icnVuIjtyZT0iQ29tcGFyZSI7b2U9IkF6IjtzZT0iRmlyZWZveCI7Y2U9InBvcHVwIjthZT0iSGVpZ2h0Ijt1ZT0iRHd2IjtoZT0iT3BlbiI7ZmU9ImxlZnQiO3BlPSJEb21haW4iO19lPSJwb2ludGVyIjtsZT0iU3RhY2siO2RlPS9yZXNldHxidXR0b258c3VibWl0L2k7dmU9IkEiO2JlPSJxdWVyeSI7bWU9InByaW50IjtnZT0iQnkiO2tlPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO3llPS9eKCN8amF2YXNjcmlwdCkvaTt3ZT0iOSI7eGU9Ik1nIjtPZT0iWTMiO0NlPSJjcmVhdGUiO0VlPSJ2YXIiO1BlPSJUaW1lb3V0IjtUZT0iKF58XFxzKSI7QWU9Im1vdXNldXAiO0ZlPSJVbmRlciI7U2U9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO2plPSJkZXN0cm95IjtMZT0iSWZyYW1lIjt6ZT0iYXBwbGljYXRpb24iO0JlPSJHZXR0ZXJfXyI7SWU9ImRlbGF5IjtNZT0vKGNvbXBhdGlibGV8d2Via2l0KS87V2U9IkV2ZW50cyI7RGU9Il0iO1VlPSJQb2ludCI7UmU9Illtb3kiO05lPSJkaXNwYXRjaCI7SGU9IkludCI7cWU9IkxpZGMiO0plPSI5OTk5IjtWZT0iPSI7JGU9IkF3IjtRZT0iaGFuZGxlZCI7R2U9IlFjbTlrZCI7WWU9IkhkaGEiO0tlPSJHOXdkIjtaZT0iYXBwbHkiO1hlPSJDOSI7dGk9ImNsb3NlIjtlaT0ic2Nyb2xsYmFycyI7aWk9ImVzY2FwZSI7bmk9IkUiO3JpPSJHeGwiO29pPSJjb3ZlciI7c2k9Ik9uY2UiO2NpPSJXZWJraXQiO2FpPSJTYWZhcmkiO3VpPSJhIjtoaT0iaW5kZXgiO2ZpPSJzdHJpbmciO3BpPSJUYWciO19pPSJ7IjtsaT0ib25jbGljayI7ZGk9IlltbzgiO3ZpPSJQIjtiaT0iUmVhY2hlZCI7bWk9ImZpeGVkIjtnaT0icHJvdG90eXBlIjtraT0vaShQaG9uZXxQYWR8UG9kKS9pO3lpPSJjdXJzb3IiO3dpPSJLIjt4aT0iT3duIjtPaT0vc2FmYXJpLztDaT0vKD86T1BSfE9wZXJhfE9QaU9TKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7RWk9ImlucHV0IjtQaT0iTWVzc2FnZSI7VGk9InRyeSI7QWk9IkFuZHJvaWQiO0ZpPSJfdGltZW91dF8iO1NpPSJSdiI7amk9IlNjcm9sbGJhciI7TGk9Ik9wZXJhIjt6aT0iRmxhZyI7Qmk9IlBvc2l0aW9uIjtJaT0iQmxhbmsiO01pPSJoaWRkZW4iO1dpPSJKIjtEaT0ifCI7VWk9IkRhdGUiO1JpPSJtZXRhIjtOaT0iT25sb2FkIjtIaT0iWCI7cWk9ImphdmFzY3JpcHQiO0ppPSJBbGwiO1ZpPSJ3IjskaT0ib2JqZWN0IjtRaT0ibW92ZSI7R2k9ImVsc2UiO1lpPSJNYXRoIjtLaT0iZmlyZSI7Wmk9IkZyb20iO1hpPSJwYXJlbnQiO3RuPSJ1Ijtlbj0iMCI7bm49IkV4cCI7cm49IlciO29uPSJIaWphY2tpbmciO3NuPSIyMCI7Y249IikiO2FuPSJJbnRlcnZhbCI7dW49ImhlaWdodCI7aG49IjsiO2ZuPSJyZXNpemUiO3BuPSJzZWxmIjtfbj0iLSI7bG49ImRldGFjaCI7ZG49ImV2ZW50cyI7dm49IisiO2JuPSJpbnNlcnQiO21uPSJleHBpcmVzIjtnbj0ibmV4dCI7a249InB1c2giO3luPSJVeSI7d249IkpzIjt4bj0iVHlwZXMiO09uPSJIIjtDbj0iQiI7RW49IkkiO1BuPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtUbj0iPCI7QW49Im5ldyI7Rm49IkF0dHJpYnV0ZSI7U249ImNvbmZpZyI7am49IkMiO0xuPS9tc2llfHRyaWRlbnRcLy87em49IlNpYmxpbmciO0JuPSJsb25nIjtJbj0iUWciO01uPSJyZXR1cm4iO1duPSJDZ24iO0RuPS9GeGlPU1wvKFtcZFwuXSspL2k7VW49IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7Um49LzpcZCskLztObj0iY2FuY2VsIjtIbj0iQW8iO3FuPSJAIjtKbj0idG9wIjtWbj0iS2QiOyRuPSJsb2NhbCI7UW49ImFicyI7R249Il9fZGVmaW5lIjtZbj0iUmhiIjtLbj0iUGF0aCI7Wm49Ijk5OTk5OTkiO1huPSJeIjt0cj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2VyPSJOb2RlIjtpcj0iVzVrYjIiO25yPSJubyI7cnI9ImFwcGVuZCI7b3I9IklnIjtzcj0iRjAiO2NyPSJkZXYiO2FyPSJKMCI7dXI9InRhYnVuZGVyIjtocj0iRmFsbGJhY2siO2ZyPSJjb25zb2xlIjtwcj0iTDEiO19yPSJ0YWciO2xyPSJqb2luIjtkcj0idGVzdCI7dnI9Im9ubW91c2Vtb3ZlIjticj0iVGFncyI7bXI9ImVsZW1lbnQiO2dyPSJjYWxsIjtrcj0iUyI7eXI9ImJhc2U2NCI7d3I9IldpZHRoIjt4cj0iVXRpbHMiO09yPSJjaGFuZ2VkIjtDcj0iRWxlbWVudHMiO0VyPSJpZCI7UHI9Imdlb2xvY2F0aW9uIjtUcj0vYnV0dG9ufGlucHV0L2k7QXI9InRvIjtGcj0ib3B0cyI7U3I9IkNvZGUiO2pyPSJQYXJlbnQiO0xyPSJzY3JpcHQiO3pyPSJQcm9wZXJ0eSI7QnI9L21vemlsbGEvO0lyPSJvdmVyZmxvdyI7TXI9IlRvIjtXcj0iQnciO0RyPSJib29sZWFuIjtVcj0iY2F0Y2giO1JyPSJlbXB0eSI7TnI9Ik5vdGlmaWNhdGlvbiI7SHI9IiAiO3FyPSJmb2N1cyI7SnI9IlByb3BhZ2F0aW9uIjtWcj0iaSI7JHI9Ik0iO1FyPSIxIjtHcj0ifSI7WXI9ImJsdXIiO0tyPSJXaW4iO1pyPSJZIjtYcj0iaW5pdCI7dG89InBvc3QiO2VvPS9tYWNpbnRvc2gvO2lvPSJEIjtubz0iVG9wIjtybz0iLyI7b289Ik92ZXJsYXkiO3NvPSJNb3VzZSI7Y289ImFic29sdXRlIjthbz0ibm9uZSI7dW89IiMiO2hvPSJpbm5lciI7Zm89IkJsIjtwbz0ibG9nIjtfbz0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO2xvPSJUIjt2bz0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7Ym89InByZXZlbnQiO21vPSJTZW5zaXRpdmUiO2dvPSJMYXN0Ijtrbz0iTXkiO3lvPSJGcyI7d289Ik1vYmlsZSI7eG89IlNlbGVjdG9yIjtPbz0iRjIiO0NvPSJ6IjtFbz0iY2xpZW50IjtQbz0iY2xlYXIiO1RvPSJBb2MiO0FvPSJkZXZpY2UiO0ZvPSJDb21wb25lbnQiO1NvPSJGaXJlZCI7am89ImRlYnVnIjtMbz0iSnZiMyI7em89ImZyYW1lIjtCbz0icGRmIjtJbz0iWXAiO01vPSJjdXJyZW50IjtXbz0iYXV0aG9yIjtEbz0ibWltZSI7VW89ImdldCI7Um89Ik1vemlsbGEiO05vPSJjaGVjayI7SG89Ik8iO3FvPSJjb250YWN0IjtKbz0iaHJlZiI7Vm89ImJlZm9yZSI7JG89Ik5sIjtRbz0iTG0iO0dvPSJVZSI7WW89IlBvcHVuZGVyIjtLbz0iaGVhZCI7Wm89IkpoYSI7WG89IlBoYW4iO3RzPSJudWxsIjtlcz0iT3B0aW9ucyI7aXM9IlVnIjtucz0icmVtb3ZlIjtycz0ic3R5bGUiO29zPSJGIjtzcz0id3JpdGUiO2NzPSJyYW5kb20iO2FzPSJidXR0b24iO3VzPSJSZWZlcmVyIjtocz0idGFidXAiO2ZzPS9jaHJvbWV8Y3Jpb3MvO3BzPSJsb2NhdGlvbiI7X3M9IkxpbnV4Ijtscz0ibW9iaWxlIjtkcz0iSnBjIjt2cz0iZnVuY3Rpb24iO2JzPSJMMHBoZG0iO21zPSJtYXRjaCI7Z3M9ImlmcmFtZSI7a3M9Ilc1ayI7eXM9Ikxpc3RlbmVyIjt3cz0iMjgiO3hzPSIxNTAiO09zPSJyZWZlcnJlciI7Q3M9IkNvb2tpZSI7RXM9InN0b3AiO1BzPSJta3AiO1RzPSJWIjtBcz0iUmVsZWFzZSI7RnM9L2FuZHJvaWQvO1NzPSIkIjtqcz0iRzluIjtMcz0iQmV0dGVyIjt6cz0iQXV0aG9yIjtCcz0idGFiIjtJcz0ibmF2aWdhdG9yIjtNcz0iQXZhaWxhYmxlIjtXcz0vXy9nO0RzPSJjbGFzcyI7VXM9InNhZmUiO1JzPSJhdHRhY2giO05zPSJtb3VzZWRvd24iO0hzPSJkaXYiO3FzPSJDdXJyZW50IjtKcz0iMiI7VnM9Im9sZCI7JHM9ImFmdGVyIjtRcz0idW5kZXIiO0dzPSJBZyI7WXM9IlRhcmdldCI7S3M9IkFycmF5Ijtacz0iPiI7WHM9L1ZlcnNpb25cLyhbXGRcLl0rKVxzKyhtb2JpbGVcL1teXHNdK1xzKyk/U2FmYXJpL2k7dGM9Imhvc3QiO2VjPSJOamNtbHdkIjtpYz0iKCI7bmM9Im9mZnNldCI7cmM9Im9yaWdpbiI7b2M9IiwiO3NjPSJOYW1lIjtjYz0icHgiO2FjPSJsZW5ndGgiO3VjPSJjaGFyIjtoYz0iTGoiO2ZjPSJVajQiO3BjPSJibGFuayI7X2M9Ild4bGNqdzgiO2xjPSJ2ZXJzaW9uIjtkYz0ic2hpZnQiO3ZjPSJub2RlIjtiYz0idG91Y2hzdGFydCI7bWM9IlZ1IjtnYz0iTW9kZSI7a2M9Ik1hYyI7eWM9IlsiO3djPSJMIjt4Yz0iQ2FzZSI7T2M9IkNoaWxkIjtDYz0iQW5jaG9yIjtFYz0vKD86ZnRwfGh0dHBzPyk6XC9cLyhbXlwvXSspLztQYz0iRXhwaXJlcyI7VGM9InRleHQiO0FjPSJQajVsYm0iO0ZjPSJvcGVuZXIiO1NjPSJzZXQiO2pjPSJyZXN0b3JlIjtMYz0iaHRtbCI7emM9InBvc2l0aW9uIjtCYz0iMjAxOSI7SWM9IkJ1YmJsZSI7TWM9IlUiO1djPSJub3JlZiI7RGM9IkNvdW50IjtVYz0iSWdub3JlIjtSYz0iZmxvb3IiO05jPSJMb2dnZXIiO0hjPSJCZWZvcmUiO3FjPSJhZGQiO0pjPSJlIjtWYz0iRzlpYWoiOyRjPSJ0aW1lIjtRYz0vbGludXgvO0djPSJkZXNrdG9wIjtZYz0iRWxlbWVudCI7S2M9Im1pbiI7WmM9InRyaWNrcyI7WGM9IiI7dGE9IlNtIjtlYT0icmVzaXphYmxlIjtpYT0icGFyc2UiO25hPSJDb25maWciO3JhPS9NU0lFXHMrKFtcZFwuXSspL2k7b2E9InNob3VsZCI7c2E9IihcXHN8JCkiO2NhPSJQb3AiO2FhPSJhYm91dCI7dWE9InNlbGVjdG9yIjtoYT0iSXRlbSI7ZmE9InRhcmdldCI7cGE9Im1lcmdlIjtfYT0ib3BlbiI7bGE9IlBlcm1pc3Npb24iO2RhPSJkYXRhIjt2YT0iMHB4IjtiYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO21hPSJTdGFtcCI7Z2E9L2VkZ2UvO2thPSJvbiI7eWE9InBvcCI7d2E9IkJyb3dzZXIiO3hhPSJzdGF0dXMiO09hPSJTY3JpcHQiO0NhPSJtYXgiO0VhPSJWeiI7UGE9IkV2ZW50IjtUYT0iUGVycGFnZSI7QWE9IlVwcGVyIjtGYT0iISI7U2E9Im5vdCI7amE9InNwbGl0IjtMYT0iQmluZCI7emE9IlVybCI7QmE9IlBtIjtJYT0iSWQiO01hPSJjb25jYXQiO1dhPS93ZWJraXQvO0RhPSJCaCI7VWE9IlRpbWUiO1JhPSJwYXRoIjtOYT0iUiI7SGE9ImJpbmQiO3FhPSJKcWN5NWpiMjBwIjtKYT0iUGoiO1ZhPSJwb3B1bmRlciI7JGE9ImNsaWNrIjtRYT0iYm9keSI7R2E9Imh0dHBzIjtZYT0iVG91Y2hlcyI7S2E9InRyYW5zcGFyZW50IjtaYT0ibmFtZSI7WGE9InJlcGxhY2UiO3R1PSJPcGVuZXIiO2V1PS9vcGVyYXxvcHJ8b3Bpb3NcLy87aXU9ImxvYWQiOyFmdW5jdGlvbih0LGYsSSxRLER0LFZ0LEhlLGlpLFlpLG5uLHduLEZvLExzLGlhLE5hLG51LHJ1LG91LHN1LGN1KXsidXNlIHN0cmljdCI7dmFyIHUyPXk3bGw7dmFyIGF1LHV1LGh1LGZ1LHB1LF91LGx1LGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEN1LEV1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1O211PXQ7dTIuTDIoMCk7Z3U9dTIuUzIoQyxxbyxacyxxbixYYyxfdCxUbixYYyxIcixIcixYbyxwLFp0LHMsSHIpO3UyLkwyKDEpO2t1PXUyLlMyKHMsSnMscyxlbix3ZSk7dTIuTDIoMSk7eXU9dTIuTjIocm8sQmMscm8sd3MsUXIpO3UyLkwyKDIpO3d1PXUyLk4yKG11LHppKTt1Mi5zMigyKTt4dT11Mi5OMihtdSxEYyk7dTIuczIoMyk7T3U9dTIuTjIoenQsWGMsY2EsWGMsZ28sbXUpO3UyLkwyKDIpO0N1PXUyLk4yKG11LG9vKTtFdT1WYTtQdT1jZTtUdT11cjtBdT1ocztGdT1mW0lzXVtTK1hjK2p0XVtBcitYYytQdCtYYyt4Y10oKTtTdT17bmV3VGFiOiEwLHVuZGVyOiEhW119O2p1PW51bGw7THU9ISFbXTt6dT0he307QnU9ZnVuY3Rpb24oKXt9O3UyLkwyKDQpO0l1PXUyLlMyKHFuLEJ0LFhjKTtNdT1EdFtNbytYYytPYV18fHtzcmM6bnVsbH07dTIuczIoNCk7V3U9ZltJc11bdTIuTjIoWGMseG4sRG8pXTtEdT16dTtVdT16dTtSdT16dTtOdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZltKbl0hPT1mW3BuXSYmdHlwZW9mIGZbSm5dW3ldW3BzXVtBcitYYytLXSgpPT09Zmk/ZltKbl06Zltwbl07fWNhdGNoKHQpe3ZhciBSNCxYNCxlNDtSND0tMjM2MzM4MjIzO1g0PS0xNTk2ODk2MDU2O2U0PTI7Zm9yKHZhciBWND0xO3UyLkIxKFY0LnRvU3RyaW5nKCksVjQudG9TdHJpbmcoKS5sZW5ndGgsMjQ4MTEpIT09UjQ7VjQrKyl7cmV0dXJuIFJ1PUx1LGZbcG5dO31pZih1Mi5XMShlNC50b1N0cmluZygpLGU0LnRvU3RyaW5nKCkubGVuZ3RoLDYzMTQzKSE9PVg0KXtyZXR1cm4gUnU9THUsZltwbl07fX19KCk7SHU9TnVbbV1bX2FdO3F1PWZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9TnVbcHNdW0pvXTt9Y2F0Y2goZSl7fXJldHVybiFSdSYmdHx8KFN1PXt1bmRlcjp6dSxuZXdUYWI6THV9LHQ9RHRbT3NdKSx0O30oKTtmdT17ZTpmdW5jdGlvbih0KXt2YXIgZTtlPVt0XVtNYV0oSGVbZ2ldW250XVtncl0oYXJndW1lbnRzLDEpKTt0aGlzLnRba25dKGUpO3V1LmkoKSYmdGhpcy5uKGUpO30scjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy50W2FjXTt0Kyspe3RoaXMubih0aGlzLnRbdF0pO319LHQ6W10sbjpmdW5jdGlvbih0KXt0eXBlb2YgZltmcl0hPT1MdCYmZltmcl1bcG9dJiZpaVtaZV1bZ3JdKGZbZnJdW3BvXSxjb25zb2xlLHQpO319O2R1PXtzOmZ1bmN0aW9uKCl7aWYodGhpcy5vPT09anUpdHJ5e2ZbJG4rWGMrSnRdW1NjK1hjK2hhXShtdSwxKTtmWyRuK1hjK0p0XVtucytYYytoYV0obXUpO3RoaXMubz1MdTt9Y2F0Y2godCl7dGhpcy5vPXp1O31yZXR1cm4gdGhpcy5vO30sYTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHRoaXMucygpP2ZbJG4rWGMrSnRdW1VvK1hjK2hhXSh0KTpsdS5hKHQpO31jYXRjaChlKXtyZXR1cm4ganU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP2ZbJG4rWGMrSnRdW1NjK1hjK2hhXSh0LGUpOmx1LmModCxlKTt9LG86anUsdTpmdW5jdGlvbih0KXt0aGlzLnMoKT9mWyRuK1hjK0p0XVtucytYYytoYV0odCk6bHUudSh0KTt9fTtsdT17dTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBvdSgwKSk7fSxhOmZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDUpO2U9RHRbeXRdW21zXShuZXcgbm4odTIuUzIoRGUsWGMsWGMsWGMsWGMsVmUsaG4sWG4sWGMsWGMsWGMsdm4seWMsdCksVnIpKTtyZXR1cm4gZT9zdShlWzBdW2phXShYYytWZStYYylbMV0pOmp1O30sYzpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7cz1pfHxYYztzJiYodHlwZW9mIHM9PT1ZdD8obz1uZXcgb3UoKSlbU2MrWGMrVWFdKG9bVW8rWGMrVWFdKCkrMWUzKnMpOm89cyxzPVhjK2huK21uK1ZlK1hjK29bQXIrWGMrTWMrWGMrbG8rWGMram4rWGMrS10oKSk7RHRbeXRdPXQrKFhjK1ZlK1hjKStjdShYYytlKStzKyhyP1hjK2huK1R0K1ZlK1hjK3I6WGMpKyhYYytobitSYStWZStYYykrKG58fFhjK3JvK1hjKTt9fTtwdT17cDpmdW5jdGlvbih0KXt2YXIgZSxpO2k9e307Zm9yKGU9MDtlPHRbYWNdO2UrKyl7aVt0W2VdWzBdXT10W2VdWzFdO31yZXR1cm4gaTt9LGw6ZnVuY3Rpb24odCl7dmFyIGUsaTtlPXB1Ll8odCk7dTIuTDIoNCk7aT10W1hhXShTZSx1Mi5TMihTcyxRcixYYykpO3RyeXtyZXR1cm4hbmV3IG5uKHZzK0hyK1hjK2krVW4sS3QpW2RyXShlW0FyK1hjK0tdKCkpO31jYXRjaChuKXtyZXR1cm4gbltBcitYYytLXSgpW2hpK1hjK1VdKFN0K0hyK1NhK0hyK3VpK0hyK3ZzKT4tMT9MdTpfdS5kP0x1Onp1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbSm9dJiYheWVbZHJdKGVbSm9dKT9lW0pvXTp6dTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciB1NCxaNCxsNCxuO3U0PS0xODk2NjQyOTkyO1o0PS0xNTM0OTUxMDQxO2w0PTI7Zm9yKHZhciBmND0xO3UyLkIxKGY0LnRvU3RyaW5nKCksZjQudG9TdHJpbmcoKS5sZW5ndGgsMTAyNjEpIT09dTQ7ZjQrKyl7bDQrPTI7fWlmKHUyLkIxKGw0LnRvU3RyaW5nKCksbDQudG9TdHJpbmcoKS5sZW5ndGgsODA4OTApIT09WjQpe310cnl7cmV0dXJuIG49dFtVbytYYytGbl0oZSksdHlwZW9mIGkhPT1maT96dTohIW5ldyBubihUZStpK3NhLFZyKVtXXShuKTt9Y2F0Y2gocil7cmV0dXJuIHp1O319LHg6ZnVuY3Rpb24odCl7cmV0dXJuIFZ0W2dpXVtBcitYYytLXVtncl0odCk9PT1YYyt5YyskaStIcitLcytEZStYYzt9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fSxUOmZ1bmN0aW9uKHQpe3QmJihOdVtwc109dCk7fSx2OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLHMsZTksbTksVjk7ZTk9LTExMTMxODYyMDQ7bTk9LTE4ODI5MjQ2MTtWOT0yO2Zvcih2YXIgTDk9MTt1Mi5CMShMOS50b1N0cmluZygpLEw5LnRvU3RyaW5nKCkubGVuZ3RoLDI3MTA4KSE9PWU5O0w5Kyspe3UyLkwyKDYpO2U9Zlt1Mi5TMihYYyx3cixobyldO3UyLkwyKDcpO2k9Zlt1Mi5TMihYYyxhZSxobyldO249Zlt3dCpYYypIaV0mJmZbd3QvWGMvUF0mJjE7cj1mW3d0L1hjLVpyXSYmZlsod3QtWGMpL25vXSYmNTtzPXt9O3JldHVybiBzW29dPWUsc1t1bl09aSxzW2ZlXT1uLHNbSm5dPXIsc1t4YV09NSxzW3BzXT04LHNbcXRdPTYsc1tBXT0yLHMucmVzaXphYmxlPTcsc1tlaV09NSxfdS5ifHwoc1t1bl0qPV91Lm0/OTk6NTQpLF91Lmd8fChzW29dKz0zLHNbdW5dKj0yKSwhdCE9JGl8fChzPXB1Lmsocyx0KSksczt9aWYodTIuQjEoVjkudG9TdHJpbmcoKSxWOS50b1N0cmluZygpLmxlbmd0aCwyMTA2MCkhPT1tOSl7dTIuczIoOCk7ZT1mW3UyLlMyKHdyLFhjLGhvKV07dTIuczIoOSk7aT1mW3UyLk4yKGFlLFhjLGhvKV07bj1mWyh3dC1YYykvSGldfHxmW3d0JVhjLVBdfHwyO3I9Zlt3dCpYYytacl18fGZbd3QvWGMrbm9dfHw4O3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT02LHNbcHNdPTIsc1txdF09NyxzW0FdPTkscy5yZXNpemFibGU9MCxzW2VpXT05LF91LmImJihzW3VuXS09X3UubT8xMTo1KSxfdS5nJiYoc1tvXSU9MixzW3VuXSs9MSksLXQ9PT0kaSYmKHM9cHUuayhzLHQpKSxzO311Mi5MMig0KTtlPWZbdTIuUzIoWGMsd3IsaG8pXTt1Mi5MMig0KTtpPWZbdTIuUzIoWGMsYWUsaG8pXTtuPWZbd3QrWGMrSGldfHxmW3d0K1hjK1BdfHwwO3I9Zlt3dCtYYytacl18fGZbd3QrWGMrbm9dfHwwO3M9e307cmV0dXJuIHNbb109ZSxzW3VuXT1pLHNbZmVdPW4sc1tKbl09cixzW3hhXT0wLHNbcHNdPTEsc1txdF09MSxzW0FdPTEscy5yZXNpemFibGU9MSxzW2VpXT0xLF91LmImJihzW3VuXSs9X3UubT80Njo1MiksX3UuZyYmKHNbb10tPTUsc1t1bl0tPTQpLHR5cGVvZiB0PT09JGkmJihzPXB1Lmsocyx0KSksczt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9Zjt1Mi5zMig0KTtuPXRbamFdKHUyLk4yKHMsWGMsWGMpKTtmb3IoZT0wO2U8blthY107ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO30sVjpmdW5jdGlvbih0LGUpe3ZhciB0NCxZNCxGMzt0ND0xMzU2NzkyOTY0O1k0PTI3NzU1ODQ0OTtGMz0yO2Zvcih2YXIgQTM9MTt1Mi5CMShBMy50b1N0cmluZygpLEEzLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODMxKSE9PXQ0O0EzKyspe3JldHVybiBZaVtSY10oWWlbY3NdKCkqKGUtdCkpK3Q7fWlmKHUyLkIxKEYzLnRvU3RyaW5nKCksRjMudG9TdHJpbmcoKS5sZW5ndGgsNjcwNjYpIT09WTQpe3JldHVybiBZaVtSY10oWWlbY3NdKCkrZSp0KSp0O319LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbVW8rWGMrRm5dKGUpO31jYXRjaChpKXtyZXR1cm4genU7fX0seTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT1bXTtuPXB1LnYoKTt0cnl7Zm9yKGUgaW4gbil7dHlwZW9mIHRbZV0hPT1MdCYmaVtrbl0oZSsoWGMrVmUrWGMpK3RbZV0pO319Y2F0Y2gocil7ZnUuZShyKTt9dTIuTDIoNCk7cmV0dXJuIGlbbHJdKHUyLlMyKG9jLFhjLFhjKSk7fSxROmZ1bmN0aW9uKHQpe3ZhciBlLGksbjt1Mi5zMigxMSk7ZT11Mi5OMigkaSx0eXBlb2YgdCk7aT10O3UyLkwyKDQpO249RHRbQ2UrWGMrUGFdKHUyLlMyKFhjLFdlLHNvKSk7bltYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwwLDAsMCwwLDAsTHUsenUsenUsTHUsMCxqdSk7ZXx8KGk9cHUueih1aSx7aHJlZjp0fHxkYStmdCtUYytybytMYytvYytYYytUbitMcitacyttK3MrdGkraWMrWGMrY24rWGMraG4rWGMrVG4rWGMrcm8rTHIrWnMrWGN9KSxEdFtRYV1bcnIrWGMrT2NdKGkpKTtpW05lK1hjK1BhXShuKTtlfHxwdS5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixIOSxKOSx6OTtyPUR0W0NlK1hjK1ljXSh0KTtmb3IobiBpbiBlKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKGUsbikmJnJbU2MrWGMrRm5dKG4sZVtuXSk7fUg5PS04NjEyMTQwMDU7Sjk9MTE4MTM5NDkzO3o5PTI7Zm9yKHZhciBQOT0xO3UyLlcxKFA5LnRvU3RyaW5nKCksUDkudG9TdHJpbmcoKS5sZW5ndGgsOTgyNDApIT09SDk7UDkrKyl7cmV0dXJuIGkmJihyW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1pKSxyO31pZih1Mi5XMSh6OS50b1N0cmluZygpLHo5LnRvU3RyaW5nKCkubGVuZ3RoLDk0MTM1KSE9PUo5KXtyZXR1cm4gaXx8KHJbKCgoaG8tWGMpJU9uKlhjLWxvKSpYYy0kcikqWGMvd2NdPWkpLHI7fX0sRjpmdW5jdGlvbih0KXt2YXIgZTtlPUlbdGNdO3JldHVybiB0eXBlb2YgdCE9PUx0JiYoZT0oRWNbV10odCl8fFtYYyxYY10pWzFdKSxlW1hhXShSbixYYyk7fSxVOmZ1bmN0aW9uKHQpe3JldHVybiB0W19yK1hjK3NjXT09PUVuK1hjK2d0K1hjK3ZpK1hjK01jK1hjK2xvJiZJdFtkcl0odFtVbytYYytGbl0oTikpfHx0W19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsdmUpO30sUzpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO289Zi5qUXVlcnl8fG51bGw7aWYodCYmdFtsaV0pe3JldHVybiBMdTt9aWYoIW8pe3JldHVybiB6dTt9dHJ5e2lmKChlPShvKHQpW2RhXShkbil8fG8uaih0LGRuKSlbJGFdKVthY10pe3JldHVybiBMdTt9fWNhdGNoKHMpe310cnl7Zm9yKGU9byhEdFtRYV0pW2RhXShkbilbJGFdLGk9MDtpPGVbYWNdO2krKylmb3Iocj1vKGVbaV1bdWFdKSxuPTA7bjxyW2FjXTtuKyspaWYocltuXT09PXQpe3JldHVybiBMdTt9fWNhdGNoKGMpe31yZXR1cm4genU7fSxCOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyLG8sRDQsczQsSDQ7RDQ9LTEzNTQ4NTM3Mjg7czQ9MTg0MjI0NTY4O0g0PTI7Zm9yKHZhciB6ND0xO3UyLlcxKHo0LnRvU3RyaW5nKCksejQudG9TdHJpbmcoKS5sZW5ndGgsMzc0MzgpIT09RDQ7ejQrKyl7bj0wO3I9aXx8MTA7bz10O0g0Kz0yO31pZih1Mi5CMShINC50b1N0cmluZygpLEg0LnRvU3RyaW5nKCkubGVuZ3RoLDgzNzkwKSE9PXM0KXtuPTE7cj1pJiYxMztvPXQ7fXRyeXtmb3IoO28mJm4rKzxyOyl7aWYodHlwZW9mIGU9PT1maSYmKG9bX3IrWGMrc2NdPT09ZXx8cHUuSShvLGUpKXx8dHlwZW9mIGU9PT0kaSYmbz09PWUpe3JldHVybiBvO311Mi5MMig0KTtvPW9bdTIuTjIoWGMsZXIsWGkpXTt9fWNhdGNoKHMpe31yZXR1cm4genU7fSxKOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcixvLGMsYT10W0FyK1hjK0tdKClbamFdKG58fFhjK3MrWGMpLHU9ZVtBcitYYytLXSgpW2phXShufHxYYytzK1hjKSxoPTAsZj1ZaVtDYV0oYVthY10sdVthY10pO2g8ZiYmKHI9bnUoYVtoXXx8MCwxMCksbz1udSh1W2hdfHwwLDEwKSxydShyKSYmKHI9MCkscnUobykmJihvPTApLGM9cj5vPzE6LTEscj09PW8pO2grKyl7Yz0wO31zd2l0Y2goaSl7Y2FzZSBYYytacytYYzp1Mi5zMigxMSk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytacytYYytWZStYYzp1Mi5zMigxMik7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytUbitYYzp1Mi5zMigxMyk7cmV0dXJuIHUyLlMyKGMsMSk7Y2FzZSBYYytUbitYYytWZStYYzp1Mi5MMigxNCk7cmV0dXJuIHUyLk4yKDEsYyk7Y2FzZSBYYytWZStYYytWZStYYzpjYXNlIFhjK1ZlK1hjK1ZlK1hjK1ZlK1hjOmRlZmF1bHQ6dTIuTDIoMTEpO3JldHVybiB1Mi5TMihjLDApO319LEk6ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHIscDksYjksVDk7aWYodHlwZW9mIGUhPT1maSl7cmV0dXJuIHp1O31pZih0eXBlb2YgRHRbYmUrWGMreG8rWGMrSmldPT09dnMpdHJ5e3A5PS0zNjc5Mjg4OTA7Yjk9LTExMDY1NDA3MDU7VDk9Mjtmb3IodmFyIHM5PTE7dTIuVzEoczkudG9TdHJpbmcoKSxzOS50b1N0cmluZygpLmxlbmd0aCwyMjc4NCkhPT1wOTtzOSsrKXtuPXRbWGkrWGMrZXJdW2JlK1hjK3hvK1hjK0ppXShlKXx8Zi5qUXVlcnkoZSk7VDkrPTI7fWlmKHUyLkIxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjM4MjMpIT09Yjkpe249dFtYaS9YYy9lcl1bYmUvWGMleG8tWGMtSmldKGUpJiZmLmpRdWVyeShlKTt9fWNhdGNoKG8pe31lbHNlIGlmKHB1LkEoKSl0cnl7bj1mLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bYWNdO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIEx1O31zd2l0Y2goZVswXSl7Y2FzZSBYYytzK1hjOmk9W0RzLGVbRXRdKDEpXTticmVhaztjYXNlIFhjK3VvK1hjOmk9W0VyLGVbRXRdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTp6dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtYaStYYytlcl0mJnRbWGkrWGMrZXJdW25zK1hjK09jXSh0KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbztvPXB1Lk8oTHUpO3JldHVybiBuPW9bRnQrWGMrWHRdW3ldW0NlK1hjK1ljXShMciksbltOXT1UYytybytxaSxuW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysobStzK1hpK0hyK1hjK1ZlK1hjK0hyK20rcytKbitIcitYYytWZStYYytIcittK3Mrem8rWGMrWWMrSHIrWGMrVmUrWGMrSHIrdHMraG4rWGMpKyhtK3MrUHMrSHIrWGMrVmUrWGMrSHIrdnMraWMrRytvYytYYytIcitaYStvYytYYytIcitGcitjbitYYytIcitYYytfaStYYykrKEVlK0hyK3lhK1hjK0tyK0hyK1hjK1ZlK1hjK0hyK20rcytfYStpYytHK29jK1hjK0hyK1phK29jK1hjK0hyK0ZyK2NuK1hjK2huK1hjKSsoVGkrSHIrWGMrX2kreWErWGMrS3IrcytGYytIcitYYytWZStYYytIcit0cytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYykrKE1uK0hyK3lhK1hjK0tyK2huK1hjKSsoWGMrR3IrWGMraG4rWGMpLG9bRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10obikscj1vW0Z0K1hjK1h0XS5ta3AodCxlLGkpLHB1LlAobykscjt9LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IG91KHQpOm5ldyBvdSgpKVtVbytYYytVYV0oKTt9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbX3IrWGMrc2NdPT09Q24rWGMrTWMrWGMrbG8rWGMrbG8rWGMrSG8rWGMrZ3R8fHRbX3IrWGMrc2NdPT09RW4rWGMrZ3QrWGMrdmkrWGMrTWMrWGMrbG8mJmRlW2RyXSh0W1VvK1hjK0ZuXShOKSl8fHRoaXMuQih0LENuK1hjK01jK1hjK2xvK1hjK2xvK1hjK0hvK1hjK2d0KSE9PXp1O30sTTpmdW5jdGlvbih0KXt2YXIgZSxLNCxxNCxONDt0cnl7SzQ9MTE0NzE2OTk4MDtxND0tMTkxMzYwODEyMDtOND0yO2Zvcih2YXIgUzQ9MTt1Mi5CMShTNC50b1N0cmluZygpLFM0LnRvU3RyaW5nKCkubGVuZ3RoLDMzMDY1KSE9PUs0O1M0KyspeyhlPXRbbV1bX2FdKGFhJWZ0LXBjKSlbcXJdKCk7ZVt0aV0oKTtONCs9Mjt9aWYodTIuQjEoTjQudG9TdHJpbmcoKSxONC50b1N0cmluZygpLmxlbmd0aCw4NTM0MSkhPT1xNCl7KGU9dFttXVtfYV0oYWElZnQtcGMpKVtxcl0oKTtlW3RpXSgpO30oZT10W21dW19hXShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fWNhdGNoKGkpe30oZT1IdShhYStmdCtwYykpW3FyXSgpO2VbdGldKCk7fSxPOmZ1bmN0aW9uKHQpe3ZhciBlO2U9RHRbQ2UrWGMrWWNdKGdzKTtyZXR1cm4gZVtyc11bV3RdPWFvLHQmJkR0W1FhXVtycitYYytPY10oZSksZTt9LHE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9W0RuLF9vLFBuLENpLGtlLFhzLHJhLGh0LE50XSxuPTA7bjxpW2FjXTtuKyspaWYoZT1pW25dW1ddKEZ1KSl7cmV0dXJuIHQ/bnUoZVsxXSwxMCk6ZVsxXVtYYV0oV3MsWGMrcytYYyk7fXJldHVybiBqdTt9LFk6ZnVuY3Rpb24oKXt0cnl7dTIuczIoNCk7cmV0dXJuISFXdVt1Mi5TMihybyxCbyx6ZSldW3UyLlMyKFhjLFQsdyldO31jYXRjaCh0KXtyZXR1cm4genU7fX0sazpmdW5jdGlvbigpe3ZhciBNNCxMNCxCNDtNND0tMTM2NTI3ODIxNTtMND0tMTYwNTMxMjQ4ODtCND0yO2Zvcih2YXIgVTQ9MTt1Mi5XMShVNC50b1N0cmluZygpLFU0LnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODg5KSE9PU00O1U0Kyspe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1thY107aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShhcmd1bWVudHNbaV0sdCkmJihlW3RdPWFyZ3VtZW50c1tpXVt0XSk7fUI0Kz0yO31pZih1Mi5CMShCNC50b1N0cmluZygpLEI0LnRvU3RyaW5nKCkubGVuZ3RoLDczOTExKSE9PUw0KXtmb3IodmFyIHQsZT17fSxpPTg7aTw9YXJndW1lbnRzW2FjXTtpLS0pZm9yKHQgaW4gYXJndW1lbnRzW2ldKXtWdFtnaV1bYyVYYy94aSVYYy96cl1bZ3JdKGFyZ3VtZW50c1tpXSx0KXx8KGVbdF09YXJndW1lbnRzW2ldW3RdKTt9fXJldHVybiBlO30sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG4sUTksZDksbzk7dTIuTDIoMik7bj11Mi5OMihGaSx0KTtROT0tODAzOTYxODEzO2Q5PTEzNjE0OTY1MjI7bzk9Mjtmb3IodmFyIEM5PTE7dTIuQjEoQzkudG9TdHJpbmcoKSxDOS50b1N0cmluZygpLmxlbmd0aCw2MjIzMCkhPT1ROTtDOSsrKXtyZXR1cm4rZltuXT09PUx0fHxGbyhmW25dKSxmW25dPXduKGUsaSk7fWlmKHUyLlcxKG85LnRvU3RyaW5nKCksbzkudG9TdHJpbmcoKS5sZW5ndGgsNjM0MTEpIT09ZDkpe3JldHVybiB0eXBlb2YgZltuXSE9PUx0JiZGbyhmW25dKSxmW25dPXduKGUsaSk7fX0sTDpmdW5jdGlvbih0LGUpe3UyLnMyKDEwKTtyZXR1cm4gdTIuTjIoaG4sWGMsWGMsdCxmdCx5cixvYyxYYyxYYyxlLGRhLEhyKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtnXVtlXXx8IXRbZ11bZV1bUXRdKTt9Y2F0Y2goaSl7cmV0dXJuIHp1O319LCQ6ZnVuY3Rpb24odCl7dmFyIEI5LFc5LFU5O0I5PTc1MTI0MzkzNDtXOT0tMTU3MDc2NzA3ODtVOT0yO2Zvcih2YXIgYTk9MTt1Mi5CMShhOS50b1N0cmluZygpLGE5LnRvU3RyaW5nKCkubGVuZ3RoLDM1ODQ0KSE9PUI5O2E5Kyspe2Zvcih2YXIgZT10cltqYV0oWGMpLGk9ZVthY10sbj0wLHI9WGM7bjx0O24rKyl7cis9ZVtZaVtSY10oWWlbY3NdKCkqaSldO31VOSs9Mjt9aWYodTIuVzEoVTkudG9TdHJpbmcoKSxVOS50b1N0cmluZygpLmxlbmd0aCw1MDUzKSE9PVc5KXtmb3IodmFyIGU9dHJbamFdKFhjKSxpPWVbYWNdLG49NixyPVhjO24+PXQ7bi0tKXtyJT1lW1lpW1JjXShZaVtjc10oKSVpKV07fX1yZXR1cm4gcjt9LEE6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHR5cGVvZiBmLmpRdWVyeS5mbi5vbj09PXZzO31jYXRjaCh0KXtyZXR1cm4genU7fX19O3Z1PXtLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt2dS5aKHQsZSxyLG4pO2lbZ3JdKCk7fTt2dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbcWMrWGMrUGErWGMreXNdPT09dnM/dFtxYytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W1JzK1hjK1BhXShrYStlLGkpO30sdHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXSx0W0VvK1hjK1pyXSkpP2k6dFtmYV18fHRbQXIrWGMrWWNdfHx0W1grWGMrWWNdO31jYXRjaChuKXtyZXR1cm4genU7fX0sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbbnMrWGMrUGErWGMreXNdPT09dnM/dFtucytYYytQYStYYyt5c10oZSxpLG58fHt9KTp0W2xuK1hjK1BhXShrYStlLGkpO319OyEoX3U9e2l0OlFjW2RyXShGdSksbnQ6aFtkcl0oRnUpLG06ZW9bZHJdKEZ1KSxldDpraVtkcl0oRnUpLHJ0OkZzW2RyXShGdSksb3Q6aVtkcl0oRnUpfHx2b1tkcl0oRnUpfHxiYVtkcl0oRnVbRXRdKDAsNCkpLHN0OldhW2RyXShGdSksYjpmc1tkcl0oRnUpJiYhaWVbZHJdKEZ1KSxjdDpCcltkcl0oRnUpJiYhTWVbZHJdKEZ1KSxnOkxuW2RyXShGdSkmJiFrW2RyXShGdSksYXQ6Z2FbZHJdKEZ1KSxkOkd0W2RyXShGdSksdXQ6ZXVbZHJdKEZ1KSxwdDpwdS5xKEx1KXx8anUsX3Q6anUsSjpmdW5jdGlvbih0LGUpe3JldHVybiBwdS5KKF91LmZ0LGUsdCk7fSxodDpPaVtkcl0oRnUpJiYhZHRbZHJdKEZ1KSxsdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90IT09anU/dGhpcy5fdDp0aGlzLl90PWF1LmR0KCkhPT16dTt9LGZ0OnB1LnEoenUpfHxqdX0pLmV0fHxfdS5odHx8X3UuZHx8X3UuYnx8KF91LnV0PUx1KTsoaHU9ZnVuY3Rpb24odCxlLGkpe3ZhciBuO249aXx8e307bltHXT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9bXUrdCk7dGhpcy5ndCgpO30pW2dpXT17a3Q6bnVsbCx5dDp7eHQ6anUsUHQ6bnVsbCxDdDpqdSxBdDp6dSxFdDpYYytybytYYyxqdDp6dSxUdDpMdSxGdDpCdSxPdDpMdSxidDpqdSx3dDpqdSxMdDpMdSxTdDpCdX0sbXQ6e30senQ6cHUudigpLEJ0OnB1LnAoW1tBLDBdXSksSXQ6cHUucChbW2VpLDFdXSksTXQ6cHUucChbW3F0LDFdXSksV3Q6cHUucChbW3BzLDBdLFtxdCwwXV0pLER0OnB1LnAoW1tlaSwwXV0pLFV0OnB1LnAoW1tlYSwwXV0pLFJ0OnB1LnAoW1twcywwXV0pLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sSHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5tdC54dD09PXZzKXRyeXtyZXR1cm4gdGhpcy5tdC54dFtncl0odGhpcyx0aGlzLm10KVtBcitYYytLXSgpO31jYXRjaCh0KXtyZXR1cm4gZnUuZSh0KSx6dTt9cmV0dXJuIHRoaXMubXQueHQ7fSxMdDpmdW5jdGlvbigpe3ZhciB0LGU7dD10aGlzLm10O2U9dC5PdCE9PWxzJiZ0Lk90IT09R2N8fHQuT3Q9PT1scyYmX3Uub3R8fHQuT3Q9PT1HYyYmIV91Lm90O3RyeXt0eXBlb2YgdC5MdD09PXZzP2U9ZSYmdC5MdFtncl0odGhpcyxlLHRoaXMuTnQoKSkhPT16dTp0eXBlb2YgdC5MdD09PURyJiYoZT1lJiZ0Lkx0KTt9Y2F0Y2goaSl7ZnUuZShpKTt9cmV0dXJuIHV1Lkp0KCk/ZSYmIXRoaXMuVnQ6ZSYmIWx1LmEodC5idCk7fSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZ0KHQpO30sTnQ6ZnVuY3Rpb24oKXt2YXIgdCxlO2U9e307Zm9yKHQgaW4gdGhpcy5tdCl7VnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXSh0aGlzLm10LHQpJiZ0W2FjXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbjt0PWZ1bmN0aW9uKHQsZSl7dmFyIGksbjtuPXt9O25bRXVdPVt6dSxMdV07bltQdV09W3p1LHp1XTtuW1R1XT1bTHUsTHVdO25bQXVdPVtMdSx6dV07Zm9yKGkgaW4gbilpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKG4saSkmJm5baV1bMF09PT10JiZuW2ldWzFdPT09ZSl7cmV0dXJuIGk7fXJldHVybiBQdTt9O2U9X3UubHQoKTtpPXQodXUubXQuJHQubmV3VGFiLHV1Lm10LiR0LnVuZGVyKTtuPXQodGhpcy5tdC5BdCx0aGlzLm10LlR0KTtlfHxuPT09RXUmJihuPWkpPT09RXUmJihuPVR1KTtfdS5vdCYmKG49PT1QdSYmKG49QXUpLG49PT1FdSYmKG49VHUpKTtfdS5tJiYwPT09Zlt3dCtYYytub10mJm49PT1QdSYmKG49QXUpO3RoaXMua3Q9bjt9LHF0OmZ1bmN0aW9uKCl7dXUuSnQoKT90aGlzLlZ0PUx1Omx1LmModGhpcy5tdC5idCwxLHRoaXMubXQuQ3QsdGhpcy5tdC5FdCx0aGlzLm10LlB0KTt9LHZ0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLEc5LE85LGs5O3RoaXMubXQ9cHUuayh0aGlzLnp0LHRoaXMueXQsdGhpcy5tdCx0fHx7fSk7Zm9yKGkgaW4gdGhpcy5tdClpZihWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFphOnRoaXMubXQud3Q9bjticmVhaztjYXNlIEc6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgQW86dGhpcy5tdC5PdD0obitYYylbQXIrWGMrUHQrWGMreGNdKCk7YnJlYWs7Y2FzZSB5dCtYYytzYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSB5dCtYYytQYzp0aGlzLm10LkN0PW47YnJlYWs7Y2FzZSB5dCtYYytLbjp0aGlzLm10LkV0PW47YnJlYWs7Y2FzZSB5dCtYYytwZTp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBRczp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBBbitYYytiOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIFZvK1hjK2hlOnRoaXMubXQuRnQ9bjticmVhaztjYXNlICRzK1hjK2hlOnRoaXMubXQuU3Q9bjticmVhaztjYXNlIG5yK1hjK3VzOnRoaXMubXQuanQ9bjticmVhaztjYXNlIG9hK1hjK090OnRoaXMubXQuTHQ9bjt9Rzk9LTEyNTAzNDQxNTQ7Tzk9MjEzNjE2MTk4NjtrOT0yO2Zvcih2YXIgWjk9MTt1Mi5XMShaOS50b1N0cmluZygpLFo5LnRvU3RyaW5nKCkubGVuZ3RoLDc5NTc3KSE9PUc5O1o5Kyspe2lmKCFfdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1tfdS5nJiYxMT09PV91LnB0LHRoaXMuVXRdLFtfdS5iJiZfdS5wdDw0MSx0aGlzLkl0XSxbX3UuYix0aGlzLkJ0XSxbX3UuZCYmX3UucHQ8NDcsdGhpcy5NdF0sW191LnV0LHRoaXMuRHRdLFtfdS5hdCx0aGlzLlJ0XSxbX3UuYiYmX3UucHQ+PTU5LHRoaXMuV3RdLFtfdS51dCYmX3UucHQ+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2FjXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXtWdFtnaV1bYytYYyt4aStYYyt6cl1bZ3JdKHJbZV1bMV0saSkmJih0aGlzLm10W2ldPXJbZV1bMV1baV0pO31rOSs9Mjt9aWYodTIuVzEoazkudG9TdHJpbmcoKSxrOS50b1N0cmluZygpLmxlbmd0aCw4MTg3NCkhPT1POSl7aWYoLV91Lm90fHx+dGhpcy5tdC5BdClmb3Iocj1bW191Lmd8fDM3IT1fdS5wdCx0aGlzLlV0XSxbX3UuYnx8X3UucHQ8PTE0LHRoaXMuSXRdLFtfdS5iLHRoaXMuQnRdLFtfdS5kfHxfdS5wdD4xNCx0aGlzLk10XSxbX3UudXQsdGhpcy5EdF0sW191LmF0LHRoaXMuUnRdLFtfdS5ifHxfdS5wdD4zMix0aGlzLld0XSxbX3UudXR8fF91LnB0PjIwLHRoaXMuV3RdXSxlPTQ7ZT5yW2FjXTtlLS0paWYocltlXVs4XSlmb3IoaSBpbiByW2VdWzVdKXtWdFtnaV1bKGMtWGMpKnhpL1hjLXpyXVtncl0ocltlXVsyXSxpKXx8KHRoaXMubXRbaV09cltlXVs0XVtpXSk7fX19fTsoYnU9ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzO3RoaXMuUXQ9dDt0aGlzLkd0PXRoaXMuWXQoKTt0aGlzLkt0PXRoaXMuWnQoKTt2dS5YKHRoaXMuR3QsJGEsZnVuY3Rpb24oKXtpYShlLkt0KTtwdS5QKGUuR3QpO30pO30pW2dpXT17WXQ6ZnVuY3Rpb24oKXt2YXIgdDt0PXB1LnooSHMscHUucChbW0RzLEN1XV0pLFhjKTtyZXR1cm4gdGhpcy5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYT9EdFtRYV1bcnIrWGMrT2NdKHQpOnRoaXMuUXRbWGkrWGMrZXJdW2JuK1hjK0hjXSh0LHRoaXMuUXRbZ24rWGMrem5dKSx0O30sWnQ6ZnVuY3Rpb24oKXt2YXIgdCxqMyxoMyxLMztqMz01NjE5NzUxMjI7aDM9LTEwNDgzNDQ5ODY7SzM9Mjtmb3IodmFyIE4zPTE7dTIuQjEoTjMudG9TdHJpbmcoKSxOMy50b1N0cmluZygpLmxlbmd0aCw1OTA3NSkhPT1qMztOMysrKXt0PXRoaXM7SzMrPTI7fWlmKHUyLlcxKEszLnRvU3RyaW5nKCksSzMudG9TdHJpbmcoKS5sZW5ndGgsNjM5NzgpIT09aDMpe3Q9dGhpczt9cmV0dXJuIExzKGZ1bmN0aW9uKCl7dmFyIGUsaTtpPW51KHQuUXRbcnNdW0NvK1hjK2l0XSwxMCk7dC5RdFtfcitYYytzY11bQXIrWGMrUHQrWGMreGNdKCk9PT1RYSYmKGk9OWU5KTsoZT1KK2Z0K0thK2huK3pjK2Z0K2NvK2huK3lpK2Z0K19lK2huK1hjKyh1bitmdCtYYykrdC5RdFtuYytYYythZV0rKGNjK2huK1hjKSsobytmdCtYYykrdC5RdFtuYytYYyt3cl0rKGNjK2huK1hjKSsoZmUrZnQrWGMpK3QuUXRbbmMrWGMrUF0rKGNjK2huK1hjKSsoSm4rZnQrWGMpK3QuUXRbbmMrWGMrbm9dKyhjYytobitYYykrKENvK19uK2hpK2Z0K1hjKSsocnUoaSk/MjppKzEpKSE9PXQuR3RbVW8rWGMrRm5dKHJzKSYmdC5HdFtTYytYYytGbl0ocnMsZSk7fSwxNTApO319O2J1Llh0PWZ1bmN0aW9uKHQpe3ZhciBlLHoxLEkxLFAxO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0cnl7ejE9LTMxMjc0MzgyODtJMT0tMTA0NzYzNjI4NjtQMT0yO2Zvcih2YXIgZDE9MTt1Mi5CMShkMS50b1N0cmluZygpLGQxLnRvU3RyaW5nKCkubGVuZ3RoLDQxMDg1KSE9PXoxO2QxKyspe3RbbnMrWGMrRm5dKGUpO1AxKz0yO31pZih1Mi5XMShQMS50b1N0cmluZygpLFAxLnRvU3RyaW5nKCkubGVuZ3RoLDQ5ODIyKSE9PUkxKXt0W25zL1hjLUZuXShlKTt9fWNhdGNoKGkpe319O2J1LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3UyLkwyKDE1KTtlPXUyLk4yKFhjLF9uLFFlLF9uLFhjLG11LGRhKTt0W1VvK1hjK0ZuXShlKXx8dFtVbytYYytGbl0oRHMpPT09Q3V8fCh0W1NjK1hjK0ZuXShlLDEpLG5ldyBidSh0KSk7fTsoYXU9e2llOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4gX3Uub3R8fF91Lml0P1tdOih0W2tuXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBfdS5iJiZfdS5wdD49NjcmJnV1Lm10LnJlJiZfdS5udDt9XSksdFtrbl0oW3RoaXMub2UsZnVuY3Rpb24oKXt2YXIgTjksbjksUzk7Tjk9NjYxODQ4OTkxO245PTI3NjA3NjM1NztTOT0yO2Zvcih2YXIgWDk9MTt1Mi5XMShYOS50b1N0cmluZygpLFg5LnRvU3RyaW5nKCkubGVuZ3RoLDk1NjU0KSE9PU45O1g5Kyspe3JldHVybiBfdS5iJiZfdS5wdD49NjQmJl91LnB0PDY3O31pZih1Mi5XMShTOS50b1N0cmluZygpLFM5LnRvU3RyaW5nKCkubGVuZ3RoLDM2NDA4KSE9PW45KXtyZXR1cm4gX3UuYnx8X3UucHQ8PTYzfHxfdS5wdD45O319XSksdFtrbl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5udCYmX3UucHQ+PTQzJiZfdS5wdDw2NDt9XSksdFtrbl0oW3RoaXMuY2UsZnVuY3Rpb24oKXtyZXR1cm4gX3UuYiYmcHUuWSgpJiZfdS5tJiZfdS5wdD49NDkmJl91LnB0PDY0O31dKSx0W2tuXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBfdS5kO31dKSx0W2tuXShbdGhpcy51ZSxmdW5jdGlvbigpe3JldHVybiBfdS5nJiZfdS5wdD49MTE7fV0pLHRba25dKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIF91Lmh0O31dKSx0W2tuXShbdGhpcy5mZSxmdW5jdGlvbigpe3JldHVybiBfdS51dCYmX3UubnQmJl91LnB0PD00ODt9XSksdCk7fSxkdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzLmllKCk7Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihlW3RdWzFdKCk9PT1MdSl7cmV0dXJuIGVbdF1bMF07fXJldHVybiB6dTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmVlW2dpXT17bWU6QnUscGU6ZnVuY3Rpb24odCl7dGhpcy5sZT10O30sZ2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybighdXUubXQua2V8fF91LmcmJl91LnB0PDExP0h1OnB1LkMpKHQsZSxpKTt9LGJlOkJ1LF9lOkx1LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYztpPXRoaXM7bj1pLmxlO3I9bi5IdCgpO289bi5tdDtzPW8ud3R8fHB1LiQoNSk7Yz1wdS55KG8pO2lmKHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIG8uRnQ9PT12cyYmby5GdFtncl0obixyLG8pPT09enUpe3JldHVybiB6dTt9fWNhdGNoKHQpe2Z1LmUodCk7fXJldHVybiBqdTt9LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT12cyl0cnl7by5TdFtncl0obixyLG8sdCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX0sdCgpPT09enUpe3JldHVybiB6dTt9dHlwZW9mIG9bR109PT1maSYmb1tHXSE9PXImJihyPW9bR10pO3V1Lmp0KG8uanQpO3RoaXMudmUoKTt0cnl7cmV0dXJuIHRoaXMuYmUocixvLHMsYyxmdW5jdGlvbih0KXtpLm1lKHQpO2kuX2UmJnV1Ll9lKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIGZ1LmUoYSksenU7fX0sdmU6QnV9O2F1Lm5lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5uZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLHIsYyl7dGhpcy5nZShhYStmdCtwYyxpLEpuK1ZlK0plK29jK2ZlK1ZlK0plK29jK28rVmUrTStvYyt1bitWZStNKVt5XVtzc10oWGMrVG4rTHIrWnMrWGMrKEVlK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK29jK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK29jK1hjK0hyK25lK1ZlK2VuK2huK1hjKSsodnMrSHIrTytpYytYYytjbitYYytfaStYYytIcitydCtpYytuZStacytlbitjbitNbitobitYYytIcituZStIcitYYytWZStYYytIcitRcitobitYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYyt3dCtYYytacitacytNK2NuK1hjK0hyK20rcytRaStYYytNcitpYytlbitvYytlbitjbitYYytobitYYytIcitHaStIcittK3MrUWkrWGMrTXIraWMrSmUrb2MrSmUrY24rWGMrSHIrWGMrR3IrWGMrb2MrWGMrSHIrc24rY24rWGMrSHIrWGMrR3IrWGMpKyhFZStIcitObytIcitYYytWZStYYytIcitTYytYYythbitpYyt2cytpYytYYytjbitYYytfaStYYytIcitydCtIcitYYytpYytWcytYYytIaStIcitYYytGYStYYytWZStYYytIcit3dCtYYytIaStIcitYYytEaStYYytEaStYYytIcitWcytYYytacitIcitYYytGYStYYytWZStYYytIcit3dCtYYytacitjbitYYytIcitYYytfaStYYytIcitQbytYYythbitpYytObytjbitYYytobitYYytIcitPK2ljK1hjK2NuK1hjK2huK1hjK0hyK1hjK0dyK1hjK0hyK1ZzK1hjK0hpK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK0hpK2huK1hjK0hyK1ZzK1hjK1pyK0hyK1hjK1ZlK1hjK0hyK3d0K1hjK1pyK2huK1hjK0hyK1hjK0dyK1hjK29jK1hjK0hyK3orY24rWGMraG4rWGMpKyh5K3MrdnIrVmUrTytobitYYykrKG0rcyt2K0hyK1hjK1ZlK1hjK0hyK3ZzK2ljK1hjK2NuK1hjK19pK1hjKSsobStzK1FpK1hjK01yK2ljK2VuK29jK2VuK2NuK1hjK2huK1hjKSsobStzK2ZuK1hjK01yK2ljK1hjKSsoZVtvXXx8UVtvXSkrKFhjK29jK1hjKSsoZVt1bl18fFFbdW5dKSsoWGMrY24rWGMraG4rWGMpKyhtK3MrcHMrcytKbytIcitYYytWZStYYytIcitYYytuK1hjKSt0KyhYYytuK1hjK2huK1hjKSsoWGMrR3IrWGMpKyhYYytUbitYYytybytMcitacytYYykpO319KTthdS55ZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUueWVbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtiZTpmdW5jdGlvbih0LGUsaSxyLG8pe3ZhciBjO3UyLkwyKDQpO2M9dGhpcy5nZSh1Mi5OMihmdCxwYyxhYSksaSxyKTt1Mi5MMigxNik7Y1t5XVtzc10odTIuTjIoY24sTHIsdnMsWGMsR3IsWnMsWGMsVG4scyxYYyxuLHJvLFhjLGljLGljLEhyLFpzLF9pLFhjLHBzLFhjLFhjLFhjLGNuLFZlLG0sWGMsUGUseHMsU2MsTHIsWGMsVG4sb2MsWGMsdCxuLFhjLFhjKSk7byhjKTt3bihmdW5jdGlvbigpe2NbX2FdKHQsY1taYV0sWGMpO30sMTAwKTt9LF9lOnp1fSk7YXUud2U9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LndlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXtyKHRoaXMuZ2UodCxvdCkpO30sX2U6IV91Lm90JiYhX3UuZH0pO2F1LnhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS54ZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scyxjLGEsdSxoLHAsXyxmMSxpMSx4MTtjPXRoaXMuT2UoKTthPXV1LkNlKCk7dT1wdS5OKGEpO2g9MTU7cD1bXTtfPWZ1bmN0aW9uKHQpe3ZhciBlO3R5cGVvZiB0W2xpXT09PXZzJiYoZT10W2xpXSx2dS5YKHQsJGEsZSkpO3RbbGldPWZ1bmN0aW9uKCl7cmV0dXJuIHp1O307fTtmb3IodXUuQWUoKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSkhPT1vdCYmcHUuZihhLEpvKSYmKF8oYSksMCE9PWFbVW8rWGMrRm5dKEpvKVtoaStYYytVXShxaSkmJihjPWFbVW8rWGMrRm5dKEpvKSk9PT1YYyYmKGM9cXUpKSxhJiZhW19yK1hjK3NjXT09PXZlJiZhW1VvK1hjK0ZuXShmYSk9PT1vdCYmcHUuZihhLEpvKSYmKF8oYSksd24oZnVuY3Rpb24oKXthW2xpXT1qdTt9LDNlMyksdXUubXQuRmU/Yz1hW1VvK1hjK0ZuXShKbyk6KGM9cXUsX3Uub3QmJihfdS51dD9wW2tuXShmdW5jdGlvbigpe0h1KGFbVW8rWGMrRm5dKEpvKSxvdCk7fSk6d24oZnVuY3Rpb24oKXtIdShhW1VvK1hjK0ZuXShKbyksb3QpO30sMjApKSkpLF91LmV0JiZfdS51dHx8X3UuZXQmJl91LnN0JiYhX3UuZCYmIV91LmImJiFfdS5odD8oSHUoYyxvdCkscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKTohX3Uub3QmJnB1LmgoYSxmYSkhPT1vdCYmKF91LnV0JiZfdS5zdHx8X3UuaHQmJl91LnB0PDEwfHxfdS5iJiZfdS5wdDw0MSk/X3UudXQ/KHB1LlEoYykscHUuSChILGZ1bmN0aW9uKCl7cHUuVCh0KTt9LGgpKToocHUuUSh0KSxhW19yK1hjK3NjXT09PXZlJiZ1JiZwdS5UKHUpKTpfdS5ldCYmX3UuZD8obz1IdShjLG90KSxwdS5IKEgsZnVuY3Rpb24oKXtwdS5UKHQpO30saCkpOihvPWZbX2FdKGFhK2Z0K3BjLG90KSk/KG9bcHNdW0pvXT1jLHB1LkgoSCxmdW5jdGlvbigpe3B1LlQodCk7fSxoKSk6bz1IdSh0LG90KSxzPTA7czxwW2FjXTtzKyspe3Bbc11bZ3JdKCk7fWYxPS00MzA2NzE4MjU7aTE9LTIwMjM5MDU1NDg7eDE9Mjtmb3IodmFyIGIxPTE7dTIuQjEoYjEudG9TdHJpbmcoKSxiMS50b1N0cmluZygpLmxlbmd0aCw2MDc4MikhPT1mMTtiMSsrKXtvfHxyKG8pO3gxKz0yO31pZih1Mi5XMSh4MS50b1N0cmluZygpLHgxLnRvU3RyaW5nKCkubGVuZ3RoLDM3NDA4KSE9PWkxKXtvJiZyKG8pO319LE9lOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO3Q9dXUuQ2UoKTtlPXV1LkVlLlM7aT10eXBlb2YgdXUubXQuUGU9PT12cz91dS5tdC5QZVtncl0oKTp1dS5tdC5QZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBpIT09cXU/aToobj1wdS4kKDEpLHI9ZT9pOnV1LlRlKHQpfHxpLGR1LnMoKXx8IV91Lm90JiYhX3UuZz9yOihsdS5jKHd1LG4sanUpLHJbWGFdKEYsWGMpKyhYYyt1bytYYykrbikpO30oKTt9fSk7YXUuYWU9ZnVuY3Rpb24odCl7dGhpcy5wZSh0KTt9O2F1LmFlW2dpXT1wdS5rKGF1LmVlW2dpXSx7YmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxGNCxFNCxBNDtGND0zMDQ3NjQ1NTA7RTQ9MjA2Mzc1NjU1O0E0PTI7Zm9yKHZhciBoND0xO3UyLlcxKGg0LnRvU3RyaW5nKCksaDQudG9TdHJpbmcoKS5sZW5ndGgsMTg3MzYpIT09RjQ7aDQrKyl7bz10aGlzLmdlKHQsaSxuKTtBNCs9Mjt9aWYodTIuVzEoQTQudG9TdHJpbmcoKSxBNC50b1N0cmluZygpLmxlbmd0aCwxMzc3MikhPT1FNCl7bz10aGlzLmdlKHQsaSxuKTt9b1tZcl0oKTtOdVtxcl0oKTtwdS5NKG8pO3duKGZ1bmN0aW9uKCl7cihvKTt9LDFlMyk7fSxfZTp6dX0pO2F1LmZlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5mZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UodCxpLG4pO3M9dXUuU2UoMWUzKTt2dS5LKGYscXIsZnVuY3Rpb24oKXt3bihmdW5jdGlvbigpe3B1LlAocyk7fSwxMCk7fSk7b1t2XT1mdW5jdGlvbigpe3duKGZ1bmN0aW9uKCl7cHUuUChzKTt9LDEwKTt9O3Iobyk7fX0pO2F1LmhlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5oZVtnaV09cHUuayhhdS5lZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGc0LEM0LGM0LG87ZzQ9LTE1NjA5MzYyMDI7QzQ9MTYxOTc0ODc2OTtjND0yO2Zvcih2YXIgdjQ9MTt1Mi5XMSh2NC50b1N0cmluZygpLHY0LnRvU3RyaW5nKCkubGVuZ3RoLDQ3Nzg4KSE9PWc0O3Y0Kyspe2M0Kz0yO31pZih1Mi5XMShjNC50b1N0cmluZygpLGM0LnRvU3RyaW5nKCkubGVuZ3RoLDQ4MDM3KSE9PUM0KXt9ZltaYV09cHUuJCg1KTtvPXRoaXMuZ2UodCxpLG4pO3RoaXMuZ2UoWGMsZltaYV0sWGMpO2ZbWmFdPWp1O3Iobyk7fSxfZTp6dX0pO2F1LnVlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS51ZVtnaV09cHUuayhhdS5lZVtnaV0se19lOnp1LGJlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMuZ2UoUnU/dDpxdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW3BzXVtKb109dDt9O3Z1LksobyxZcixzKTtvW1lyXSgpO051W3FyXSgpO3duKHMsMTAwKTtyKG8pO319KTthdS5zZT1mdW5jdGlvbih0KXt0aGlzLnBlKHQpO307YXUuc2VbZ2ldPXB1LmsoYXUuZWVbZ2ldLHtqZTpXaStYYytUcytYYytDbitYYytuaStYYytrdCtYYytoYytYYytacitYYytWbitYYytPbitYYytabytYYytfYytYYytwcitYYytMbytYYytJbitYYyskcitYYytrcitYYyskZStYYytFbitYYytvcytYYytFbit2bitKYStYYyt4dCtYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK0dvK1hjK0hpK1hjK2ZvK1hjK0VuK1hjK1hlK1hjK2lvK1hjK1pyK1hjK0hpK1hjK1luK1hjK2pzK1hjK3ByK1hjK0RhK1hjK2VlK1hjK0VhK1hjK0VuK1hjK2lvK1hjK3h0K1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjKyR0K1hjK3JuK1hjK0VhK1hjK0VuK1hjK2lvK1hjK29yK1hjKyRyK1hjK2puK1hjK0NuK1hjK2tyK1hjK0FjK1hjK1NpK1hjK1JlK1hjK0VuK1hjK2lvK1hjK1IrWGMrdXQrWGMrdmkrWGMrdWUrWGMrdGErWGMrT28rWGMrWnIrWGMrVHMrWGMrZWMrWGMram4rWGMrb2UrWGMrRW4rWGMraW8rWGMrR3MrWGMrZmMrdm4rcHQrWGMraXIrWGMrdXQrWGMra28rWGMrJGUrWGMrRW4rWGMrQ3QrWGMrJHQrWGMrcm4rWGMrRWErWGMrRW4rWGMrVXQrWGMrd2krWGMrVitYYytJbytYYytFbitYYytpbytYYytJbitYYyskcitYYytqbitYYytDbitYYytrcitYYytFbitYYytzcit2bitCYStYYyttYytYYytwdCtYYytWYytYYytJbitYYyskcitYYytqbitYYytsK1hjK2RpK1hjK3ZpK1hjK1hlK1hjK3dpK1hjK3luK1hjK0huK1hjK1pyK1hjK0hpK1hjK1dyK1hjK1FvK1hjK3lvK1hjK3B0K1hjK0hpK1hjK2FyK1hjK0hpK1hjK1duK1hjK01jK1hjK3JpK1hjK1pyK1hjK0hpK1hjKyRvK1hjK0VuK1hjK1llK1hjK0hpK1hjK3grWGMrcWUrWGMrd2krWGMrTXQrWGMrcHIrWGMreGUrWGMrYnMrWGMrb3MrWGMrbG8rWGMrT2UrWGMrZHMrWGMrT24rWGMrY3Qrdm4rQmErWGMrbWMrWGMrcHQrWGMrVmMrWGMraXMrWGMrJHIrWGMram4rWGMrbCtYYytkaStYYyt2aStYYytYZStYYytHZStYYytybitYYyttdCtYYytUbytYYytLZStYYytrcytYYytwdCtYYytIaStYYytxYStYYytBYytYYytTaStYYytZK1hjK1dpK1hjK01jK1hjK1RzK1hjK3ZpK1hjK0h0K1hjK01jK1hjK3dpLExlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXB1LnooJGkse2RhdGE6cHUuTCh6ZStybytCbyx0aGlzLmplKStwdS4kKDMpfSk7cmV0dXJuKHQ9cHUueihIcyx7c3R5bGU6dGUrZnQrTWkraG4rbytmdCt2YStobit1bitmdCt2YStobit6YytmdCtjbytobitKbitmdCtNK3ErWGMraG4rZmUrZnQrZW4raG4rX2UrX24rZG4rZnQrYW8raG4rSXIrZnQrTWkraG4rWGN9KSlbcnIrWGMrT2NdKGUpLFtlLHRdO30sYmU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjLGEsdSxoO3U9dGhpcztoPXp1O3RyeXsoYz10aGlzLmdlKGFhK2Z0K3BjLG90KSlbeV1bc3NdKHUyLlMyKFhjLExjLFRuLFFhLFhjLHJvLFFhLExjLFpzLFpzLFRuLFhjLFpzLFhjLFRuLFhjLFhjLHJvLEtvLFhjLFRuLFRuLHJvLFpzLFpzLFhjLFhjLFRuLEtvLFhjLFpzLHUyLkwyKDE3KSkpO3Z1LksoYyxBZSxmdW5jdGlvbigpe2h8fChoPUx1LHM9Y1tWaV09SHUoYWErZnQrcGMsaSxwdS55KHUuemUoZSkpKSx2dS5YKGMscXIscCksYT13bihwLDNlMyksY1t5XVtRYV1baG8rWGMrT24rWGMrbG8rWGMrJHIrWGMrd2NdPXUuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7ZnVuY3Rpb24gcCgpe24oKTtjW3RpXSgpO2YoKTtGbyhhKTt9ZnVuY3Rpb24gbigpe3UyLkwyKDE4KTtjW3ldW1FhXVt1Mi5TMihYYyxYYyxYYyxYYyxPbiwkcixobyx3YyxsbyldPVhjO31mdW5jdGlvbiBmKCl7c1tRaStYYytNcl0oZVtmZV0sZVtKbl0pO3NbZm4rWGMrTXJdKGVbb10sZVt1bl0pO3NbcHNdW1hhXSh0KTtyKHMpO319KTt9Y2F0Y2goZil7fX0semU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wdS5rKHQse30pO3JldHVybiBlW0puXT1lW2ZlXT05ZTUsZVtvXT1lW3VuXT0xLGU7fX0pO2F1LmNlPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5jZVtnaV09cHUuayhhdS5zZVtnaV0se2JlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPXB1Lk8oTHUpO3Z1LksoZixxcixmdW5jdGlvbigpe3B1LlAocyk7b1twc11bWGFdKHQpO3Iobyk7fSk7dTIuTDIoNCk7bz10aGlzLmdlKHUyLlMyKGZ0LHBjLGFhKSxvdCk7c1tGdCtYYytYdF1beV1bc3NdKHRoaXMuTGUoKVsxXVskK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXSk7fX0pO2F1Lm9lPWZ1bmN0aW9uKHQpe3RoaXMucGUodCk7fTthdS5vZVtnaV09cHUuayhhdS5lZVtnaV0se3BlOmZ1bmN0aW9uKHQpe3ZhciBsOSx3OSxmOSxlLGksbjtsOT0tMTcxNTEzNjA1ODt3OT0tMTY3OTQ2NDUxMztmOT0yO2Zvcih2YXIgeDk9MTt1Mi5CMSh4OS50b1N0cmluZygpLHg5LnRvU3RyaW5nKCkubGVuZ3RoLDkzMDEzKSE9PWw5O3g5Kyspe2Y5Kz0yO31pZih1Mi5XMShmOS50b1N0cmluZygpLGY5LnRvU3RyaW5nKCkubGVuZ3RoLDQwMTk2KSE9PXc5KXt9bj10aGlzO3RoaXMuQmU9WWlbY3NdKCk7dGhpcy5sZT10O2U9dXUuQ2UoKTt1Mi5zMigxOSk7aT1wdS5CKGUsdTIuUzIoTWMsWGMsWGMsWGMsbG8sQ24sSG8sWGMsZ3QsbG8sWGMpKTsoZVtfcitYYytzY109PT12ZSYmZVtVbytYYytGbl0oQikhPT1vdCYmIXB1LlMoZSl8fGkmJiFwdS5TKGkpKSYmKHRoaXMuX2U9THUpO3Z1LlgoZixaLGZ1bmN0aW9uIHIodCl7dHJ5e3RbZGFdLkJlPT09bi5CZSYmbi5JZSh0W2RhXSk7dFtkYV0uTWUmJnZ1LlooZixaLHIpO31jYXRjaChlKXt9fSk7fSxiZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuRGU9cjt0aGlzLlVlKHtCZTp0aGlzLkJlLFdlOm4sRGU6THUseHQ6dH0pO3RoaXMuVWUoe0JlOnRoaXMuQmUsTWU6THUseHQ6YWErZnQrcGN9KTt9LF9lOnp1LEllOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj16dTt1Mi5zMig0KTtlPXRoaXMuZ2UodTIuUzIoZnQscGMsYWEpLHQud3R8fG90LHQuV2V8fFhjKTt0Lk1lJiYoZSYmZVt0aV0oKSxuPUx1KTshbiYmZSYmd24oZnVuY3Rpb24oKXtlW3BzXVtKb109dC54dDt0LkRlJiZpLkRlKGUpO30sMTAwKTt9LFVlOmZ1bmN0aW9uKHQpe3ZhciBrMSx1MSxaMTtrMT0xNDI1MTEzMDk7dTE9MTU5NjM3MDg3NztaMT0yO2Zvcih2YXIgdzE9MTt1Mi5XMSh3MS50b1N0cmluZygpLHcxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNjAwKSE9PWsxO3cxKyspe2ZbdG8vWGMlUGldKHQsZltwc11bcmNdKTtaMSs9Mjt9aWYodTIuVzEoWjEudG9TdHJpbmcoKSxaMS50b1N0cmluZygpLmxlbmd0aCw0MzYzNSkhPT11MSl7Zlt0by9YYyVQaV0odCxmW3BzXVtyY10pO31mW3RvK1hjK1BpXSh0LGZbcHNdW3JjXSk7fX0pO3V1PXt2aTpmdW5jdGlvbigpe3JldHVybiB0aGlzLktpKCkrdGhpcy5WaSgpPnB1LkcoKTt9LFppOmZ1bmN0aW9uKCl7dGhpcy5paS5vaT1MdTt0aGlzLl9pPUJ1O30sY246ZnVuY3Rpb24odCxlLGkpe2Zvcih2YXIgbixyPTAsbz1lPT09YnQ/dGhpcy5tdC5RZTp0aGlzLm10LiRlO2kmJm9bYWNdOyl7b1t5YV0oKTt9Zm9yKDtyPHRbYWNdO3IrKyl7dHlwZW9mKG49dFtyXSk9PT1maT9vW2tuXShuKTp0eXBlb2Ygbj09PSRpJiZ0eXBlb2Ygblt2YytYYytzY109PT1maSYmb1trbl0obik7fXJldHVybiB0aGlzO30sJGk6ZnVuY3Rpb24odCl7dmFyIGUsbjMsUzMsUjM7ZT0wO24zPTEzNzgzMjg4Mjk7UzM9MTY1NDczNzY2NjtSMz0yO2Zvcih2YXIgZTM9MTt1Mi5XMShlMy50b1N0cmluZygpLGUzLnRvU3RyaW5nKCkubGVuZ3RoLDg2MDI3KSE9PW4zO2UzKyspe2lmKCF0fHwhdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9UjMrPTI7fWlmKHUyLlcxKFIzLnRvU3RyaW5nKCksUjMudG9TdHJpbmcoKS5sZW5ndGgsODE3NjIpIT09UzMpe2lmKC10JiYtdGhpcy5tdC5RZVthY10pe3JldHVybiB6dTt9fWZvcig7ZTx0aGlzLm10LlFlW2FjXTtlKyspaWYodD09PXRoaXMubXQuUWVbZV18fHR5cGVvZiB0aGlzLm10LlFlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuUWVbZV18fHB1LkkodCx0aGlzLm10LlFlW2VdKSl8fHB1LkIodCx0aGlzLm10LlFlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxQaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLGM7dTIuczIoNCk7bz11Mi5OMihzLFhjLFhjKTt1Mi5zMigyKTtjPXUyLlMyKG8sdCk7Zm9yKG49MDtuPGVbYWNdO24rKylpZihyPShYYytxbitYYytzK1hjKVtoaStYYytVXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxjW0V0XShjW2FjXS1yW2FjXSk9PT1yfHxpJiZyPT09SXUpe3JldHVybiBMdTt9cmV0dXJuIHp1O30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC4kZTt9LGdpOmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXB1LkcoKTtlPXB1LkcoeXUpO3UyLnMyKDIwKTt0aGlzLmlpLmNpPXUyLk4yKGUsMzE1MzYwMDAwMDAsdCk7dGhpcy5paS5jaSYmKHRoaXMuYmk9QnUpO30sX2k6ZnVuY3Rpb24oKXt2YXIgSTQsUDQsUTQsdCxlLGk7STQ9LTE5MTM0NDAyODY7UDQ9LTE4ODM3NjM1NTg7UTQ9Mjtmb3IodmFyIG80PTE7dTIuVzEobzQudG9TdHJpbmcoKSxvNC50b1N0cmluZygpLmxlbmd0aCw2NjQwOSkhPT1JNDtvNCsrKXtpPXRoaXMuaWkuYWk7UTQrPTI7fWlmKHUyLlcxKFE0LnRvU3RyaW5nKCksUTQudG9TdHJpbmcoKS5sZW5ndGgsMTk0NzApIT09UDQpe2k9dGhpcy5paS5haTt9Zm9yKHQ9MDt0PHRoaXMubGlbYWNdJiYoIXRoaXMuZGkoKSYmIXRoaXMudmkoKSk7dCsrKXtpZihlPXRoaXMubGlbdF0sdGhpcy5paS51aSsrLHRoaXMuaWkuYWk9cHUuRygpLHRoaXMuYmkoZSk9PT16dSl7cmV0dXJuIHRoaXMuaWkudWktLSx2b2lkKHRoaXMuaWkuYWk9aSk7fWk9dGhpcy5paS5haTtkdS5jKE91LHRoaXMuaWkuYWkpO2UuZ3QoKTtlLmt0PT09VHUmJmR1LmMoeHUsdGhpcy5paS51aSk7fX0sRGk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzO289MjtzPXp1O2ZvcihlPTA7ZTw9bztlKyspe2lmKChuPUR0W21yK1hjK1ppK1hjK1VlXSh0W0VvK1hjK0hpXStlLHRbRW8rWGMrWnJdKSkmJm5bX3IrWGMrc2NdPT09d2MrWGMrdmUrWGMrQ24rWGMrbmkrWGMrd2Mpe3M9THU7YnJlYWs7fWZvcihpPTA7aTw9bztpKyspaWYoKG49RHRbbXIrWGMrWmkrWGMrVWVdKHRbRW8rWGMrSGldK2UsdFtFbytYYytacl0raSkpJiZuW19yK1hjK3NjXT09PXdjK1hjK3ZlK1hjK0NuK1hjK25pK1hjK3djKXtzPUx1O2JyZWFrO31pZihzKWJyZWFrO31pZihzKWZvcihzPXp1LHI9bltVbytYYytDcitYYytnZStYYytwaStYYytzY10oRWkpLGU9MDtlPHJbYWNdO2UrKylpZihwdS5VKHJbZV0pKXtzPUx1O2JyZWFrO31yZXR1cm4gcz9uOnp1O30saWk6e2FpOjAsdWk6MCxjaTpMdSxvaTp6dSxyaTp6dSxzaTpMdSxuaTp6dX0sZW46ZnVuY3Rpb24oKXtyZXR1cm4gcHUucChbW2NyLHRoaXMubXQuTmVdLFtqbyx0aGlzLm10LkhlXSxbVXMsdGhpcy5tdC5xZV0sW1pjK1hjK2EsdGhpcy5tdC5yZV0sW3VyK1hjK3phLHRoaXMubXQuUGVdLFtidCtYYyt5cyx0aGlzLm10LkplXSxbdnQsdGhpcy5tdC5WZV0sW0hhK1hjK01yLHRoaXMubXQuJGVdLFtidCtYYytNcix0aGlzLm10LlFlXSxbSWUsdGhpcy5tdC5HZV0sW29pK1hjK2JyLHRoaXMubXQuWWVdLFtvaStYYytqaSx0aGlzLm10LktlXSxbRCtYYytDYytYYytJaSx0aGlzLm10LlplXSxbeWErWGMraHIrWGMrZXMsdGhpcy5tdC4kdF0sW2xzK1hjK21vLHRoaXMubXQuWGVdLFtucitYYyt0dStYYytvbix0aGlzLm10LmtlXSxbWHIrWGMrTmksdGhpcy5tdC50aV0sW0JzK1hjK0ZlK1hjK1VjK1hjK1lzK1hjK0lpLHRoaXMubXQuRmVdXSk7fSxWaTpmdW5jdGlvbigpe3JldHVybiBfdS5vdD9ZaVtDYV0odGhpcy5tdC5HZSwxZTMpOl91LmJ8fF91Lmd8fF91LmF0fHxfdS51dCYmIV91LmV0P1lpW0NhXSh0aGlzLm10LkdlLDIwMCk6dGhpcy5tdC5HZTt9LFRpOmZ1bmN0aW9uKCl7dmFyIHIsbyxjLGEsdSxoLHAsXyxsLGQ7ZnVuY3Rpb24gdCgpe3ZhciB0LGUscjQsYTQsRzQ7cjQ9LTIwOTg3Mzk5OTQ7YTQ9OTQ0MzQxOTczO0c0PTI7Zm9yKHZhciBrND0xO3UyLkIxKGs0LnRvU3RyaW5nKCksazQudG9TdHJpbmcoKS5sZW5ndGgsMTc5MCkhPT1yNDtrNCsrKXt1Mi5MMigyMSk7ZT1bdTIuTjIoWGMsUGEscWMscyxtLHlzLFhjKSx1Mi5TMihYYyxQYSxucyxzLG0seXMsWGMsdTIuTDIoMjEpKSx1Mi5TMihzLF9hLG0sdTIuczIoNCkpLHUyLk4yKFhjLHkscyxZYyxDZSx1Mi5zMigxKSksdTIuTjIoWGMseSxzLE9jLG5zLHUyLnMyKDEpKV07Zm9yKHQ9MDt0PGVbYWNdO3QrKylpZihwdS5sKGVbdF0pKXtyZXR1cm4gZnUuZSh0LHB1LmwoZVt0XSkpLEx1O31HNCs9Mjt9aWYodTIuVzEoRzQudG9TdHJpbmcoKSxHNC50b1N0cmluZygpLmxlbmd0aCw5Mzg0KSE9PWE0KXt1Mi5MMigyMik7ZT1bdTIuTjIocyx5cyxYYyxYYyxQYSxtLHFjKSx1Mi5TMihYYyxtLG5zLHlzLHMsWGMsUGEsdTIuczIoMjMpKSx1Mi5OMihtLHMsX2EsdTIuTDIoMjQpKSx1Mi5TMihzLFhjLENlLHksWWMsdTIuTDIoMjUpKSx1Mi5TMihzLFhjLE9jLHksbnMsdTIuczIoMjYpKV07Zm9yKHQ9Nzt0PD1lW2FjXTt0LS0paWYocHUubChlW3RdKSl7cmV0dXJuIGZ1LmUodCxwdS5sKGVbdF0pKSxMdTt9fXJldHVybiB6dTt9Xz10aGlzO2w9Xy5tdDtkPXp1O2wucWV8fCF0KCk/KHA9X3UuZHx8X3UuZz9BZTpOcyxmdW5jdGlvbigpe3Z1LlgoRHQsJGEsaSxMdSk7X3Uub3Q/KHZ1LlgoRHQsTnMsbixMdSksdnUuWChEdCxBZSxuLEx1KSk6dnUuWChEdCxwLG4sTHUpO30oKSx0aGlzLnppKCksdGhpcy5CaSgpLHRoaXMuSWkoKSx0aGlzLk1pKCksdGhpcy5XaSgpKTpmdS5lKHp1KTtmdW5jdGlvbiBlKHQpe3ZhciBpNCx4NCxwNDtpND0tMTY1MTgwOTA0Njt4ND0tMTY5MTg0MTIzODtwND0yO2Zvcih2YXIgVDQ9MTt1Mi5CMShUNC50b1N0cmluZygpLFQ0LnRvU3RyaW5nKCkubGVuZ3RoLDcwNDMyKSE9PWk0O1Q0Kyspe3JldHVybisraCx0JiZmdS5lKGgpLHQ7fWlmKHUyLlcxKHA0LnRvU3RyaW5nKCkscDQudG9TdHJpbmcoKS5sZW5ndGgsODc2MjYpIT09eDQpe3JldHVybi0taCx0fHxmdS5lKGgpLHQ7fX1mdW5jdGlvbiBpKGkpe2g9MjtkfHwoZD1MdSx3bihmdW5jdGlvbigpe2Q9enU7fSxfdS5vdD81MDA6MTUwKSxEdSYmIWwuSGV8fChyPXZ1LnR0KGkpLG89cHUuQihyLHZlKSx1PXB1LlMocikscltVbytYYytGbl0oRHMpPT09Q3U/KHJbcnNdW1d0XT1hbyxwdS5QKHIpLHI9dnUudHQoaSxMdSksd24oZnVuY3Rpb24oKXtidS5YdChyKTt9LDNlMykpOm8mJihjPShyPW8pW1VvK1hjK0ZuXShmYSksYT1wdS5OKHIpLHU9cHUuUyhyKSksXy5BaShyLHUpLF8uaWkub2l8fF8uaWkuc2l8fF8uaWkuY2l8fGlbamNdfHxlKF8uZmkucGlbTl0mJl8uZmkucGlbTl0hPT1pW05dKXx8ZShsLnRpJiYhVXUpfHxlKCFpW0VvK1hjK0hpXSYmIWlbRW8rWGMrWnJdKXx8ZSghX3Uub3QmJiFfdS5nJiZ0eXBlb2YgaVthc10hPT1MdCYmMCE9PWlbYXNdKXx8ZSghX3Uub3QmJiFfLmVpJiYoX3UuYXR8fF91LmJ8fF91LnV0KSl8fGUoIV91Lm90JiYhbC5aZSYmKF91LmJ8fF91LnV0KSYmYz09PW90KXx8ZShfLmRpKCkpfHxlKF8udmkoKSl8fGUoIV8uRmkoKSl8fGUoIV8uU2kocikpfHxlKHUmJiFsLkplKXx8ZSghbC5xZSYmdCgpKXx8KF8uamkoaSksX3UuZXQmJm8mJmEmJl8uQWUoaSksX3Uub3R8fCFvfHx1fHwoX3UuYiYmYyE9PW90JiZwdS5ZKCl8fGwuWmUmJmM9PT1vdCYmKF91LmJ8fF91LnV0KSkmJl8uQWUoaSksXy5MaT1qdSxfLl9pKCkpKSk7fWZ1bmN0aW9uIG4odCl7cj1vPXU9Yz1hPWp1OyFfdS5vdCYmdFtFbytYYytIaV0rKF91Lm50PzE3OjE1KT5mW2hvK1hjK3dyXT9sLktlJiYoKHI9e30pLnNjcm9sbGJhcj1MdSxfLkFpKHIsenUpLF8uZGkoKXx8Xy52aSgpfHwhXy5GaSgpfHxfLl9pKCkpOmkodCk7fX0sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maS5waTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBkdS5zKCk/KHQ9ZHUuYSh4dSksZHUudSh4dSkpOmx1LmEoeHUpJiYoRHRbT3NdPT09SVtKb118fH5JW0pvXVtoaStYYytVXShYYyt1bytYYytsdS5hKHd1KSkpJiYodD1sdS5hKHh1KSx3bihmdW5jdGlvbigpe2x1LnUoeHUpO2x1LnUod3UpO30sMzAwKSksdD1udSh0LDEwKSx0PXJ1KHQpPzA6dCx0aGlzLmlpLnVpPXQ7fSxDaTpmdW5jdGlvbih0LGUsaSl7cHUuRyh0W2xyXShYYytybytYYykpPGUmJmkoTHUsenUpO30samk6ZnVuY3Rpb24odCl7dmFyIEE5LGo5LGg5O0E5PTI4NzU3OTk5MTtqOT0tNjA5ODI4NDM5O2g5PTI7Zm9yKHZhciBxOT0xO3UyLlcxKHE5LnRvU3RyaW5nKCkscTkudG9TdHJpbmcoKS5sZW5ndGgsMjk3MTQpIT09QTk7cTkrKyl7dGhpcy5maS5waT10O3RoaXMuZmkuRz1wdS5HKCk7aDkrPTI7fWlmKHUyLlcxKGg5LnRvU3RyaW5nKCksaDkudG9TdHJpbmcoKS5sZW5ndGgsOTc5NDMpIT09ajkpe3RoaXMuZmkucGk9dDt0aGlzLmZpLkc9cHUuRygpO310aGlzLmZpLnBpPXQ7dGhpcy5maS5HPXB1LkcoKTt9LFNpOmZ1bmN0aW9uKHQpe3ZhciBlO2U9MDtpZighdHx8dGhpcy4kaSh0KSl7cmV0dXJuIHp1O31pZighdGhpcy5tdC4kZVthY118fHRbVW8rWGMrRm5dKERzKT09PUN1KXtyZXR1cm4gTHU7fWZvcig7ZTx0aGlzLm10LiRlW2FjXTtlKyspaWYodD09PXRoaXMubXQuJGVbZV18fHR5cGVvZiB0aGlzLm10LiRlW2VdPT09ZmkmJih0W19yK1hjK3NjXT09PXRoaXMubXQuJGVbZV1bQXIrWGMrQWErWGMreGNdKCl8fHB1LkkodCx0aGlzLm10LiRlW2VdKSl8fHB1LkIodCx0aGlzLm10LiRlW2VdKSl7cmV0dXJuIEx1O31yZXR1cm4genU7fSxybjpmdW5jdGlvbih0LGUpe3ZhciBpLG47aT10aGlzO249dGhpcy5ubih0LGUpO3RoaXMuUmVba25dKG4pO3RoaXMuTmkobik7dGhpcy5zbnx8KHV1LlRpKCksZnVuY3Rpb24oKXt2YXIgdCxlO191LmImJigoZT1EdFtDZStYYytZY10oSHMpKVtHbitYYytCZV0oRXIsZnVuY3Rpb24oKXtEdT1MdTt9KSxEdT1MdSx0PUxzKGZ1bmN0aW9uKCl7aWYoRHU9enUsIWkubXQucWUpe2lmKHR5cGVvZiBmW2ZyXSE9PSRpfHx0eXBlb2YgZltmcl1bcG9dIT09dnMpe3JldHVybiBEdT1MdSx2b2lkIGlhKHQpO31mW2ZyXVtwb10oZSk7Zltmcl1bUG9dKCk7fX0sNTAwKSk7fSgpLHRoaXMuc249THUpO30sYmk6ZnVuY3Rpb24odCl7aWYodGhpcy5paS5vaXx8dGhpcy5paS5zaXx8dGhpcy5paS5jaSl7cmV0dXJuIHp1O31zd2l0Y2godC5rdCl7Y2FzZSBQdTpuZXcgYXUueWUodCkuZGUoKTticmVhaztjYXNlIEF1Om5ldyBhdS53ZSh0KS5kZSgpO2JyZWFrO2Nhc2UgVHU6bmV3IGF1LnhlKHQpLmRlKCk7YnJlYWs7Y2FzZSBFdTp0cnl7bmV3KGF1LmR0KCkpKHQpLmRlKCk7fWNhdGNoKGUpe2Z1LmUoZSk7fX1yZXR1cm4gdC5xdCgpLEx1O30sZmk6e3BpOnt9LEc6MH0sSGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZTt9LFFpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMubGk9W107ZTx0aGlzLlJlW2FjXTtlKyspeyh0PXRoaXMuUmVbZV0pLkx0KCkmJnRoaXMubGlba25dKHQpO31yZXR1cm4gdGhpcy5saTt9LFdpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1udShkdS5hKE91KSwxMCk7cnUodCkmJih0PTApO3RoaXMuaWkuYWk9dDt9LHRuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuUWU7fSwkZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxIYSx0W2FjXSYmdFswXT09PXp1KTt9LEppOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtlPHRoaXMuUmVbYWNdO2UrKyl7dD10aGlzLlJlW2VdO2x1LnUodC5tdC5idCk7fXRoaXMuaWkuYWk9dGhpcy5paS51aT0wO2R1LnUoeHUpO2R1LnUod3UpO2R1LnUoT3UpO30semk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87bj10aGlzO3I9NTAwO289ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249X3UuYj9OczokYTsoaT1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0obixMdSxMdSxmLDEsZVt3dCtYYytIaV0sZVt3dCtYYytacl0sZVtFbytYYytIaV0sZVtFbytYYytacl0senUsenUsenUsenUsMCxqdSk7aS5mYz1MdTt0W05lK1hjK1BhXShpKTt9O3Z1LlgoRHQsYmMsZnVuY3Rpb24obil7dmFyIHIsbzEsZzEsQzE7bzE9LTE2MDU5MDM1MDg7ZzE9LTEyMjI4OTQwODM7QzE9Mjtmb3IodmFyIHkxPTE7dTIuVzEoeTEudG9TdHJpbmcoKSx5MS50b1N0cmluZygpLmxlbmd0aCwxNjgyNykhPT1vMTt5MSsrKXt1Mi5MMig0KTtyPW5bdTIuTjIoWGMsWWEsT3IpXVswXTt1Mi5zMig0KTt0PW5bdTIuTjIoWGMsbWEsJGMpXTt1Mi5zMig0KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLnMyKDQpO2k9clt1Mi5OMihYYyxacix1KV07QzErPTI7fWlmKHUyLlcxKEMxLnRvU3RyaW5nKCksQzEudG9TdHJpbmcoKS5sZW5ndGgsMjAxMzEpIT09ZzEpe3UyLkwyKDYpO3I9blt1Mi5OMihYYyxZYSxPcildWzNdO3UyLnMyKDI3KTt0PW5bdTIuUzIobWEsWGMsJGMpXTt1Mi5zMig3KTtlPXJbdTIuTjIoWGMsSGksdSldO3UyLkwyKDI3KTtpPXJbdTIuTjIoWnIsWGMsdSldO319LEx1KTt2dS5YKER0LGosZnVuY3Rpb24ocyl7dmFyIGMsYSxoO3UyLkwyKDQpO2M9c1t1Mi5TMihYYyxZYSxPcildWzBdO2E9dnUudHQocyk7aD1uLm10LlhlO1lpW1FuXShjW3UrWGMrSGldLWUpPj1ofHxZaVtRbl0oY1t1K1hjK1pyXS1pKT49aHx8c1skYytYYyttYV0tdD5yfHxuLm10LlhlPD0wfHxfdS5odCYmVHJbZHJdKGFbX3IrWGMrc2NdKXx8bi5paS5vaXx8bi5paS5zaXx8bi5paS5jaXx8bi5kaSgpfHxuLnZpKCl8fCFuLkZpKCl8fCFuLlNpKGEpfHwhbi5tdC5KZSYmcHUuUyhhKXx8KGFbX3IrWGMrc2NdPT09dmUmJm4uQWUocyksbyhhLGMpKTt9LEx1KTt9LGtpOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvLHMsYyxhLHU7cz10aGlzO2M9MDthPXRoaXMuaWk7dT1mdW5jdGlvbih0LGUpe3JldHVybiB0IT09ZSYmKGEuc2k9THUscy5iaT1CdSksdCE9PWU7fTtpZih0eXBlb2YgZlttdV1bJGldIT09THQpe2Euc2k9anU7dD1mW211XVskaV1bZGNdKCk7ZT1mW211XVskaV1bZGNdKCk7aT1mW211XVskaV1bZGNdKCk7bj1mW211XVskaV1bZGNdKCk7cj1wdS5GKChmW211XVskaV1bZGNdKCl8fHtzcmM6bnVsbH0pW1hdKTtvPXB1LkYoTXVbWF0pO3RyeXtjPWZbbXVdWyRpXVtkY10oKXx8MDt9Y2F0Y2goaCl7fWM9WWlbQ2FdKDAsWWlbS2NdKDEsYykpO3RoaXMueWkodCxvLHIsdSk7dGhpcy53aSh0LHRbYWNdLGUsYyx1KTt0aGlzLnhpKGksaVthY10sbixjLHUpO3RoaXMuT2kodCx0W2FjXSxwdS5GKCksdSx1KTt0aGlzLkNpKGkscHUuRygpKTthLnNpPT09anUmJihhLnNpPXp1KTt9YS5FaT1jfHwwO30sanQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2U9dHlwZW9mIHQ9PT1MdD9MdTohIXQ7dTIuczIoMik7aT11Mi5TMihtdSxXYyk7bj1EdFtVbytYYytZYytYYytnZStYYytJYV0oaSk7ZT9ufHwobj1wdS56KFJpLHtuYW1lOk9zLGNvbnRlbnQ6bnIrX24rT3MsaWQ6aX0pLER0W1VvK1hjK0NyK1hjK2dlK1hjK3BpK1hjK3NjXShLbylbMF1bcnIrWGMrT2NdKG4pKTpuJiZwdS5QKG4pO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5OZTt9LGVpOmp1LFVpOmZ1bmN0aW9uKHQpe3JldHVybiBidS50ZSh0KSx0aGlzO30scWk6ZnVuY3Rpb24oKXt0aGlzLlJlPVtdO30sRmk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuUWkoKSx0P3RoaXMubGlbYWNdOnRoaXMubGlbYWNdPjA7fSxCaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHI7bj10aGlzO3I9ZnVuY3Rpb24odCl7Zm9yKGU9MDtlPHRbYWNdO2UrKyl7bi5VaSh0W2VdKTt9fTtMcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlllW2FjXTt0Kyspe2lmKGU9bi5tdC5ZZVt0XSwhKGk9RHRbVW8rWGMrQ3IrWGMrZ2UrWGMrcGkrWGMrc2NdKGUpKVthY118fG4uZGkoKXx8IW4uRmkoKSl7cmV0dXJuO31yKGkpO319LDFlMyk7fSxFZTp7UXQ6anUsUzp6dX0sUmk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W2FzXSYmMCE9PXRbYXNdfHx0aGlzLmZpLkcrMTUwPnB1LkcoKTt9Y2F0Y2goZSl7cmV0dXJuIHp1O319LHhpOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIGM5LHk5LHY5O2M5PS0xOTgzODQ4OTAzO3k5PS0xNzE0NzA1ODkyO3Y5PTI7Zm9yKHZhciBZOT0xO3UyLkIxKFk5LnRvU3RyaW5nKCksWTkudG9TdHJpbmcoKS5sZW5ndGgsNDg3NDQpIT09Yzk7WTkrKyl7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIoaVtzK2VdLHRbc10qaVtzXStzKyhpW3NdPj5zKzMpKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkrKGlbc108PHMpKXx8cihpW3MrMyplXSxZaVtSY10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sWWlbUmNdKHRbMF0qdFsxXSp0WzJdL28pK28pKSkpO3MrKyk7djkrPTI7fWlmKHUyLkIxKHY5LnRvU3RyaW5nKCksdjkudG9TdHJpbmcoKS5sZW5ndGgsODczNCkhPT15OSl7Zm9yKHZhciBvLHM9NztzPj1lfHwobz10W3NdLC0oKDc9PW58fHIoaVtzKmVdLCh0W3NdJWlbc10tcyklKGlbc10+Pj5zJTApKSYmcihpW3MlKDYvZSldLHRbc10vKHRbMl0qdFs2XS10WzZdKS0oaVtzXT4+PnMpKSYmcihpW3MqKDEvZSldLFlpW1JjXSh0WzRdJXRbNF0ldFs3XStvKSpvJShpW3NdPDxzKSkpJiYobjw9MHx8cihpW3MlZV0sKHRbc10taVtzXSkqcykmJnIoaVtzLTclZV0sdFtzXSsodFs4XS10WzJdLXRbM10pKSYmcihpW3MqKDgrZSldLFlpW1JjXSh0WzZdJXRbNl0tdFs3XS1vKS1vKSkpKTtzLS0pO319LGhpOltdLFJlOltdLFRlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9cHUuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuSmUmJnB1LlModCk/enU6ZTt9LCJpbiI6ZnVuY3Rpb24odCl7dmFyIFUxLHIxLGExLGUsaSxuO1UxPTE3OTg5MzIwNTE7cjE9LTExNzI3MTYzMTI7YTE9Mjtmb3IodmFyIE8xPTE7dTIuVzEoTzEudG9TdHJpbmcoKSxPMS50b1N0cmluZygpLmxlbmd0aCw5NTk2MCkhPT1VMTtPMSsrKXtuPXQmJnt9O2ZvcihlIGluIG4paWYoVnRbZ2ldWyhjLVhjLXhpKSVYYyV6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMlWGMvYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSB1ci9YYyV6YTp0aGlzLm10LlBlPWk7YnJlYWs7Y2FzZSBidC1YYy15czp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSB2dDp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBIYS1YYy1Ncjp0aGlzLiRlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgYnQqWGMtTXI6dGhpcy5RZVtaZV0odGhpcyxpKTticmVhaztjYXNlIEllOnRoaXMubXQuR2U9aTticmVhaztjYXNlIG9pKlhjLWJyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pJVhjKmppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQtWGMpKkNjJVhjL0lpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhKlhjL2hyL1hjL2VzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzKlhjL21vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yKlhjJXR1LVhjKSpvbjpfdS5nfHw5Nz09X3UucHR8fChpPXp1KSx0aGlzLm10LmtlPWk7YnJlYWs7Y2FzZShYci1YYykvTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoQnMlWGMqRmUtWGMpJVVjL1hjJVlzLVhjLUlpOnRoaXMubXQuRmU9aTt9cmV0dXJuIHRoaXM7fWlmKHUyLkIxKGExLnRvU3RyaW5nKCksYTEudG9TdHJpbmcoKS5sZW5ndGgsNjM5NTIpIT09cjEpe249dHx8e307Zm9yKGUgaW4gbilpZihWdFtnaV1bYyVYYyt4aS1YYyt6cl1bZ3JdKG4sZSkpc3dpdGNoKHRoaXMubXRbZV09aT1uW2VdLGUpe2Nhc2UgY3I6dGhpcy5tdC5OZT1pO2JyZWFrO2Nhc2Ugam86dGhpcy5tdC5IZT1pO2JyZWFrO2Nhc2UgVXM6dGhpcy5tdC5xZT1pO2JyZWFrO2Nhc2UgWmMqWGMrYTp0aGlzLm10LnJlPWk7YnJlYWs7Y2FzZSh1ci1YYykqemE6dGhpcy5tdC5QZT1pO2JyZWFrO2Nhc2UgYnQlWGMqeXM6dGhpcy5tdC5KZT1pO2JyZWFrO2Nhc2UgdnQ6dGhpcy5tdC5WZT1pO2JyZWFrO2Nhc2UgSGEqWGMlTXI6dGhpcy4kZVtaZV0odGhpcyxpKTticmVhaztjYXNlKGJ0K1hjKSpNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Uob2ktWGMpL2JyOnRoaXMubXQuWWU9aTticmVhaztjYXNlIG9pKlhjJWppOnRoaXMubXQuS2U9aTticmVhaztjYXNlKEQlWGMvQ2MrWGMpJUlpOnRoaXMubXQuWmU9aTticmVhaztjYXNlIHlhJVhjKmhyLVhjLWVzOnRoaXMubXQuJHQ9aTticmVhaztjYXNlIGxzJVhjKm1vOnRoaXMubXQuWGU9aTticmVhaztjYXNlKG5yLVhjLXR1KS9YYytvbjpfdS5nJiY1MyE9PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIlWGMqTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UoKEJzLVhjLUZlKSVYYy1VYytYYytZcyklWGMlSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9bj10fHx7fTtmb3IoZSBpbiBuKWlmKFZ0W2dpXVtjK1hjK3hpK1hjK3pyXVtncl0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBjcjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBqbzp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBVczp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBaYytYYythOnRoaXMubXQucmU9aTticmVhaztjYXNlIHVyK1hjK3phOnRoaXMubXQuUGU9aTticmVhaztjYXNlIGJ0K1hjK3lzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIHZ0OnRoaXMubXQuVmU9aTticmVhaztjYXNlIEhhK1hjK01yOnRoaXMuJGVbWmVdKHRoaXMsaSk7YnJlYWs7Y2FzZSBidCtYYytNcjp0aGlzLlFlW1plXSh0aGlzLGkpO2JyZWFrO2Nhc2UgSWU6dGhpcy5tdC5HZT1pO2JyZWFrO2Nhc2Ugb2krWGMrYnI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2Ugb2krWGMramk6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgRCtYYytDYytYYytJaTp0aGlzLm10LlplPWk7YnJlYWs7Y2FzZSB5YStYYytocitYYytlczp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBscytYYyttbzp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBucitYYyt0dStYYytvbjpfdS5nJiYxMD09PV91LnB0JiYoaT16dSksdGhpcy5tdC5rZT1pO2JyZWFrO2Nhc2UgWHIrWGMrTmk6dGhpcy5tdC50aT1pO2JyZWFrO2Nhc2UgQnMrWGMrRmUrWGMrVWMrWGMrWXMrWGMrSWk6dGhpcy5tdC5GZT1pO31yZXR1cm4gdGhpczt9LEFlOmZ1bmN0aW9uKHQpe3ZhciBlLFQxLEQxLHMxO1QxPS02NzUxNDkyODQ7RDE9Njk4NDA2MTgzO3MxPTI7Zm9yKHZhciBKMT0xO3UyLkIxKEoxLnRvU3RyaW5nKCksSjEudG9TdHJpbmcoKS5sZW5ndGgsNTQzOTMpIT09VDE7SjErKyl7ZT10JiZ0aGlzLmZpLnBpO3MxKz0yO31pZih1Mi5CMShzMS50b1N0cmluZygpLHMxLnRvU3RyaW5nKCkubGVuZ3RoLDg0NTMwKSE9PUQxKXtlPXR8fHRoaXMuZmkucGk7fWU9dHx8dGhpcy5maS5waTt0cnl7ZVtibytYYytkXSYmZVtibytYYytkXSgpO2VbRXMrWGMrSnJdJiZlW0VzK1hjK0pyXSgpO3UyLkwyKDQpO2VbdTIuTjIoWGMsbHQsTW4pXT16dTt1Mi5MMig0KTtlW3UyLlMyKFhjLEljLE5uKV09THU7fWNhdGNoKGkpe319LE5pOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaWkucmkpe3RoaXMuaWkucmk9THU7dHJ5e3RoaXMuZ2koKTt0aGlzLmtpKCk7fWNhdGNoKHQpe31mdS5lKFt0aGlzLmlpLnNpPzA6MSx0aGlzLmlpLmNpPzA6MSx0aGlzLmlpLkVpXVtscl0oWGMpKTt9fSxRZTpmdW5jdGlvbigpe3ZhciB0O3Q9cHUueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMuY24odCxidCx0W2FjXSYmdFswXT09PXp1KTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWWkoKT49dGhpcy5tdC5WZTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkudWk7fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuSGV8fHRoaXMubXQuTmU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuZWk9cHUueihIcyx7c3R5bGU6bytmdCtNK3ErWGMraG4rdW4rZnQrTStxK1hjK2huK3pjK2Z0K21pK2huK0puK2Z0K2VuK2huK2ZlK2Z0K2VuK2huK0NvK19uK2hpK2Z0K1puK2huK1d0K2Z0K2FvK2huK1hjfSxYYyk7dD1McyhmdW5jdGlvbigpe3ZhciBpO2k9RHRbUWFdO2kmJihpYSh0KSxpW3JyK1hjK09jXShlLmVpKSk7fSwxMDApO30sd2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW3VjK1hjK1NyK1hjK3p0XShvW2FjXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bYWNdKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW3VjK1hjK1NyK1hjK3p0XSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9bdWMrWGMrU3IrWGMrenRdKG9bYWNdLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2FjXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSxtdDp7RmU6enUsSGU6enUsTmU6enUsR2U6MCwkdDpTdSxZZTpbXSxKZTpMdSxLZTpMdSxYZToxMCxaZTpMdSxQZTpxdSxRZTpbXSxrZTp6dSxWZTo5OTk5LHFlOnp1LCRlOltdLHJlOkx1LHRpOnp1fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9cHUuTyhMdSk7cmV0dXJuIGU9aVtGdCtYYytYdF1beV1bQ2UrWGMrWWNdKExyKSwwPT09Zltwc11bSm9dW2hpK1hjK1VdKEdhK2Z0K1hjKT9lW2hvK1hjK09uK1hjK2xvK1hjKyRyK1hjK3djXT1YYysoVGkrSHIrWGMrX2krWGMpKyhJcytzK1ByK3MrVW8rWGMrcXMrWGMrQmkraWMrdnMraWMrWGMrY24rWGMrX2krWGMrR3IrWGMrY24rWGMraG4rWGMpKyhYYytHcitYYytIcitVcitIcitYYytpYytKYytjbitYYytIcitYYytfaStYYytHcitYYyk6ZVtobytYYytPbitYYytsbytYYyskcitYYyt3Y109WGMrKFRpK0hyK1hjK19pK1hjKSsoTnIrcytfK1hjK2xhK2ljK3ZzK2ljK1hjK2NuK1hjK19pK1hjK0dyK1hjK2NuK1hjK2huK1hjKSsoWGMrR3IrWGMrSHIrVXIrSHIrWGMraWMrSmMrY24rWGMrSHIrWGMrX2krWGMrR3IrWGMpLGlbRnQrWGMrWHRdW3ldW1FhXVtycitYYytPY10oZSksdHlwZW9mIHQhPT1ZdCYmdHlwZW9mIHQhPT1MdHx8d24oZnVuY3Rpb24oKXtwdS5QKGkpO30sdHx8NTAwKSxpO30sQ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FZS5RdDt9LHlpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz16dTtmb3Iocj0wO3I8dFthY107cisrKWlmKHRbcl09PT1JdSl7bz1MdTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuUGkoZSx0KXx8IXRoaXMuUGkoaSx0KXx8ZlttdV1bSm9dJiZmW211XVtKb11bYWNdJiYhdGhpcy5QaShwdS5GKCksZlttdV1bSm9dKSkmJm4oTHUsenUpO30sT2k6ZnVuY3Rpb24odCxlLGksbil7dGhpcy5QaShpLHQsTHUpfHxuKEx1LHp1KTt9LEtpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWkuYWk7fSxBaTpmdW5jdGlvbih0LGUpe3RoaXMuRWUuUXQ9dDt0aGlzLkVlLlM9ZTt9LEdpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmkoTHUpO30sX2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7ZT10aGlzLkNlKCk7aT10aGlzLmZpLnBpO3RyeXsodD1EdFtDZStYYytQYV0oc28rWGMrV2UpKVtYcitYYytzbytYYytQYV0oJGEsTHUsTHUsZiwxLGlbd3QrWGMrSGldLGlbd3QrWGMrWnJdLGlbRW8rWGMrSGldLGlbRW8rWGMrWnJdLHp1LHp1LHp1LHp1LDAsanUpO3RbamNdPUx1O2VbTmUrWGMrUGFdKHQpO31jYXRjaChuKXtmdS5lKG4pO319LG5uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBodSh0aGlzLlJlW2FjXSx0LGUpO319O3Z1LlgoZixpdSxmdW5jdGlvbigpe1V1PUx1O30pO3duKGZ1bmN0aW9uKCl7dmFyIHYxLHQxLFkxO3YxPTk3NDY1ODc4MTt0MT0zMjQyMzY5ODtZMT0yO2Zvcih2YXIgRTk9MTt1Mi5CMShFOS50b1N0cmluZygpLEU5LnRvU3RyaW5nKCkubGVuZ3RoLDEzMzgyKSE9PXYxO0U5Kyspe3UyLkwyKDE5KTtmdS5lKHUyLlMyKE9hLEhyLHFuLEhyLFhjLFlvLHN0LEhyLFp0LFhjLHMpKTt1Mi5zMig0KTtmdS5lKHUyLk4yKGZ0LFhjLHpzKSxndSk7dTIuTDIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxMKSxrdSk7dTIuczIoNCk7ZnUuZSh1Mi5OMihmdCxYYyxBcykseXUpO1kxKz0yO31pZih1Mi5CMShZMS50b1N0cmluZygpLFkxLnRvU3RyaW5nKCkubGVuZ3RoLDMxMjI3KSE9PXQxKXt1Mi5zMigyOCk7ZnUuZSh1Mi5OMihYYyxIcixYYyxIcixzLE9hLHN0LFlvLHFuLFp0LEhyKSk7dTIuTDIoMjkpO2Z1LmUodTIuTjIoZnQsWGMsenMpLGd1KTt1Mi5MMigzMCk7ZnUuZSh1Mi5TMihmdCxYYyxMKSxrdSk7dTIuTDIoNyk7ZnUuZSh1Mi5TMihmdCxYYyxBcykseXUpO319LDEwKTtmW211XT1mW211XXx8ZnVuY3Rpb24oKXt2YXIgdCxpLG4sbyx1LGg7dT17fTtoPXB1LnAoW1tTdCtYYytBdCtYYytnYyxbdXUsdXUuaV1dLFtsYyxrdV0sW1dvLGd1XSxbZStYYytVaSx5dV0sW1NuLFt1dSx1dVsiaW4iXSx1XV0sW1VvK1hjK25hLFt1dSx1dS5lbl1dLFtVbytYYytMYStYYytNcixbdXUsdXUuWGldXSxbVW8rWGMrVWMrWGMrTXIsW3V1LHV1LnRuXV0sW29pK1hjK1ljLFt1dSx1dS5VaV1dLFtxYyxbdXUsdXUucm4sdV1dLFtLaSxbdXUsdXUuX2ksdV1dLFtqZSxbdXUsdXUuWmksdV1dLFtIYStYYytNcixbdXUsdXUuJGUsdV1dLFtidCtYYytNcixbdXUsdXUuUWUsdV1dLFtVbytYYyt0dCtYYytZYyxbdXUsdXUuQ2VdXSxbVW8rWGMrU28rWGMrRGMsW3V1LHV1LllpXV0sW1VvK1hjK2F0K1hjK0RjLFt1dSx1dS5HaV1dLFtjK1hjK2F0LFt1dSx1dS5GaV1dLFtTdCtYYytiaStYYytUYSxbdXUsdXUuZGldXSxbVW8rWGMrZ28rWGMraGUrWGMrenQsW3V1LHV1LktpXV0sW1VvK1hjK2dvK1hjK1BhLFt1dSx1dS5taV1dLFtSdCxbdXUsdXUuSmldXSxbVW8rWGMrbGUsW3V1LHV1LkhpXV0sW1JyK1hjK2xlLFt1dSx1dS5xaV1dLFtOYytzK3BvLFtmdSxmdS5lXV0sW05jK3MrbWUsW2Z1LGZ1LnJdXSxbQ3MrcytTYyxbbHUsbHUuY11dLFtDcytzK1VvLFtsdSxsdS5hXV0sW0NzK3MrbnMsW2x1LGx1LnVdXSxbSnQrcytTdCtYYytNcyxbZHUsZHUuc11dLFtKdCtzK1NjLFtkdSxkdS5jXV0sW0p0K3MrVW8sW2R1LGR1LmFdXSxbSnQrcytucyxbZHUsZHUudV1dLFt3YStzK2xjLF91LnB0XSxbd2ErcytCbitYYytMLF91LmZ0XSxbd2ErcytTdCtYYytfcyxfdS5pdF0sW3dhK3MrU3QrWGMrS3IsX3UubnRdLFt3YStzK1N0K1hjK2tjLF91Lm1dLFt3YStzK1N0K1hjK0VuK1hjK0hvK1hjK2tyLF91LmV0XSxbd2ErcytTdCtYYytBaSxfdS5ydF0sW3dhK3MrU3QrWGMrd28sX3Uub3RdLFt3YStzK1N0K1hjK2NpLF91LnN0XSxbd2ErcytTdCtYYytSbyxfdS5jdF0sW3dhK3MrU3QrWGMrYSxfdS5iXSxbd2ErcytTdCtYYytzZSxfdS5kXSxbd2ErcytTdCtYYythaSxfdS5odF0sW3dhK3MrU3QrWGMrRW4rWGMrbmksX3UuZ10sW3dhK3MrU3QrWGMrZXQsX3UuYXRdLFt3YStzK1N0K1hjK0xpLF91LnV0XSxbd2ErcytsYytYYytyZSxbX3UsX3UuSl1dLFt3YStzK1ZhK1hjK01zLFtfdSxfdS5sdF1dLFtQYStzK0hhK1hjK3NpLFt2dSx2dS5LXV0sW1BhK3MrSGEsW3Z1LHZ1LlhdXSxbUGErcytFLFt2dSx2dS5aXV0sW1BhK3MrVW8rWGMrWXMsW3Z1LHZ1LnR0XV0sW3hyK3MrU3QrWGMrRmUrWGMrTGUsW3B1LHB1LnddXSxbeHIrcytsYytYYytyZSxbcHUscHUuSl1dLFt4citzKyRjLFtwdSxwdS5HXV0sW3hyK3MrcGEsW3B1LHB1LmtdXSxbeHIrcytyLFtwdSxwdS4kXV0sW3hyK3MrQ2UrWGMrWWMsW3B1LHB1LnpdXSxbeHIrcytucytYYytZYyxbcHUscHUuUF1dLFt4citzK1VvK1hjK2pyLFtwdSxwdS5CXV0sW3hyK3MrdG4rWGMrUGUsW3B1LHB1LkhdXV0pO2ZvcihpIGluIGgpaWYoVnRbZ2ldW2MrWGMreGkrWGMrenJdW2dyXShoLGkpKXtmb3Iobz1pW2phXShYYytzK1hjKSx0PXUsbj0wO248b1thY10tMTtuKyspe3R5cGVvZiB0W29bbl1dPT09THQmJih0W29bbl1dPXt9KTt0PXRbb1tuXV07fXRbb1tvW2FjXS0xXV09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcHUueCh0W2VdKT8xPT09dFtlXVthY10/dFtlXVswXTpmdW5jdGlvbigpe3JldHVybiAyPT09dFtlXVthY10/dFtlXVsxXVtaZV0odFtlXVswXSxhcmd1bWVudHMpOih0W2VdWzFdW1plXSh0W2VdWzBdLGFyZ3VtZW50cyksdFtlXVsyXSk7fTp0W2VdO30oaCxpKTt9cmV0dXJuIHU7fSgpO30odC5fRGZJckxvR2RteTZ2ZFFPcnx8THMrWGMrd24rWGMrY2EsdCx0W3BzXSx0W3d0XSx0W3ldLHRbSV0sdFtLc10sdFtEdF0sdFtZaV0sdFtRK1hjK25uXSx0W1NjK1hjK1BlXSx0W1BvK1hjK1BlXSx0W1NjK1hjK2FuXSx0W1BvK1hjK2FuXSx0W1dpK1hjK2tyK1hjK0hvK1hjK2d0XSx0W2lhK1hjK0hlXSx0W1N0K1hjK2YrWGMrZ3RdLHRbVWldLHRbVnQrWGMrTWMrWGMrTmErWGMrRW4rWGMrRm9dLHRbaWldKTt9KHdpbmRvdyk7CmY1eXkuSD1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuVz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Y1eXkuZz1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC5PPT09J2Z1bmN0aW9uJz9mNXl5LkwuTy5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwuTzt9O2Y1eXkuZj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC52PT09J2Z1bmN0aW9uJz9mNXl5Lkwudi5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5Lkwudjt9O2Z1bmN0aW9uIGY1eXkoKXt9ZjV5eS5CPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLnk9PT0nZnVuY3Rpb24nP2Y1eXkuTC55LmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC55O307ZjV5eS5SPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5JPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5DLnY9PT0nZnVuY3Rpb24nP2Y1eXkuQy52LmFwcGx5KGY1eXkuQyxhcmd1bWVudHMpOmY1eXkuQy52O307ZjV5eS5MPWZ1bmN0aW9uKEQpe3JldHVybnt5OmZ1bmN0aW9uKCl7dmFyIEcsZD1hcmd1bWVudHM7c3dpdGNoKEQpe2Nhc2UgMjpHPWRbMF0qZFsxXTticmVhaztjYXNlIDA6Rz1kWzBdfGRbMV07YnJlYWs7Y2FzZSAxOkc9ZFsxXS1kWzBdO2JyZWFrO31yZXR1cm4gRzt9LE86ZnVuY3Rpb24oVil7RD1WO319O30oKTtmNXl5Lno9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LkM9ZnVuY3Rpb24oKXt2YXIgUT0yO3doaWxlKFEhPT0xKXtzd2l0Y2goUSl7Y2FzZSAyOnJldHVybnt2OmZ1bmN0aW9uKFUpe3ZhciBiPTI7d2hpbGUoYiE9PTE0KXtzd2l0Y2goYil7Y2FzZSAyOnZhciBLPScnLGw9ZGVjb2RlVVJJKCJ0JTExa2JsYyU3RCUwNmhiZGxtbDYhJTNDJTNDKyU1QmNkLTo1JTVENyg4Jy8lNUJ3LzI4bWolM0M4KTA3YiolMUMyJTI1bSUwN3ElN0RvYmslMTh3JTdDc2RtaDcpKSUyMipaMmQlMTgtNUErKS5vbXMlMTUlMjUlM0UwKyU1QiUzQyUxMXUlMjA2TXk/KScsSy1kJTNFOSxLMi00OyUyMCUwNjojMCU3RDUlNUM6IzMya0s2IXU5Kks4JTIwNTo2JTVDcSUxRiUzRScsWC1sMCUyMDYlNUN5Ljh1KUc4KDgxZUolM0MqMiclMjAlMDg1JTI1JTNFMCslNUIlM0NsOyUzQylNcWIxOiZJNSIpO2I9MTticmVhaztjYXNlIDk6Sys9U3RyaW5nLmZyb21DaGFyQ29kZShsLmNoYXJDb2RlQXQoWSleVS5jaGFyQ29kZUF0KGspKTtiPTg7YnJlYWs7Y2FzZSAxOnZhciBZPTAsaz0wO2I9NTticmVhaztjYXNlIDU6Yj1ZPGwubGVuZ3RoPzQ6NzticmVhaztjYXNlIDM6az0wO2I9OTticmVhaztjYXNlIDg6WSsrLGsrKztiPTU7YnJlYWs7Y2FzZSA0OmI9az09PVUubGVuZ3RoPzM6OTticmVhaztjYXNlIDc6Sz1LLnNwbGl0KCcoJyk7cmV0dXJuIGZ1bmN0aW9uKFApe3ZhciBoPTI7d2hpbGUoaCE9PTEpe3N3aXRjaChoKXtjYXNlIDI6cmV0dXJuIEtbUF07YnJlYWs7fX19O2JyZWFrO319fSgnRShZTF1VJyl9O2JyZWFrO319fSgpOyFmdW5jdGlvbihlLG8sYyl7InVzZSBzdHJpY3QiO3ZhciBUPWY1eXk7dmFyIGksbix0O1QuZygwKTtpPVQuUihULkgoIjgiLDApKTtULnooMCk7bj1bVC5JKFQuSCgnXHgzMVx4MzAnLDApKSxULkkoKyI2IiksVC5SKCsnXHgzMVx4MzQnKSxULlIoKyIxMiIpLFQuUihULkgoIjUiLDAsVC5nKDApKSksVC5JKFQuQigwLCdceDMwJyxULnooMSkpKSxULlIoVC5CKCdceDMxXHgzMScsMCxULnooMCkpKSxULkkoKyIyIildO1QuZygyKTt0PVsrJ1x4MzJceDMwXHgzMVx4MzknLFQuQignXHUwMDM1JywxKSxULkgoJ1x4MzFceDM2JywwLFQuZygwKSldO3RyeXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Mb2dnZXIubG9nKGksVC5SKCsnXHgzMScpLG4pO2MuTG9nZ2VyLmxvZyhpLFQuUigiNyItMCksdC5qb2luKFQuSSgnXHgzNCctMCkpKTt9LCsiNTAwIik7VC56KDEpO2Mub2JqZWN0PVtuLFsrIjM2MCIsNDk0LDM5MSwrIjMxMiIsVC5CKDAsIjMxMiIpLFQuSCgiMzY1IiwwLFQuZygwKSksKydceDM0XHgzMFx4MzQnLFQuSCgiMzAwIiwwLFQuZygwKSksKydceDMzXHgzNlx4MzBceDMwXHgzMScsVC5IKDAsJ1x4MzNceDM5XHgzNVx4MzJceDMyJyxULmcoMSkpLFQuQigiMTg3NzEiLDAsVC56KDApKSwrIjM0OTQ4IiwxNjU0MSwyOTU3MSwrJ1x4MzVceDMxXHgzN1x4MzFceDM5JywzMzkwOCxULkgoIjc4ODQwIiwwLFQuZygwKSksMTA1OTY0LCsnXHgzOFx4MzRceDM1XHgzNVx4MzUnLFQuSCgiNzI0MjYiLDAsVC5nKDApKSxULkgoJ1x4MzNceDMwXHgzNVx4MzlceDM5JywwLFQuZygwKSksVC5CKCdcdTAwMzRcdTAwMzFcdTAwMzZcdTAwMzJcdTAwMzYnLDAsVC5nKDApKSxULkIoMCwnXHUwMDM4XHUwMDM4XHUwMDMwXHUwMDM4XHUwMDM0JyxULnooMSkpLFQuSCgiNjU0MDkiLDEsVC5nKDIpKSwxNDQwMCxULkgoIjEyODQ0IiwxLFQueigyKSksKydceDM4XHgzNlx4MzBceDMyJyxULkgoJ1x4MzFceDMwXHgzOVx4MzJceDMwJywxLFQuZygyKSksMTM0MTYsVC5IKCdceDMyXHgzNFx4MzhceDMyXHgzMCcsMCxULmcoMCkpLFQuQignXHgzM1x4MzdceDM5XHgzN1x4MzYnLDAsVC56KDApKSwrJ1x4MzVceDMxXHg2NVx4MzMnXSx0LFtULkgoJ1x4MzNceDM2XHgzMicsMCxULmcoMCkpLDQ5NiwrJ1x4MzNceDM5XHgzOScsVC5IKDAsIjczMDkyMyIsVC5nKDEpKSwrJ1x1MDAzMlx1MDAzNVx1MDAzMVx1MDAzMicsVC5IKCI2Mzk4IiwwLFQueigwKSksVC5IKCdcdTAwMzRcdTAwMzFcdTAwMzFcdTAwMzlcdTAwMzFcdTAwMzJcdTAwMzInLDEsVC5nKDIpKSwrJ1x4MzFceDMxXHgzMVx4MzlceDMyJyxULkgoJ1x4MzNceDM0XHgzMlx4MzNceDM2JywwLFQueigwKSksMjQ2MSwzMjU1NywxMDIxMF0sby5jdXJyZW50U2NyaXB0LFQuSCgiMSIsMSxULmcoMikpXTt9Y2F0Y2gobyl7dm9pZCgnXHgzMCcqMSkhPT1lLmNvbnNvbGUmJmUuY29uc29sZS5sb2cmJkZ1bmN0aW9uLmFwcGx5LmNhbGwoZS5jb25zb2xlLmxvZyxlLmNvbnNvbGUsW1QuSSgnXHgzMVx4MzMnfDApXSk7fX0od2luZG93LGRvY3VtZW50LHdpbmRvd1t3aW5kb3cuX0RmSXJMb0dkbXk2dmRRT3J8fGY1eXkuUigiMyItMCldKTsKJ3VzZSBzdHJpY3QnCgohZnVuY3Rpb24gKHdpbmRvdykgewoJY29uc3QgbmV3SW1hZ2UgPSBmdW5jdGlvbiAobmFtZSkgewoJCWNvbnN0IGltYWdlID0gbmV3IEltYWdlKCkKCQlpbWFnZS5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IGNvdmVyVGFncyA/IGNvdmVyVGFncy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRyaW0oKQogICAgICB9KSA6IFtdLAogICAgICBkZWxheTogMQogICAgfSkKICAgIGJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKICAgICAgbmV3VGFiOiB0cnVlLAogICAgICBkZXZpY2U6ICdhbnknLAogICAgICB1bmRlcjogZmFsc2UsCiAgICAgIHdpZHRoOiBudWxsLAogICAgICBoZWlnaHQ6IG51bGwsCiAgICAgIHRvcDogbnVsbCwKICAgICAgbGVmdDogbnVsbCwKICAgICAgY29va2llRXhwaXJlczogMSwKICAgICAgc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzZWxmLmlzQWxsb3dlZCgpCiAgICAgIH0sCiAgICAgIGJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICBzZWxmLmluY3JlbWVudCgpCiAgICAgIH0sCiAgICAgIGFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgfQogICAgfSkKICB9CgogIHdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CiAgICAgIHN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAogICAgICBpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCiAgICAgIGZyZXF1ZW5jeTogMjE2MDAsCiAgICAgIGxpbWl0OiAxLAogICAgICBsaW1pdFBlclBhZ2U6IDAsCiAgICAgIGxpbWl0UGVyU2Vzc2lvbjogMAogICAgfSkKICAgIHBvcHVuZGVyLmFkZCh1cmwpCiAgfQp9KSh3aW5kb3cpCg==(Line 1) Message:
console.clear
|
Indicators
This is a term in the security industry to describe indicators such as IPs, Domains, Hashes, etc. This does not imply that any of these indicate malicious activity.
1995041140.rsc.cdn77.org
ca.clcknads.pro
openload.co
wrethicap.info
www.google-analytics.com
www.pornhive.tv
www.sohjah-thahka.info
xhosted.co
1995041140.rsc.cdn77.org
185.18.187.77
2606:4700:30::6818:64b6
2606:4700:30::6818:65b6
2606:4700::6810:a532
2a00:1450:4001:821::200e
5.189.149.235
88.208.59.100
88.85.94.234
1546928846ee0a8377fd30865d4c43cef501eba7d775d494b98d1ce699627a4a
18614e73218e11b555cfc456405a2252f302e29ecc3a840815511a8a606a3f43
1d22dd1d1a17b80fe40f1bc71a89639c9ec1c522589baa177fe2b24db8c12219
1ee3b3e17d8e0b48087a18e721a00fe273a0c5a7271b074ae5f60324b13931a4
281cf8a084b068fea550cec6a42e91e120ed0b6b9fded2bfe74e6478de960ac8
3323814006fe6739493d27057954941830b59eff37ebaac994310e17c522dd57
390459d3ea5b4268e7c5d9f69926f9330bad86f1b6e4f14751c4eb571faa6513
3e552578c7d450b023f2cd9d28f830be4335c3acc6c4ab6dadda0769f09e5f22
460eabc26dc60dd8401394499e6fb072019c4b89afabe3b7e1f88d1fd41d3f32
46c41af80bc678a16f1fae2384551b27942187641ddf4a5f093fdacf7acefacc
50a8acf8603accb392c008b5a7d993931ef755a5ca69ae4c836e5f7585f976af
55c85ecadcbc241c3a77f9e516785daa8f4695ed67be6ba30f9f593bbad09f00
63ac91b6888c00e61e554aa557928b495185d18191a1dfec1a5b4d3d204b9bc9
74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b
79a39793efbf8217efbbc840e1b2041fe995363a5f12f0c01dd4d1462e5eb842
7dacf83f51179de8d7980a513e67ab3a08f2c6272bb5946df8fd77c0d1763b73
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
8376a7ba0d71306cef16012d90520c19e2dea47a1b8388cfaecebea8af64d0aa
838e0084413c882944a0de7c3627191781b3cb73cca7f1b3f1377bacd4f44c4e
881e81485f57fc3f48426371fab5936aaad4f92b6b32fc1960aaa84d2038d325
8ff9a3ba186390e6b4fb92d484ef3de1768a89b5729ad4ac0130404f9c6a5b7b
9b14c4c925686ab923c3e144f759c9a6a36d9b2de44df715275f05c4a380795a
b09d0b7a6cbc05cac430d5698fa7754037e2f607209b20487964669961df05de
b7333618b342e01dae852cf725c52c03f3281cc7242d02f69846065098ca022a
ba636f1cb6bfd323dac1fb079cd002b5d486ed5eff54f4c4744b81316b257e96
bb86b0bb20131dcb1b8fd7ae1209761b613ea1a9f1a3ad6ce6d2eb51ade9acdd
c2f27bf4363e99630920c9fbcf682729e7bb30f5d054743851332efc0bfb12e2
c7992f57d67156f994a38c6bb4ec72fa57601a284558db5e065c02dc36ee9d8c
d010d27f536aad038433ddf20d1e842055d2c13c275342309d6bb21e10a2325b
d702380bc62e6131f54145c0572d7b0bc2d37f37800c2921463942922dcbfed9
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
e9a92637af78eb897cf017d768fb3ba4290ccbcb3f7b3211b730c34f26ff6b1a
e9aa6fcf5e814e25b7462ed594643e25979cf9c04f3a68197b5755b476ac38a7
ec4a1e8b05a2fa54c0f9d5e95dcfe7867ca68af9e51a0a54466780efb37bc987
fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa